nl:: Weave:: Profiles:: DataManagement_Legacy:: ProtocolEngine
이것은 추상 클래스입니다.
#include <src/lib/profiles/data-management/Legacy/ProtocolEngine.h>
WDM 프로토콜 엔진 클래스입니다.
요약
데이터 관리 개체(클라이언트 또는 게시자)에는 프로토콜 엔진 구성요소와 데이터 관리자 구성요소가 있습니다. 이 추상 클래스는 프로토콜 엔진의 공통 기능을 나타냅니다.
상속
직접 알려진 서브클래스: <ph type="x-smartling-placeholder"></ph> nl::Weave::Profiles::DataManagement_Legacy::DMClient <ph type="x-smartling-placeholder">
</ph> 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를 반환합니다.
|
</ph> WeaveTransportOption <ph type="x-smartling-placeholder">
</ph>
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를 전달합니다. 실제로 이 메서드는 가상 void이므로 모든 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)
~ProtocolEngine
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 )