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{
|
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
공개 함수
CompleteConfirm
void CompleteConfirm( WeaveConnection *aConnection )
CompleteConfirm
void CompleteConfirm( StatusReport & aReport )
바인드 요청의 실패 처리
세부정보 | |||
---|---|---|---|
매개변수 |
|
CompleteConfirm
void CompleteConfirm( void )
바인드 요청 확인을 처리합니다.
CompleteRequest
WEAVE_ERROR CompleteRequest( ProtocolEngine *aEngine )
바인딩 완료 요청
결합 완료는 최소한 TCP가 필요한 바인딩의 경우 ExchangeManager 인스턴스에 대한 액세스를 제공하는 특정 ProtocolEngine 개체와 관련하여 실행됩니다.
세부정보 | |||||||
---|---|---|---|---|---|---|---|
매개변수 |
|
||||||
반환 값 |
|
||||||
반환 |
그렇지 않으면 연결을 시도하는 동안 WEAVE_ERROR가 반환됩니다.
|
연결
WEAVE_ERROR Connect( WeaveConnection *aConnection )
완료된 연결을 제공하여 TCP 바인딩을 완료합니다.
새로 초기화된 TCP 바인딩은 완료될 때까지 사용할 수 없습니다. 일반적으로 이 작업은 애플리케이션이 바인딩을 사용하여 메시지를 보내려고 할 때 요청이 있을 때 실행되지만 Weave 연결을 제공하여 명시적으로 완료할 수도 있습니다.
세부정보 | |||||||
---|---|---|---|---|---|---|---|
매개변수 |
|
||||||
반환 값 |
|
마무리
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() 메서드에 의해 처리됩니다. 이 메서드는 주로 편의를 위해 둘 다 호출합니다.
세부정보 | |||
---|---|---|---|
매개변수 |
|
</ph> 확정(무효) <ph type="x-smartling-placeholder">
</ph>
무료
void Free( void )
결합 상태를 삭제합니다.
모든 결합 상태를 무조건 원래 상태로 되돌립니다.
GetExchangeCtx
ExchangeContext * GetExchangeCtx( WeaveExchangeManager *aExchangeMgr, void *aAppState )
Binding에서 ExchangeContext 객체를 생성합니다.
세부정보 | |||||
---|---|---|---|---|---|
매개변수 |
|
||||
반환 |
ExchangeContext 개체에 대한 포인터이거나 실패 시 NULL입니다.
|
IncompleteIndication
void IncompleteIndication( StatusReport & aReport )
결합 실패를 처리합니다.
이 메서드는 호출되어 완료 후, 즉 CompleteConfirm()이 성공을 나타내는 상태와 함께 호출된 후 바인딩이 실패할 때 상위 계층 핸들러를 호출합니다.
세부정보 | |||
---|---|---|---|
매개변수 |
|
CompleteConfirm(StatusReport &aReport).
Init
WEAVE_ERROR Init( const uint64_t & aPeerNodeId )
노드 ID만으로 Binding을 초기화합니다.
이렇게 하면 구성된 기본 전송과 결합됩니다.
세부정보 | |||||
---|---|---|---|---|---|
매개변수 |
|
||||
반환 값 |
|
Init
WEAVE_ERROR Init( const uint64_t & aPeerNodeId, uint8_t aTransport )
피어 ID 및 전송을 기반으로 Binding 객체를 초기화합니다.
세부정보 | |||||
---|---|---|---|---|---|
매개변수 |
|
||||
반환 값 |
|
Init
WEAVE_ERROR Init( const uint64_t & aServiceEpt, WeaveServiceManager *aServiceMgr, WeaveAuthMode aAuthMode )
서비스 엔드포인트에 대한 Binding 객체를 초기화합니다.
이 방법으로 Nest 서비스의 특정 엔드포인트에 바인딩할 수 있습니다. 이러한 종류의 바인딩에는 로컬 서비스 디렉터리 캐시를 채우거나 업데이트하는 작업이 포함된 다단계 완료 프로세스가 필요합니다. 대부분의 경우 이 프로세스는 애플리케이션에 표시되지 않지만 프로세스 후반에 발생하는 오류는 일반적으로 관련 '확인' 바인딩을 사용(및 완료)하려는 원래 요청 후(때로는 오랜 시간이 지난 후) 콜백입니다.
세부정보 | |||||||
---|---|---|---|---|---|---|---|
매개변수 |
|
||||||
반환 값 |
|
Init
WEAVE_ERROR Init( WeaveConnection *aConnection )
WeaveConnection을 사용하여 Binding 객체를 초기화합니다.
세부정보 | |||||
---|---|---|---|---|---|
매개변수 |
|
||||
반환 값 |
|
IsComplete
bool IsComplete( void )
결합이 완료되었는지 확인합니다.
세부정보 | |
---|---|
반환 |
완료되면 true, 그렇지 않으면 false입니다.
|
</ph> CompleteRequest(ProtocolEngine *aEngine) <ph type="x-smartling-placeholder">
</ph>
IsFree
bool IsFree( void )
바인딩은 무료인지 확인합니다.
'무료' 이 문맥에서 '정의된 피어 노드가 있음'은 ID'로 시작해야 합니다. IsFree() should be thought of as meaning "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()의 호출을 고려할 수 있습니다.
세부정보 | |||
---|---|---|---|
매개변수 |
|
</ph> UncompleteRequest(void) <ph type="x-smartling-placeholder">
</ph>