Google은 흑인 공동체를 위한 인종적 평등을 추구하기 위해 노력하고 있습니다. 자세히 알아보기

nl :: 짜다:: 프로필 :: DataManagement_Legacy :: 제본

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

바인딩 클래스는 직물을 사용하여 응용 프로그램의 실체를 대신하여 통신 상태를 관리한다.

요약

응용 프로그램이 Weave를 사용하여 원격 엔터티와 통신하려는 경우 다양한 옵션이 있습니다. 바인딩 쉬운 물건이 용이하고 더 어려운 물건 적어도 다루기 쉬운에 있다는 클래스는 같은 방법으로 이러한 옵션 및 주선을 가축 우리. 포함되는 옵션은 다음과 같습니다.

  • 알려진 피어 노드와의 유니 캐스트 UDP 통신.
  • "모든"노드로 UDP 브로드 캐스트.
  • 알려진 피어 노드와의 유니 캐스트 WRMP 통신.
  • 알려진 피어 노드와의 TCP 통신.
  • 설정을 위해 서비스 관리자 인스턴스를 사용하는 알려진 서비스 엔드 포인트와의 TCP 통신.
  • 미리 설정된 연결을 기반으로하는 TCP 통신.

생성자와 소멸자

Binding (void)
기본 생성자 바인딩 객체.
~Binding (void)
대한 소멸자 바인딩 개체를.

공개 유형

@165 {
kState_Incomplete = 0,
kState_Completing = 1,
kState_Complete = 2
}
열거 형
세트 바인딩 객체 상태.

공용 속성

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

공공 기능

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)
생산 ExchangeContext의 A로부터 객체 바인딩을 .
IncompleteIndication ( StatusReport & aReport)
void
바인딩 실패를 처리합니다.
Init (const uint64_t & aPeerNodeId)
초기화 바인딩 단지 노드 ID와 함께.
Init (const uint64_t & aPeerNodeId, uint8_t aTransport)
초기화 바인딩 피어 ID 및 전송을 기반으로 개체를.
Init (const uint64_t & aServiceEpt, WeaveServiceManager *aServiceMgr, WeaveAuthMode aAuthMode)
초기화 바인딩 서비스 엔드 포인트 오브젝트를.
Init ( WeaveConnection *aConnection)
초기화 바인딩 A의 객체 WeaveConnection를 .
IsComplete (void)
bool
바인딩이 완료되었는지 확인하십시오.
IsFree (void)
bool
바인딩은 무료입니다.
UncompleteRequest (void)
void
바인딩이 불완전하게 만듭니다.
UncompleteRequest ( WEAVE_ERROR aErr)
void
바인딩이 불완전하게 만듭니다.

공개 유형

@ 165

 @165

세트 바인딩 객체 상태.

속성
kState_Complete

A가의 상태 바인딩 이 완전하고 사용할 준비가되었습니다.

kState_Completing

(A)의 상태에 바인딩 이 완료되는 과정에있다.

kState_Incomplete

(A)의 초기 (최종) 상태 바인딩 .

공용 속성

mAuthMode

WeaveAuthMode mAuthMode

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

(읽기 전용)

이 바인딩이 관리하는 모든 통신에서 사용되는 인증 모드입니다.

mConnection

WeaveConnection * mConnection

이 바인딩에서 현재 사용중인 Weave 연결에 대한 포인터입니다.

(읽기 전용)

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

mEngine

ProtocolEngine * mEngine

받는 포인터 ProtocolEngine의 이 관련 객체 바인딩 .

바인딩은 일반적으로 MessageLayer에 액세스하는 방법으로 주로 사용되는 특정 프로토콜 엔진과 관련하여 완료됩니다. 이것이 우리가 그것을 추적하는 곳입니다.

mPeerNodeId

uint64_t mPeerNodeId

바인딩 대상의 64 비트 노드 ID입니다.

(읽기 전용)

모든 바인딩은 여기라는 대상 법인을 가지고 있습니다. Weave 노드 ID 외에도 서비스 엔드 포인트의 이름을 지정할 수 있습니다.

mServiceMgr

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

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

(읽기 전용)

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

mState

uint8_t mState

현재 바인딩 객체 상태.

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

mTransport

uint8_t mTransport

전송이 완료에서 사용하는 바인딩을 .

(읽기 전용)

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

공공 기능

제본

 Binding(
  void
)

기본 생성자 바인딩 객체.

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

완료 확인

void CompleteConfirm(
  WeaveConnection *aConnection
)

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

세부
매개 변수
[in] aConnection
활성 포인터 WeaveConnection 바인딩 대상.

완료 확인

void CompleteConfirm(
  StatusReport & aReport
)

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

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

완료 확인

void CompleteConfirm(
  void
)

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

CompleteRequest

WEAVE_ERROR CompleteRequest(
  ProtocolEngine *aEngine
)

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

결합 완료 적어도 특정에 대해 수행 TCP를 요구 바인딩 들면 ProtocolEngine의 ExchangeManager 인스턴스에 대한 액세스를 제공하는 개체.

세부
매개 변수
[in] aEngine
A와 포인터 ProtocolEngine의 완료가 수행되는 대신 객체입니다.
반환 값
WEAVE_NO_ERROR
성공에.
WEAVE_ERROR_INCORRECT_STATE
바인딩이 이미 완료중인 경우.
WEAVE_ERROR_NO_MEMORY
연결이 필요하지만 사용할 수없는 경우
보고
그렇지 않으면, 어떤 WEAVE_ERROR는 연결을 시도하는 동안 돌아왔다.

잇다

WEAVE_ERROR Connect(
  WeaveConnection *aConnection
)

완료된 연결을 제공하여 TCP 바인딩을 완료하십시오.

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

세부
매개 변수
[in] aConnection
A와 포인터 WeaveConnection는 바인딩을 완료하는 데 사용.
반환 값
WEAVE_NO_ERROR
성공에.
WEAVE_ERROR_INCORRECT_STATE
바인딩에 이미 연결이있는 경우.
WEAVE_ERROR_INVALID_ARGUMENT
연결이 NULL 인 경우.

마무리

void Finalize(
  void
)

바인딩을 "미완성"하고 해제합니다.

바인딩은 단순히 의해 초기 상태로 클리어 상태 외에 Uncomplete () 메소드에 의해 처리됩니다 연결 폐쇄, 예, 정리가 필요 상태에있을 수 있습니다 무료 () 메소드를. 이 메서드는 주로 편의상 두 가지를 모두 호출합니다.

또한보십시오:
마무리 (WEAVE_ERROR)

마무리

void Finalize(
  WEAVE_ERROR aErr
)

바인딩을 "불완전"하고 해제합니다.

바인딩은 단순히 의해 초기 상태로 클리어 상태 외에 Uncomplete () 메소드에 의해 처리됩니다 연결 폐쇄, 예, 정리가 필요 상태에있을 수 있습니다 무료 () 메소드를. 이 메서드는 주로 편의상 두 가지를 모두 호출합니다.

세부
매개 변수
[in] aErr
이 오류 코드는이 요청의 원인을 나타냅니다. WEAVE_NO_ERROR가 아니면 TCP 연결이 중단 될 수 있습니다.
또한보십시오:
마무리 (무효)

비어 있는

void Free(
  void
)

바인딩 상태를 지 웁니다.

모든 바인딩 상태를 무조건 원래 상태로 되돌립니다.

GetExchangeCtx

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

생산 ExchangeContext의 A로부터 객체 바인딩을 .

세부
매개 변수
[in] aExchangeMgr
컨텍스트를 요청할 교환 관리자에 대한 포인터입니다.
[in] aAppState
나중에 사용하기 위해 교환 컨텍스트에 저장할 응용 프로그램 상태 개체에 대한 void 포인터입니다.
보고
포인터 ExchangeContext의 실패 개체, 또는 NULL.

불완전한 표시

void IncompleteIndication(
  StatusReport & aReport
)

바인딩 실패를 처리합니다.

이 방법은 결과적으로, 호출되며, 결합 원용 상위 계층 처리기 후, 즉 종료 후 실패 () CompleteConfirm 상태 나타내는 호출 성공하고있다.

세부
매개 변수
[in] aReport
무엇이 잘못되었는지 설명하는 StatusReport에 대한 참조.
또한보십시오:
CompleteConfirm (StatusReport & aReport) .

초기화

WEAVE_ERROR Init(
  const uint64_t & aPeerNodeId
)

초기화 바인딩 단지 노드 ID와 함께.

이로 인해 구성된 기본 전송으로 바인딩됩니다.

세부
매개 변수
[in] aPeerNodeId
바인딩 대상의 64 비트 ID에 대한 참조입니다.
반환 값
WEAVE_NO_ERROR
성공에.
WEAVE_ERROR_INVALID_ARGUMENT
바인딩이 제대로 지정되지 않은 경우.

초기화

WEAVE_ERROR Init(
  const uint64_t & aPeerNodeId,
  uint8_t aTransport
)

초기화 바인딩 피어 ID 및 전송을 기반으로 개체를.

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

초기화

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

초기화 바인딩 서비스 엔드 포인트 오브젝트를.

이것이 Nest 서비스의 특정 엔드 포인트에 바인딩하는 방법입니다. 이러한 종류의 바인딩에는 로컬 서비스 디렉터리 캐시 채우기 또는 업데이트를 포함 할 수있는 다단계 완료 프로세스가 필요합니다. 대부분의 경우이 프로세스는 응용 프로그램에서 숨겨져 있지만 프로세스 후반에 발생하는 오류는 일반적으로 원래 사용 요청 (및 완료) 이후에 관련 "확인"콜백을 통해 전달 될 수 있습니다. 바인딩.

세부
매개 변수
[in] aServiceEpt
관심있는 Weave 서비스 엔드 포인트의 64 비트 식별자에 대한 참조입니다.
[in] aServiceMgr
서비스 계층을 찾고 연결하는 데 사용할 서비스 관리자 인스턴스에 대한 포인터입니다.
[in] aAuthMode
연결에 사용할 인증 모드입니다.
반환 값
WEAVE_NO_ERROR
성공에.
WEAVE_ERROR_INVALID_ARGUMENT
바인딩이 제대로 지정되지 않은 경우.

초기화

WEAVE_ERROR Init(
  WeaveConnection *aConnection
)

초기화 바인딩 A의 객체 WeaveConnection를 .

세부
매개 변수
[in] aConnection
(A)에 대한 포인터 WeaveConnection는 결합을위한 기초로서 사용 ..
반환 값
WEAVE_NO_ERROR
성공에.
WEAVE_ERROR_INVALID_ARGUMENT
바인딩이 제대로 지정되지 않은 경우.

IsComplete

bool IsComplete(
  void
)

바인딩이 완료되었는지 확인하십시오.

세부
보고
완료되면 true, 그렇지 않으면 false입니다.
또한보십시오:
CompleteRequest (ProtocolEngine * aEngine)

IsFree

bool IsFree(
  void
)

바인딩은 무료입니다.

이 문맥에서 "Free"는 단순히 "정의 된 피어 노드 ID가 있음"을 의미합니다. IsFree는 () 하는 의미로 생각해야한다 "불려왔다 무료 () 및 이후 사용되지 않은".

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

미완료 요청

void UncompleteRequest(
  void
)

바인딩이 불완전하게 만듭니다.

기본적으로 바인딩은이 메서드가 호출 된 후 "불완전"상태가되지만, 더 미묘하게는 바인딩 자체에 포함되지 않은 관련 상태 (예 : TCP 연결)도 정리해야합니다. 응용 프로그램 호출 고려할 수 UncompleteRequest을 () 오류에 대한 정리의 일환으로.

또한보십시오:
미완료 요청 (WEAVE_ERROR)

미완료 요청

void UncompleteRequest(
  WEAVE_ERROR aErr
)

바인딩이 불완전하게 만듭니다.

기본적으로 바인딩은이 메서드가 호출 된 후 "불완전"상태가되지만, 더 미묘하게는 바인딩 자체에 포함되지 않은 관련 상태 (예 : TCP 연결)도 정리해야합니다. 응용 프로그램 호출 고려할 수 UncompleteRequest을 () 오류에 대한 정리의 일환으로.

세부
매개 변수
[in] aErr
WEAVE_NO_ERROR가 아니면 기존 연결 (있는 경우)이 정상적으로 닫히는 대신 중단됩니다.
또한보십시오:
UncompleteRequest (무효)

~ 바인딩

virtual  ~Binding(
  void
)

대한 소멸자 바인딩 개체를.

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