nl:: Weave:: Profiles:: DataManagement_Legacy:: ProtocolEngine
To zajęcia abstrakcyjne.
#include <src/lib/profiles/data-management/Legacy/ProtocolEngine.h>
Klasa silnika protokołu WDM.
Podsumowanie
Jednostka zarządzania danymi (klient lub wydawca) ma komponenty wyszukiwarki protokołów i menedżera danych. Ta klasa abstrakcyjna reprezentuje typowe funkcje mechanizmu protokołów.
Dziedziczenie
Bezpośrednie znane podklasy:nl::Weave::Profiles::DataManagement_Legacy::DMClient
nl::Weave::Profiles::DataManagement_Legacy::DMPublisher
Konstruktory i niszczyciele |
|
---|---|
ProtocolEngine(void)
|
|
~ProtocolEngine(void)
|
Atrybuty chronione |
|
---|---|
mBindingTable[kBindingTableSize]
|
ProtocolEngine ma tabelę powiązań. Jeśli wyszukiwarka ma być odpowiedzialna za coś oprócz otrzymywania powiadomień o transmisjach, prawdopodobnie musi zawierać co najmniej 1 wpis.
|
mExchangeMgr
|
|
mResponseTimeout
|
uint32_t
|
mTransactionTable[kTransactionTableSize]
|
Funkcje publiczne |
|
---|---|
BindConfirm(Binding *aBinding)
|
virtual WEAVE_ERROR
Potwierdź, że prośba o powiązanie została zrealizowana.
|
BindConfirm(Binding *aBinding, StatusReport & aReport)
|
virtual WEAVE_ERROR
Obsługa potwierdzenia, że żądanie powiązania zakończyło się niepowodzeniem.
|
BindRequest(const uint64_t & aPeerNodeId, uint8_t aTransport)
|
Poproś o powiązanie przy użyciu znanego identyfikatora węzła równorzędnego i specyfikatora transportu.
|
BindRequest(const uint64_t & aPeerNodeId)
|
Powiąż ze znanym peerem za pomocą domyślnego transportu.
|
BindRequest(nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager *aServiceMgr, WeaveAuthMode aAuthMode)
|
|
BindRequest(WeaveConnection *aConnection)
|
Poproś o powiązanie przy użyciu aktywnego połączenia Weave.
|
IncompleteIndication(Binding *aBinding, StatusReport & aReport)
|
virtual void
Poinformuj o niepowodzeniu powiązania.
|
IncompleteIndication(const uint64_t & aPeerNodeId, StatusReport & aReport)=0
|
virtual void
Zidentyfikuj sygnał, że powiązanie jest niepełne.
|
Init(WeaveExchangeManager *aExchangeMgr)
|
virtual WEAVE_ERROR
|
Init(WeaveExchangeManager *aExchangeMgr, uint32_t aResponseTimeout)
|
virtual WEAVE_ERROR
|
UnbindRequest(const uint64_t & aPeerNodeId)
|
void
Poproś o cofnięcie powiązania i usunięcie go z tabeli powiązań.
|
UnbindRequest(const uint64_t & aPeerNodeId, WEAVE_ERROR aErr)
|
void
Poproś o cofnięcie powiązania i usunięcie go z tabeli powiązań.
|
Funkcje chronione |
|
---|---|
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)
|
Zajęcia |
|
---|---|
nl:: |
Atrybuty chronione
mBindingTable
Binding mBindingTable[kBindingTableSize]
ProtocolEngine ma tabelę powiązań. Jeśli wyszukiwarka ma być odpowiedzialna za coś oprócz otrzymywania powiadomień o transmisjach, prawdopodobnie musi zawierać co najmniej 1 wpis.
Powiązania są zwykle indeksowane według identyfikatora węzła. Oznacza to, że każda wyszukiwarka może mieć tylko jedno powiązanie z danym punktem końcowym usługi.
Specyfikacja WDM zawiera pojęcie „domyślnego wiązania”. czyli miejsca, do którego są kierowane wiadomości, jeśli nie podano wyraźnego miejsca docelowego. Będzie on używany głównie w bardzo prostych urządzeniach z jednym wiązaniem lub z niewielką liczbą powiązań. Do innych celów będzie to pierwsze wiązanie utworzone.
mExchangeMgr
WeaveExchangeManager * mExchangeMgr
mResponseTimeout
uint32_t mResponseTimeout
mTransactionTable
TransactionTableEntry mTransactionTable[kTransactionTableSize]
Funkcje publiczne
BindConfirm
virtual WEAVE_ERROR BindConfirm( Binding *aBinding )
Potwierdź, że prośba o powiązanie została zrealizowana.
Po zakończeniu powiązania mechanizm protokołów przegląda tabelę transakcji i uruchamia wszystkie transakcje, które są od niego zależne.
Szczegóły | |||
---|---|---|---|
Parametry |
|
||
Zwroty |
WEAVE_NO_ERROR Po powodzeniu. W przeciwnym razie zwraca WEAVE_ERROR, który wskazuje, że nie można rozpocząć transakcji.
|
BindConfirm
virtual WEAVE_ERROR BindConfirm( Binding *aBinding, StatusReport & aReport )
Obsługa potwierdzenia, że żądanie powiązania zakończyło się niepowodzeniem.
Jeśli żądanie powiązania nie powiedzie się, mechanizm protokołów musi przejść przez tabelę transakcji i zakończyć wszystkie transakcje (w zależności od powiązania).
Szczegóły | |||||
---|---|---|---|---|---|
Parametry |
|
||||
Zwroty |
BindRequest
WEAVE_ERROR BindRequest( const uint64_t & aPeerNodeId, uint8_t aTransport )
Poproś o powiązanie przy użyciu znanego identyfikatora węzła równorzędnego i specyfikatora transportu.
Z uwzględnieniem identyfikatora węzła równorzędnego i specyfikacji transportu to żądanie konfiguruje powiązanie z tym peerem. Ustalanie stawek wymaga dodatkowego dokończenia TYLKO wtedy, gdy korzystasz z transportu TCP. Jeśli powiązanie z peerem już istnieje, zostanie ono użyte ponownie.
Szczegóły | |||||
---|---|---|---|---|---|
Parametry |
|
||||
Zwroty |
WEAVE_NO_ERROR w przypadku powodzenia lub WEAVE_ERROR_NO_MEMORY, jeśli tabela powiązań jest pełna. W przeciwnym razie zwraca błąd WEAVE_ERROR wskazujący na niepowodzenie zainicjowania powiązania.
|
WeaveTransportOption
BindRequest
WEAVE_ERROR BindRequest( const uint64_t & aPeerNodeId )
Powiąż ze znanym peerem za pomocą domyślnego transportu.
Szczegóły | |||
---|---|---|---|
Parametry |
|
||
Zwroty |
WEAVE_NO_ERROR Po powodzeniu. W przeciwnym razie zwraca błąd WEAVE_ERROR wskazujący niepowodzenie operacji powiązania.
|
BindRequest
WEAVE_ERROR BindRequest( nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager *aServiceMgr, WeaveAuthMode aAuthMode )
BindRequest
WEAVE_ERROR BindRequest( WeaveConnection *aConnection )
Poproś o powiązanie przy użyciu aktywnego połączenia Weave.
Powiązanie można też ustanowić za pomocą istniejącego, otwartego połączenia. Pamiętaj, że powiązania utworzone w ten sposób nie wymagają dodatkowego uzupełniania.
Szczegóły | |||
---|---|---|---|
Parametry |
|
||
Zwroty |
WEAVE_NO_ERROR w przypadku powodzenia lub WEAVE_ERROR_NO_MEMORY, jeśli tabela powiązań jest pełna. W przeciwnym razie zwraca błąd wskazujący na niepowodzenie zainicjowania powiązania.
|
IncompleteIndication
virtual void IncompleteIndication( Binding *aBinding, StatusReport & aReport )
Poinformuj o niepowodzeniu powiązania.
Gdy powiązanie staje się niepełne, np. po zamknięciu połączenia na potrzeby wiązania TCP mechanizm protokołów musi zakończyć się niepowodzeniem we wszystkich zależnych od niego transakcjach, w tym wywołaniu ich modułów obsługi stanu. Niekompletne oznaczenie jest też przekazywane do każdego obiektu klasy nadrzędnej, który implementuje alternatywną formę tej metody, która przyjmuje identyfikator peera.
Szczegóły | |||||
---|---|---|---|---|---|
Parametry |
|
IncompleteIndication
virtual void IncompleteIndication( const uint64_t & aPeerNodeId, StatusReport & aReport )=0
Zidentyfikuj sygnał, że powiązanie jest niepełne.
Wyższe warstwy, które mają być powiadamiane o błędach powiązania, powinny używać tej metody, która po prostu przekazuje identyfikator peera wraz z raportem o stanie. Ponieważ ta metoda jest wirtualna nieistotna, każda podklasa DMClient lub DMPublisher musi zapewniać implementację.
Szczegóły | |||||
---|---|---|---|---|---|
Parametry |
|
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 )
Poproś o cofnięcie powiązania i usunięcie go z tabeli powiązań.
Gdy powiązanie jest „niepowiązane” wszystkie zależne od niej transakcje również powinny zostać usunięte. Ta metoda automatycznie finalizuje wszystkie transakcje z tym powiązaniem.
Szczegóły | |||
---|---|---|---|
Parametry |
|
UnbindRequest(const uint64_t, WEAVE_ERROR)
UnbindRequest
void UnbindRequest( const uint64_t & aPeerNodeId, WEAVE_ERROR aErr )
Poproś o cofnięcie powiązania i usunięcie go z tabeli powiązań.
Gdy powiązanie jest „niepowiązane” wszystkie zależne od niej transakcje również powinny zostać usunięte. Ta metoda automatycznie finalizuje wszystkie transakcje z tym powiązaniem.
Szczegóły | |||||
---|---|---|---|---|---|
Parametry |
|
UnbindRequest(const uint64_t)
~ProtocolEngine
virtual ~ProtocolEngine( void )
Funkcje chronione
Wyczyść
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 )
Zakończ
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 )