nl :: 짜다:: 프로필 :: DataManagement_Legacy :: ProtocolEngine
이것은 추상 클래스입니다.#include <src/lib/profiles/data-management/Legacy/ProtocolEngine.h>
WDM 프로토콜 엔진 클래스입니다.
요약
클라이언트 또는 게시자 인 데이터 관리 엔터티에는 프로토콜 엔진 구성 요소와 데이터 관리자 구성 요소가 있습니다. 이 추상 클래스는 프로토콜 엔진의 공통 기능을 나타냅니다.
계승
직접 알려진 하위 클래스 :nl :: Weave :: Profiles :: DataManagement_Legacy :: DMClient
nl :: Weave :: Profiles :: DataManagement_Legacy :: DMPublisher
생성자와 소멸자 | |
---|---|
ProtocolEngine (void) | |
~ProtocolEngine (void) |
보호 된 속성 | |
---|---|
mBindingTable [kBindingTableSize] | ProtocolEngine는 엔진이 단순히 방송 알림을 수신 이외에는 아무 것도 할 책임이 될 것입니다 경우, 아마 적어도 하나 개의 항목을 포함해야합니다, 바인딩 테이블이 있습니다. |
mExchangeMgr | |
mResponseTimeout | uint32_t |
mTransactionTable [kTransactionTableSize] |
공공 기능 | |
---|---|
BindConfirm ( Binding *aBinding) | virtual WEAVE_ERROR 바인드 요청이 성공적으로 완료되었는지 확인을 처리합니다. |
BindConfirm ( Binding *aBinding, StatusReport & aReport) | virtual WEAVE_ERROR 바인드 요청이 실패했는지 확인을 처리합니다. |
BindRequest (const uint64_t & aPeerNodeId, uint8_t aTransport) | 알려진 피어 노드 ID 및 전송 지정자를 사용하여 바인딩을 요청하십시오. |
BindRequest (const uint64_t & aPeerNodeId) | 기본 전송을 사용하여 알려진 피어에 바인드하십시오. |
BindRequest ( nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager *aServiceMgr, WeaveAuthMode aAuthMode) | |
BindRequest ( WeaveConnection *aConnection) | 활성 Weave 연결을 사용하여 바인딩을 요청합니다. |
IncompleteIndication ( Binding *aBinding, StatusReport & aReport) | virtual void 바인딩 실패 표시를 처리합니다. |
IncompleteIndication (const uint64_t & aPeerNodeId, StatusReport & aReport)=0 | virtual void 바인딩이 불완전하다는 표시를 처리합니다. |
Init ( WeaveExchangeManager *aExchangeMgr) | virtual WEAVE_ERROR |
Init ( WeaveExchangeManager *aExchangeMgr, uint32_t aResponseTimeout) | virtual WEAVE_ERROR |
UnbindRequest (const uint64_t & aPeerNodeId) | void 바인딩을 취소하고 바인딩 테이블에서 제거하도록 요청합니다. |
UnbindRequest (const uint64_t & aPeerNodeId, WEAVE_ERROR aErr) | void 바인딩을 취소하고 바인딩 테이블에서 제거하도록 요청합니다. |
보호 된 기능 | |
---|---|
Clear (void) | void |
ClearBindingTable (void) | void |
ClearTransactionTable (void) | void |
DequeueTransaction ( DMTransaction *aTransaction) | void |
EnqueueTransaction ( DMTransaction *aTransaction, Binding *aBinding) | |
EnqueueTransaction ( DMTransaction *aTransaction) | |
FailTransactions ( Binding *aBinding, StatusReport & aReport) | bool |
Finalize (void) | virtual void |
FinalizeBindingTable (void) | void |
FinalizeTransactionTable (void) | void |
FinalizeTransactions ( Binding *aBinding) | void |
FromExchangeCtx ( ExchangeContext *aExchangeCtx) | Binding * |
GetBinding (const uint64_t & aPeerNodeId) | Binding * |
NewBinding (void) | Binding * |
StartTransaction ( DMTransaction *aTransaction, Binding *aBinding) | |
StartTransaction ( DMTransaction *aTransaction) | |
StatusResponse ( ExchangeContext *aExchangeCtx, StatusReport & aStatus) |
클래스 | |
---|---|
NL :: 위브 :: 프로필 :: DataManagement_Legacy :: ProtocolEngine :: DMTransaction |
보호 된 속성
mBindingTable
Binding mBindingTable[kBindingTableSize]
ProtocolEngine는 엔진이 단순히 방송 알림을 수신 이외에는 아무 것도 할 책임이 될 것입니다 경우, 아마 적어도 하나 개의 항목을 포함해야합니다, 바인딩 테이블이 있습니다.
바인딩은 일반적으로 노드 ID로 인덱싱됩니다. 이것이 의미하는 바는 각 엔진이 주어진 서비스 엔드 포인트에 대한 단일 바인딩 만 가질 수 있다는 것입니다.
WDM 사양에는 명시 적 대상이 제공되지 않은 경우 메시지가 전달되는 위치 인 "기본 바인딩"이라는 개념이 있습니다. 이것은 대부분 단일 바인딩 또는 적은 수의 바인딩이있는 매우 간단한 장치에서 사용되며 다른 목적으로는 첫 번째 바인딩이됩니다.
mExchangeMgr
WeaveExchangeManager * mExchangeMgr
mResponseTimeout
uint32_t mResponseTimeout
mTransactionTable
TransactionTableEntry mTransactionTable[kTransactionTableSize]
공공 기능
BindConfirm
virtual WEAVE_ERROR BindConfirm( Binding *aBinding )
바인드 요청이 성공적으로 완료되었는지 확인을 처리합니다.
바인딩이 완료되면 프로토콜 엔진은 트랜잭션 테이블을 통해 해당 바인딩에 종속 된 모든 트랜잭션을 시작합니다.
세부 | |||
---|---|---|---|
매개 변수 |
| ||
보고 | WEAVE_NO_ERROR 에 성공. 그렇지 않으면 반환 WEAVE_ERROR 트랜잭션을 시작하는 무능력을 반영합니다. |
BindConfirm
virtual WEAVE_ERROR BindConfirm( Binding *aBinding, StatusReport & aReport )
바인드 요청이 실패했는지 확인을 처리합니다.
바인드 요청이 실패하면 프로토콜 엔진은 트랜잭션 테이블을 통과하고 바인딩에 따라 모든 트랜잭션을 실패해야합니다.
세부 | |||||
---|---|---|---|---|---|
매개 변수 |
| ||||
보고 |
BindRequest
WEAVE_ERROR BindRequest( const uint64_t & aPeerNodeId, uint8_t aTransport )
알려진 피어 노드 ID 및 전송 지정자를 사용하여 바인딩을 요청하십시오.
피어 노드 ID와 전송 사양이 주어지면이 요청은 해당 피어에 대한 바인딩을 설정합니다. 입찰은 전송이 TCP 인 경우에만 추가 완료가 필요합니다. 피어에 대한 바인딩이 이미있는 경우 다시 사용됩니다.
세부 | |||||
---|---|---|---|---|---|
매개 변수 |
| ||||
보고 | WEAVE_NO_ERROR 성공에 WEAVE_ERROR_NO_MEMORY는 바인딩 테이블이 가득합니다. 그렇지 않으면 반환 WEAVE_ERROR 바인딩을 초기화하는 데 실패를 반영합니다. |
WeaveTransportOption
BindRequest
WEAVE_ERROR BindRequest( const uint64_t & aPeerNodeId )
기본 전송을 사용하여 알려진 피어에 바인드하십시오.
세부 | |||
---|---|---|---|
매개 변수 |
| ||
보고 | WEAVE_NO_ERROR 에 성공. 그렇지 않으면 반환 WEAVE_ERROR 바인드 작업의 실패를 반영합니다. |
BindRequest
WEAVE_ERROR BindRequest( nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager *aServiceMgr, WeaveAuthMode aAuthMode )
BindRequest
WEAVE_ERROR BindRequest( WeaveConnection *aConnection )
활성 Weave 연결을 사용하여 바인딩을 요청합니다.
기존의 열린 연결을 사용하여 바인딩을 설정할 수도 있습니다. 이러한 방식으로 설정된 바인딩은 추가 완료가 필요하지 않습니다.
세부 | |||
---|---|---|---|
매개 변수 |
| ||
보고 | WEAVE_NO_ERROR 성공에 WEAVE_ERROR_NO_MEMORY는 바인딩 테이블이 가득합니다. 그렇지 않으면 바인딩 초기화 실패를 반영하는 오류를 반환합니다. |
불완전한 표시
virtual void IncompleteIndication( Binding *aBinding, StatusReport & aReport )
바인딩 실패 표시를 처리합니다.
바인딩이 불완전 해지면, 즉 TCP 바인딩에 대한 연결이 닫히면 프로토콜 엔진은 상태 핸들러 호출을 포함하여 이에 의존하는 모든 트랜잭션을 실패해야합니다. 또한 불완전한 표시는 피어 ID를 사용하는이 메소드의 대체 형식을 구현하는 수퍼 클래스 오브젝트로 전달됩니다.
세부 | |||||
---|---|---|---|---|---|
매개 변수 |
|
불완전한 표시
virtual void IncompleteIndication( const uint64_t & aPeerNodeId, StatusReport & aReport )=0
바인딩이 불완전하다는 표시를 처리합니다.
바인딩 실패를 알리려는 상위 계층은 상태 보고서와 함께 피어 ID를 전달하는이 방법을 사용해야합니다. 이 방법은 가상 무효이기 때문에 사실, 어떤 DMClient 또는 DMPublisher 서브 클래스가 구현을 제공해야합니다.
세부 | |||||
---|---|---|---|---|---|
매개 변수 |
|
초기화
virtual WEAVE_ERROR Init( WeaveExchangeManager *aExchangeMgr )
초기화
virtual WEAVE_ERROR Init( WeaveExchangeManager *aExchangeMgr, uint32_t aResponseTimeout )
ProtocolEngine
ProtocolEngine( void )
UnbindRequest
void UnbindRequest( const uint64_t & aPeerNodeId )
바인딩을 취소하고 바인딩 테이블에서 제거하도록 요청합니다.
바인딩이 "바인드 해제"되면 현재 종속되어있는 모든 트랜잭션도 제거해야합니다. 이 메서드는이 바인딩을 사용하여 모든 트랜잭션을 자동으로 마무리합니다.
세부 | |||
---|---|---|---|
매개 변수 |
|
UnbindRequest (const uint64_t, WEAVE_ERROR)
UnbindRequest
void UnbindRequest( const uint64_t & aPeerNodeId, WEAVE_ERROR aErr )
바인딩을 취소하고 바인딩 테이블에서 제거하도록 요청합니다.
바인딩이 "바인드 해제"되면 현재 종속되어있는 모든 트랜잭션도 제거해야합니다. 이 메서드는이 바인딩을 사용하여 모든 트랜잭션을 자동으로 마무리합니다.
세부 | |||||
---|---|---|---|---|---|
매개 변수 |
|
UnbindRequest (const uint64_t)
~ ProtocolEngine
virtual ~ProtocolEngine( void )
보호 된 기능
맑은
void Clear( void )
ClearBindingTable
void ClearBindingTable( void )
ClearTransactionTable
void ClearTransactionTable( void )
DequeueTransaction
void DequeueTransaction( DMTransaction *aTransaction )
대기열에 넣기 트랜잭션
WEAVE_ERROR EnqueueTransaction( DMTransaction *aTransaction, Binding *aBinding )
대기열에 넣기 트랜잭션
WEAVE_ERROR EnqueueTransaction( DMTransaction *aTransaction )
FailTransactions
bool FailTransactions( Binding *aBinding, StatusReport & aReport )
마무리
virtual void Finalize( void )
FinalizeBindingTable
void FinalizeBindingTable( void )
FinalizeTransactionTable
void FinalizeTransactionTable( void )
FinalizeTransactions
void FinalizeTransactions( Binding *aBinding )
FromExchangeCtx
Binding * FromExchangeCtx( ExchangeContext *aExchangeCtx )
GetBinding
Binding * GetBinding( const uint64_t & aPeerNodeId )
NewBinding
Binding * NewBinding( void )
StartTransaction
WEAVE_ERROR StartTransaction( DMTransaction *aTransaction, Binding *aBinding )
StartTransaction
WEAVE_ERROR StartTransaction( DMTransaction *aTransaction )
StatusResponse
WEAVE_ERROR StatusResponse( ExchangeContext *aExchangeCtx, StatusReport & aStatus )