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)
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ę 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
[in] aBinding
wskaźnik do zakończonego powiązania.
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
[in] aBinding
wskaźnik do nieudanego powiązania.
[in] aReport
Odwołanie do obiektu StatusReport ze szczegółami przyczyny niepowodzenia.
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
[in] aPeerNodeId
Odwołanie do 64-bitowego identyfikatora węzła jednostki równorzędnej, która jest celem powiązania.
[in] aTransport
Transport do użycia.
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.
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 powiązania.
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
[in] aConnection
Wskaźnik połączenia 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 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
[in] aBinding
wskaźnik do nieudanego powiązania.
[in] aReport
Odwołanie do obiektu StatusReport ze szczegółami przyczyny niepowodzenia.

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
[in] aPeerNodeId
Odwołanie do 64-bitowego identyfikatora węzła równorzędnego lub punktu końcowego usługi, który jest miejscem docelowym nieudanego powiązania.
[in] aReport
Odwołanie do obiektu StatusReport ze szczegółami przyczyny niepowodzenia.

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
[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 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
[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 konkretnego powodu dla tego żądania usunięcia powiązania. W przeciwnym razie informacje o błędzie zostałyby przekazane.
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
)