nl:: Weave:: Profiles:: 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:: |
보호된 속성
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 그 외의 경우에는 바인딩 초기화 실패를 반영하는 오류를 반환합니다.
|
IncompleteIndication
virtual void IncompleteIndication( Binding *aBinding, StatusReport & aReport )
바인딩이 실패했다는 표시를 처리합니다.
바인딩이 불완전해지면, 즉 TCP 바인딩에 대한 연결이 종료되면 프로토콜 엔진은 바인딩에 의존하는 모든 트랜잭션에 실패해야 합니다(상태 핸들러 호출 포함). 또한 불완전한 표시는 피어 ID를 취하는 이 메서드의 대체 형식을 구현하는 슈퍼클래스 객체로 전달됩니다.
세부정보 | |||||
---|---|---|---|---|---|
매개변수 |
|
IncompleteIndication
virtual void IncompleteIndication( const uint64_t & aPeerNodeId, StatusReport & aReport )=0
바인딩이 불완전해졌다는 표시를 처리합니다.
바인딩 실패를 알리려는 상위 계층은 이 메서드를 사용해야 합니다. 이 메서드는 단순히 상태 보고서와 함께 피어 ID를 전달합니다. 실제로 이 메서드는 가상 무효이므로 모든 DMClient 또는 DMPublisher 서브클래스에서 구현을 제공해야 합니다.
세부정보 | |||||
---|---|---|---|---|---|
매개변수 |
|
Init
virtual WEAVE_ERROR Init( WeaveExchangeManager *aExchangeMgr )
Init
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)
프로토콜 엔진
virtual ~ProtocolEngine( void )
보호된 함수
지우기
void Clear( void )
ClearBindingTable
void ClearBindingTable( void )
ClearTransactionTable
void ClearTransactionTable( void )
DequeueTransaction
void DequeueTransaction( DMTransaction *aTransaction )
EnqueueTransaction
WEAVE_ERROR EnqueueTransaction( DMTransaction *aTransaction, Binding *aBinding )
EnqueueTransaction
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 )