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

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

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

요약

애플리케이션이 Weave를 사용하여 원격 엔터티와 통신하려고 할 때 다양한 옵션이 있습니다. Binding 클래스는 이러한 옵션을 정렬하여 쉬운 작업은 쉽고 어려운 작업은 최소한으로 풀 수 있는 방식으로 정렬합니다. 다루는 옵션은 다음과 같습니다.

  • 유니캐스트 UDP 통신을 지원합니다
  • 'any'를 사용한 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만으로 Binding을 초기화합니다.
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 인증 모드입니다.

(READ_ONLY)

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

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 객체 상태입니다.

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

mTransport

uint8_t mTransport

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

(읽기 전용)

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

공개 함수

Binding

 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() 메서드에 의해 처리됩니다. 이 메서드는 주로 편의를 위해 둘 다 호출합니다.

참고 항목: <ph type="x-smartling-placeholder">
</ph> 완료(WEAVE_ERROR) <ph type="x-smartling-placeholder">
</ph>

마무리

void Finalize(
  WEAVE_ERROR aErr
)

'미완료' 제공합니다.

결합에 정리가 필요한 상태가 있을 수 있습니다. 예를 들어 연결 클로저. Free() 메서드에 의해 초기 상태로 간단히 지우는 상태 외에 Uncomplete() 메서드에 의해 처리됩니다. 이 메서드는 주로 편의를 위해 둘 다 호출합니다.

세부정보
매개변수
[in] aErr
이 오류 코드는 이 요청의 원인을 나타냅니다. WEAVE_NO_ERROR가 아니면 TCP 연결이 중단될 수 있습니다.
참고 항목: <ph type="x-smartling-placeholder">
</ph> 확정(무효) <ph type="x-smartling-placeholder">
</ph>

무료

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 &amp;aReport).

Init

WEAVE_ERROR Init(
  const uint64_t & aPeerNodeId
)

노드 ID만으로 Binding을 초기화합니다.

이렇게 하면 구성된 기본 전송과 결합됩니다.

세부정보
매개변수
[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입니다.
참고 항목: <ph type="x-smartling-placeholder">
</ph> CompleteRequest(ProtocolEngine *aEngine) <ph type="x-smartling-placeholder">
</ph>

IsFree

bool IsFree(
  void
)

바인딩은 무료인지 확인합니다.

'무료' 이 문맥에서 '정의된 피어 노드가 있음'은 ID'로 시작해야 합니다. IsFree() should be thought of as meaning &quot;has had Free() 호출되고 그 이후로 사용되지 않았습니다."

세부정보
반환
바인딩이 무료이면 true, 그렇지 않으면 false입니다.

UncompleteRequest

void UncompleteRequest(
  void
)

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

기본적으로 구속력은 상태를 반환합니다. 예를 들어 정리되어야 합니다. 애플리케이션에서는 오류를 정리하는 과정에서 UncompleteRequest()의 호출을 고려할 수 있습니다.

참고 항목: <ph type="x-smartling-placeholder">
</ph> UncompleteRequest(WEAVE_ERROR ) <ph type="x-smartling-placeholder">
</ph>

UncompleteRequest

void UncompleteRequest(
  WEAVE_ERROR aErr
)

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

기본적으로 구속력은 상태를 반환합니다. 예를 들어 정리되어야 합니다. 애플리케이션에서는 오류를 정리하는 과정에서 UncompleteRequest()의 호출을 고려할 수 있습니다.

세부정보
매개변수
[in] aErr
WEAVE_NO_ERROR가 아닌 경우 기존 연결이 있는 경우 정상적으로 종료되지 않고 중단됩니다.
참고 항목: <ph type="x-smartling-placeholder">
</ph> UncompleteRequest(void) <ph type="x-smartling-placeholder">
</ph>

~바인딩

virtual  ~Binding(
  void
)

Binding 객체의 소멸자입니다.

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