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)
GetBinding(const uint64_t & aPeerNodeId)
NewBinding(void)
StartTransaction(DMTransaction *aTransaction, Binding *aBinding)
StartTransaction(DMTransaction *aTransaction)
StatusResponse(ExchangeContext *aExchangeCtx, StatusReport & aStatus)

Zajęcia

nl::Weave::Profiles::DataManagement_Legacy::ProtocolEngine::DMTransaction

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
[in] aBinding
Wskaźnik do ukończonego wiązania.
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
[in] aBinding
Wskaźnik nieudanego powiązania.
[in] aReport
Odwołanie do obiektu StatusReport zawierające szczegółowe informacje o przyczynie niepowodzenia.
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
[in] aPeerNodeId
Odwołanie do 64-bitowego identyfikatora węzła jednostki równorzędnej, która jest celem wiązania.
[in] aTransport
Środki transportu, których chcesz użyć.
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).
Zobacz też:
WeaveTransportOption

BindRequest

WEAVE_ERROR BindRequest(
  const uint64_t & aPeerNodeId
)

Powiąż ze znanym peerem za pomocą domyślnego transportu.

Szczegóły
Parametry
[in] aPeerNodeId
Odwołanie do 64-bitowego identyfikatora węzła jednostki równorzędnej, która jest celem wiązania.
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
[in] aConnection
Wskaźnik z połączeniem Weave, który ma być używany przez powiązanie.
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
[in] aBinding
Wskaźnik nieudanego powiązania.
[in] aReport
Odwołanie do obiektu StatusReport zawierające szczegółowe informacje o przyczynie niepowodzenia.

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
[in] aPeerNodeId
Odwołanie do 64-bitowego identyfikatora węzła równorzędnego lub punktu końcowego usługi, które jest tym miejscem docelowym nieudanego wiązania.
[in] aReport
Odwołanie do obiektu StatusReport zawierające szczegółowe informacje o przyczynie niepowodzenia.

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
[in] aPeerNodeId
Odwołanie do 64-bitowego identyfikatora węzła lub punktu końcowego usługi, które identyfikuje powiązanie.
Zobacz też:
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
[in] aPeerNodeId
Odwołanie do 64-bitowego identyfikatora węzła lub punktu końcowego usługi, które identyfikuje powiązanie.
[in] aErr
WEAVE_NO_ERROR, jeśli nie ma konkretnej przyczyny usunięcia powiązania. W przeciwnym razie przyczyna błędu zostanie przekazana.
Zobacz też:
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
)

StartTransaction

WEAVE_ERROR StartTransaction(
  DMTransaction *aTransaction
)

StatusResponse

WEAVE_ERROR StatusResponse(
  ExchangeContext *aExchangeCtx,
  StatusReport & aStatus
)