nl::Weave::Profiles::DataManagement_Legacy::Binding

#include <src/lib/profiles/data-management/Legacy/Binding.h>

Binding 클래스는 Weave를 사용하여 애플리케이션 항목을 대신하여 통신 상태를 관리합니다.

요약

애플리케이션이 Weave를 사용하여 원격 항목과 통신하려는 경우 다양한 옵션이 있습니다. Binding 클래스는 이러한 옵션을 코럴링하여 쉬운 작업은 쉽고 어려운 작업은 최소한 다루기 쉬운 방식으로 정렬합니다. 다루는 옵션은 다음과 같습니다.

  • 알려진 피어 노드와의 유니캐스트 UDP 통신
  • '임의' 노드가 포함된 UDP 브로드캐스트.
  • 알려진 피어 노드와의 유니캐스트 WRMP 통신
  • 알려진 피어 노드와의 TCP 통신
  • 서비스 관리자 인스턴스를 사용하여 설정 가능한 알려진 서비스 엔드포인트와의 TCP 통신
  • 사전 설정된 연결을 기반으로 한 TCP 통신

생성자 및 소멸자

Binding(void)
Binding 객체의 기본 생성자입니다.
~Binding(void)
Binding 객체의 소멸자.

공개 유형

@165{
  kState_Incomplete = 0,
  kState_Completing = 1,
  kState_Complete = 2
}
enum
Binding 객체 상태 집합입니다.

공개 속성

mAuthMode
WeaveAuthMode
사용할 Weave 인증 모드입니다.
mConnection
이 바인딩에서 현재 사용 중인 Weave 연결을 가리키는 포인터입니다.
mEngine
Binding과 관련된 ProtocolEngine 객체에 대한 포인터입니다.
mPeerNodeId
uint64_t
결합 대상의 64비트 노드 ID입니다.
mServiceMgr
이 바인딩을 완료하는 데 사용할 ServiceManager 객체 (선택사항)에 대한 포인터입니다.
mState
uint8_t
현재 Binding 객체 상태입니다.
mTransport
uint8_t
Binding을 완료하는 데 사용할 전송입니다.

공개 함수

CompleteConfirm(WeaveConnection *aConnection)
void
바인딩 요청 확인을 처리합니다.
CompleteConfirm(StatusReport & aReport)
void
바인드 요청의 실패를 처리합니다.
CompleteConfirm(void)
void
바인딩 요청 확인을 처리합니다.
CompleteRequest(ProtocolEngine *aEngine)
바인딩의 완료를 요청합니다.
Connect(WeaveConnection *aConnection)
완료된 연결을 제공하여 TCP 바인딩을 완료합니다.
Finalize(void)
void
바인딩을 '미완료'하고 해제합니다.
Finalize(WEAVE_ERROR aErr)
void
바인딩을 '미완료'하고 해제합니다.
Free(void)
void
결합 상태를 삭제합니다.
GetExchangeCtx(WeaveExchangeManager *aExchangeMgr, void *aAppState)
Binding에서 ExchangeContext 객체를 생성합니다.
IncompleteIndication(StatusReport & aReport)
void
결합 실패를 처리합니다.
Init(const uint64_t & aPeerNodeId)
노드 ID만 사용하여 바인딩을 초기화합니다.
Init(const uint64_t & aPeerNodeId, uint8_t aTransport)
피어 ID 및 전송을 기반으로 Binding 객체를 초기화합니다.
Init(const uint64_t & aServiceEpt, WeaveServiceManager *aServiceMgr, WeaveAuthMode aAuthMode)
서비스 엔드포인트에 Binding 객체를 초기화합니다.
Init(WeaveConnection *aConnection)
WeaveConnection을 사용하여 Binding 객체를 초기화합니다.
IsComplete(void)
bool
결합이 완료되었는지 확인합니다.
IsFree(void)
bool
바인딩은 무료입니다.
UncompleteRequest(void)
void
결합이 불완전하게 됩니다.
UncompleteRequest(WEAVE_ERROR aErr)
void
결합이 불완전하게 됩니다.

공개 유형

@165

 @165

Binding 객체 상태 집합입니다.

속성
kState_Complete

완료되어 사용할 준비가 된 Binding의 상태입니다.

kState_Completing

진행 중인 Binding의 상태입니다.

kState_Incomplete

Binding의 초기 (및 최종) 상태입니다.

공개 속성

mAuthMode

WeaveAuthMode mAuthMode

사용할 Weave 인증 모드입니다.

(읽기 전용)

이는 이 바인딩이 적용되는 모든 통신에 사용되는 인증 모드입니다.

mConnection

WeaveConnection * mConnection

이 바인딩에서 현재 사용 중인 Weave 연결을 가리키는 포인터입니다.

(읽기 전용)

TCP 바인딩은 바로 연결을 사용하여 초기화하거나 완료 시점에 바인딩할 수 있습니다.

mEngine

ProtocolEngine * mEngine

Binding과 관련된 ProtocolEngine 객체에 대한 포인터입니다.

바인딩은 일반적으로 특정 프로토콜 엔진과 관련하여 완료되며, 이는 주로 MessageLayer에 액세스하는 방법으로 사용됩니다. 여기에서 추적하면 됩니다.

mPeerNodeId

uint64_t mPeerNodeId

결합 대상의 64비트 노드 ID입니다.

(읽기 전용)

모든 Binding에는 여기에서 이름이 지정된 대상 항목이 있습니다. Weave 노드 ID 외에도 서비스 엔드포인트의 이름을 지정할 수 있습니다.

mServiceMgr

nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager * mServiceMgr

이 바인딩을 완료하는 데 사용할 ServiceManager 객체 (선택사항)에 대한 포인터입니다.

(읽기 전용)

Weave 서비스에 바인딩하는 경우 초기화 시 Weave 노드 ID 대신 64비트 서비스 엔드포인트 ID가 제공될 수 있습니다. 이 경우 바인딩을 완료하려면 ServiceManager 객체도 필요합니다. 일반 TCP 또는 WRMP 바인딩에는 ServiceManager 객체가 필요하지 않습니다.

mState

uint8_t mState

현재 Binding 객체 상태입니다.

한 번에 하나의 '완료' 작업만 실행할 수 있으며, 어떤 경우든 완료된 바인딩을 완료하도록 요청하면 확인 함수가 즉시 호출됩니다. 아래의 상태 변수는 현재 상태를 추적하고 잠금 역할을 합니다.

mTransport

uint8_t mTransport

Binding을 완료하는 데 사용할 전송입니다.

(읽기 전용)

mTransport의 가능한 값은 DMConstants.h에 정의되어 있습니다.

공개 함수

바인딩

 Binding(
  void
)

Binding 객체의 기본 생성자입니다.

모든 내부 상태를 지웁니다.

CompleteConfirm

void CompleteConfirm(
  WeaveConnection *aConnection
)

바인딩 요청 확인을 처리합니다.

세부정보
매개변수
[in] aConnection
결합 타겟을 가리키는 활성 WeaveConnection을 가리키는 포인터입니다.

CompleteConfirm

void CompleteConfirm(
  StatusReport & aReport
)

바인드 요청의 실패를 처리합니다.

세부정보
매개변수
[in] aReport
실패를 설명하는 StatusReport 객체에 대한 참조입니다.

CompleteConfirm

void CompleteConfirm(
  void
)

바인딩 요청 확인을 처리합니다.

CompleteRequest

WEAVE_ERROR CompleteRequest(
  ProtocolEngine *aEngine
)

바인딩의 완료를 요청합니다.

바인딩 완료는 최소한 TCP를 요구하는 바인딩의 경우 ExchangeManager 인스턴스에 대한 액세스를 제공하는 특정 ProtocolEngine 개체와 관련하여 수행됩니다.

세부정보
매개변수
[in] aEngine
완료가 실행되는 ProtocolEngine 객체에 대한 포인터입니다.
반환 값
WEAVE_NO_ERROR
성공 시
WEAVE_ERROR_INCORRECT_STATE
이미 완료되고 있는 것입니다.
WEAVE_ERROR_NO_MEMORY
연결이 필요한데 사용할 수 없는 경우
반환
그렇지 않으면 연결을 시도하는 동안 반환된 WEAVE_ERROR가 반환됩니다.

연결

WEAVE_ERROR Connect(
  WeaveConnection *aConnection
)

완료된 연결을 제공하여 TCP 바인딩을 완료합니다.

새로 초기화된 TCP 바인딩은 완료될 때까지 사용할 수 없습니다. 일반적으로 이 작업은 애플리케이션이 바인딩을 사용하여 메시지를 보내려고 할 때 요청 시 실행되지만 Weave 연결을 제공하여 명시적으로 완료할 수도 있습니다.

세부정보
매개변수
[in] aConnection
결합을 완료하는 데 사용되는 WeaveConnection에 대한 포인터입니다.
반환 값
WEAVE_NO_ERROR
성공 시
WEAVE_ERROR_INCORRECT_STATE
바인딩에 이미 연결이 있는지 여부
WEAVE_ERROR_INVALID_ARGUMENT
연결이 NULL인 경우

완료

void Finalize(
  void
)

바인딩을 '미완료'하고 해제합니다.

바인딩에는 Free() 메서드에 의해 단순히 초기 상태로 지워지는 상태 외에 Uncomplete() 메서드에서 처리되는 연결 종료와 같은 정리가 필요한 상태가 있을 수 있습니다. 이 메서드는 주로 편의를 위해 두 메서드를 호출합니다.

참고:
Finalize(WEAVE_ERROR)

완료

void Finalize(
  WEAVE_ERROR aErr
)

바인딩을 '미완료'하고 해제합니다.

바인딩에는 Free() 메서드에 의해 단순히 초기 상태로 지워지는 상태 외에 Uncomplete() 메서드에서 처리되는 연결 종료와 같은 정리가 필요한 상태가 있을 수 있습니다. 이 메서드는 주로 편의를 위해 두 메서드를 호출합니다.

세부정보
매개변수
[in] aErr
이 오류 코드는 이 요청의 원인을 나타냅니다. WEAVE_NO_ERROR가 아니면 TCP 연결이 취소될 수 있습니다.
참고 항목:
Finalize(void)

무료

void Free(
  void
)

결합 상태를 삭제합니다.

모든 결합 상태를 무조건 원래 상태로 반환합니다.

GetExchangeCtx

ExchangeContext * GetExchangeCtx(
  WeaveExchangeManager *aExchangeMgr,
  void *aAppState
)

Binding에서 ExchangeContext 객체를 생성합니다.

세부정보
매개변수
[in] aExchangeMgr
컨텍스트를 요청할 교환 관리자에 대한 포인터입니다.
[in] aAppState
나중에 사용하기 위해 교환 컨텍스트에 저장되는 애플리케이션 상태 객체에 대한 무효 포인터입니다.
반환
ExchangeContext 객체에 대한 포인터이거나 실패 시 NULL입니다.

IncompleteIndication

void IncompleteIndication(
  StatusReport & aReport
)

결합 실패를 처리합니다.

이 메서드는 호출되어 완료 후, 즉 CompleteConfirm()이 성공을 나타내는 상태와 함께 호출된 후 바인딩이 실패할 때 상위 레이어 핸들러를 호출합니다.

세부정보
매개변수
[in] aReport
문제를 설명하는 StatusReport 참조입니다.
참고 항목:
CompleteConfirm(StatusReport &aReport).

Init

WEAVE_ERROR Init(
  const uint64_t & aPeerNodeId
)

노드 ID만 사용하여 바인딩을 초기화합니다.

그 결과, 구성된 기본 전송과의 바인딩이 생성됩니다.

세부정보
매개변수
[in] aPeerNodeId
바인딩 타겟의 64비트 ID에 대한 참조입니다.
반환 값
WEAVE_NO_ERROR
성공 시
WEAVE_ERROR_INVALID_ARGUMENT
결합이 충분히 지정되지 않은 경우입니다.

Init

WEAVE_ERROR Init(
  const uint64_t & aPeerNodeId,
  uint8_t aTransport
)

피어 ID 및 전송을 기반으로 Binding 객체를 초기화합니다.

세부정보
매개변수
[in] aPeerNodeId
결합 대상의 64비트 노드 식별자에 대한 참조입니다.
[in] aTransport
WeaveTransportOption의 전송 사양
반환 값
WEAVE_NO_ERROR
성공 시
WEAVE_ERROR_INVALID_ARGUMENT
결합이 충분히 지정되지 않은 경우입니다.

Init

WEAVE_ERROR Init(
  const uint64_t & aServiceEpt,
  WeaveServiceManager *aServiceMgr,
  WeaveAuthMode aAuthMode
)

서비스 엔드포인트에 Binding 객체를 초기화합니다.

이는 Nest 서비스에서 특정 엔드포인트에 바인딩하는 방법입니다. 이러한 종류의 바인딩에는 로컬 서비스 디렉터리 캐시를 채우거나 업데이트하는 작업이 포함될 수 있는 다단계 완료 프로세스가 필요합니다. 대부분의 경우 이 프로세스는 애플리케이션에 표시되지 않지만, 프로세스 후반부에서 발생하는 오류는 바인딩을 사용하고 완료하기 위한 원래 요청을 보낸 후 (때로는 한참 후) 관련 '확인' 콜백을 통해 전달될 수 있습니다.

세부정보
매개변수
[in] aServiceEpt
관심 있는 Weave 서비스 엔드포인트에 대한 64비트 식별자에 대한 참조입니다.
[in] aServiceMgr
서비스 등급을 조회하고 연결하는 데 사용할 서비스 관리자 인스턴스에 대한 포인터입니다.
[in] aAuthMode
연결에 사용할 인증 모드입니다.
반환 값
WEAVE_NO_ERROR
성공 시
WEAVE_ERROR_INVALID_ARGUMENT
결합이 충분히 지정되지 않은 경우입니다.

Init

WEAVE_ERROR Init(
  WeaveConnection *aConnection
)

WeaveConnection을 사용하여 Binding 객체를 초기화합니다.

세부정보
매개변수
[in] aConnection
결합의 기준으로 사용할 WeaveConnection에 대한 포인터입니다.
반환 값
WEAVE_NO_ERROR
성공 시
WEAVE_ERROR_INVALID_ARGUMENT
결합이 충분히 지정되지 않은 경우입니다.

IsComplete

bool IsComplete(
  void
)

결합이 완료되었는지 확인합니다.

세부정보
반환
완료되면 true, 완료되지 않으면 false입니다.
참고 항목:
CompleteRequest(ProtocolEngine *aEngine)

IsFree

bool IsFree(
  void
)

바인딩은 무료입니다.

여기에서 '무료'는 단순히 '정의된 피어 노드 ID가 있음'을 의미합니다. IsFree()는 'Free()가 호출되었고 그 후 사용된 적이 없다'는 의미로 간주되어야 합니다.

세부정보
반환
결합이 무료이면 true이고 그렇지 않으면 false입니다.

UncompleteRequest

void UncompleteRequest(
  void
)

결합이 불완전하게 됩니다.

기본적으로 바인딩은 이 메서드가 호출된 후 "미완료" 상태에 있지만, 바인딩 자체에 포함되지 않은 관련 상태(예: TCP 연결)도 삭제해야 합니다. 애플리케이션에서는 오류 삭제 작업의 일부로 UncompleteRequest() 호출을 고려할 수 있습니다.

참고 항목:
UncompleteRequest(WEAVE_ERROR )

UncompleteRequest

void UncompleteRequest(
  WEAVE_ERROR aErr
)

결합이 불완전하게 됩니다.

기본적으로 바인딩은 이 메서드가 호출된 후 "미완료" 상태에 있지만, 바인딩 자체에 포함되지 않은 관련 상태(예: TCP 연결)도 삭제해야 합니다. 애플리케이션에서는 오류 삭제 작업의 일부로 UncompleteRequest() 호출을 고려할 수 있습니다.

세부정보
매개변수
[in] aErr
WEAVE_NO_ERROR가 아닌 경우 기존 연결이 있는 경우 정상적으로 닫히지 않고 취소됩니다.
참고 항목:
UncompleteRequest(void)

바인딩

virtual  ~Binding(
  void
)

Binding 객체의 소멸자.

모든 내부 상태를 지우고 필요한 경우 열려 있는 연결을 닫습니다.