nl:: Weave:: Profiles:: DataManagement_Legacy:: ProtocolEngine
To jest klasa abstrakcyjna.
#include <src/lib/profiles/data-management/Legacy/ProtocolEngine.h>
Klasa protokołu WDM.
Podsumowanie
Podmiot zarządzania danymi (klient lub wydawca) ma komponenty silnika protokołu i menedżera danych. Ta abstrakcyjna klasa reprezentuje wspólne funkcje mechanizmu protokołów.
Dziedziczenie
Bezpośrednie znane podklasy:nl::Weave::Profiles::DataManagement_Legacy::DMClient
nl::Weave::Profiles::DataManagement_Legacy::DMPublisher
Konstruktorzy i niszczyciele |
|
---|---|
ProtocolEngine(void)
|
|
~ProtocolEngine(void)
|
Atrybuty chronione |
|
---|---|
mBindingTable[kBindingTableSize]
|
ProtocolEngine ma tabelę wiążącą, która, jeśli wyszukiwarka ma być odpowiedzialna za coś poza otrzymywaniem powiadomień o transmisjach, prawdopodobnie musi zawierać co najmniej 1 wpis.
|
mExchangeMgr
|
|
mResponseTimeout
|
uint32_t
|
mTransactionTable[kTransactionTableSize]
|
Funkcje publiczne |
|
---|---|
BindConfirm(Binding *aBinding)
|
virtual WEAVE_ERROR
Przetwórz potwierdzenie, że żądanie powiązania zostało ukończone.
|
BindConfirm(Binding *aBinding, StatusReport & aReport)
|
virtual WEAVE_ERROR
Obsługa potwierdzenia, że żądanie powiązania nie powiodło się.
|
BindRequest(const uint64_t & aPeerNodeId, uint8_t aTransport)
|
Wyślij żądanie powiązania, korzystając ze 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, używając aktywnego połączenia Weave.
|
IncompleteIndication(Binding *aBinding, StatusReport & aReport)
|
virtual void
Obsługa wskazania, że powiązanie się nie udało.
|
IncompleteIndication(const uint64_t & aPeerNodeId, StatusReport & aReport)=0
|
virtual void
Sprawdź, czy powiązanie stało się niekompletne.
|
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 wiązania i usunięcie go z tabeli powiązań.
|
UnbindRequest(const uint64_t & aPeerNodeId, WEAVE_ERROR aErr)
|
void
Poproś o cofnięcie wią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ę wiążącą, która, jeśli wyszukiwarka ma być odpowiedzialna za coś poza otrzymywaniem 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 1 powiązanie z danym punktem końcowym usługi.
Specyfikacja WDM zawiera to pojęcie „domyślnego wiązania”, czyli miejsca, w którym trafiają wiadomości, jeśli nie określono wyraźnie miejsca docelowego. Stosuje się je przeważnie na bardzo prostych urządzeniach z pojedynczym wiązaniem lub z niewielką liczbą wiązań. W innych celach 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 )
Przetwórz potwierdzenie, że żądanie powiązania zostało ukończone.
Po utworzeniu powiązania mechanizm protokołu przechodzi przez tabelę transakcji i rozpoczyna transakcje, które są od niego zależne.
Szczegóły | |||
---|---|---|---|
Parametry |
|
||
Zwroty |
WEAVE_NO_ERROR Po pomyślnym zakończeniu. W przeciwnym razie zwraca błąd WEAVE_ERROR wskazujący niemożność rozpoczęcia transakcji.
|
BindConfirm
virtual WEAVE_ERROR BindConfirm( Binding *aBinding, StatusReport & aReport )
Obsługa potwierdzenia, że żądanie powiązania nie powiodło się.
Jeśli żądanie powiązania nie powiedzie się, mechanizm protokołu musi przejść przez tabelę transakcji i zakończyć wszystkie transakcje, w zależności od powiązania.
Szczegóły | |||||
---|---|---|---|---|---|
Parametry |
|
||||
Zwroty |
WEAVE_NO_ERROR (BŁĄD WEAVE_NO_ERROR).
|
BindRequest
WEAVE_ERROR BindRequest( const uint64_t & aPeerNodeId, uint8_t aTransport )
Wyślij żądanie powiązania, korzystając ze znanego identyfikatora węzła równorzędnego i specyfikatora transportu.
Biorąc pod uwagę identyfikator węzła równorzędnego i specyfikację transportu, żądanie konfiguruje powiązanie z tym peerem. Ustalenie stawek będzie wymagać dodatkowego ukończenia TYLKO wtedy, gdy transport odbywa się przez 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 (błąd inicjowania wią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 pomyślnym zakończeniu. 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, używając aktywnego połączenia Weave.
Powiązanie można też ustanowić za pomocą istniejącego, otwartego połączenia. Pamiętaj, że wiązania utworzone w ten sposób nie wymagają 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 to, że nie udało się zainicjować powiązania.
|
IncompleteIndication
virtual void IncompleteIndication( Binding *aBinding, StatusReport & aReport )
Obsługa wskazania, że powiązanie się nie udało.
Gdy powiązanie staje się niekompletne, tj. po zamknięciu połączenia z powodu powiązania TCP, mechanizm protokołu musi zakończyć wszystkie transakcje, które są od niego zależne, w tym wywoływać swoje moduły obsługi stanu. Dodatkowo niepełne oznaczenie jest przekazywane do każdego obiektu klasy nadrzędnej implementującej alternatywną formę tej metody, który przyjmuje identyfikator peera.
Szczegóły | |||||
---|---|---|---|---|---|
Parametry |
|
IncompleteIndication
virtual void IncompleteIndication( const uint64_t & aPeerNodeId, StatusReport & aReport )=0
Sprawdź, czy powiązanie stało się niekompletne.
Warstwy na wyższym poziomie, które chcą otrzymywać informacje o błędzie powiązania, powinny używać tej metody, która przekazuje identyfikator peera razem z raportem o stanie. Ponieważ ta metoda jest wirtualną pustką, każda podklasa DMClient lub DMPublisher musi udostępniać implementację.
Szczegóły | |||||
---|---|---|---|---|---|
Parametry |
|
Zainicjuj
virtual WEAVE_ERROR Init( WeaveExchangeManager *aExchangeMgr )
Zainicjuj
virtual WEAVE_ERROR Init( WeaveExchangeManager *aExchangeMgr, uint32_t aResponseTimeout )
ProtocolEngine
ProtocolEngine( void )
UnbindRequest
void UnbindRequest( const uint64_t & aPeerNodeId )
Poproś o cofnięcie wiązania i usunięcie go z tabeli powiązań.
Jeśli powiązanie jest „odłączone”, wszystkie transakcje, które są obecnie od niego zależne, powinny również 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 wiązania i usunięcie go z tabeli powiązań.
Jeśli powiązanie jest „odłączone”, wszystkie transakcje, które są obecnie od niego zależne, powinny również 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 )