nl::Weave::Profiles::DataManagement_Legacy::Binding

#include <src/lib/profiles/data-management/Legacy/Binding.h>

Klasa Binding służy do zarządzania stanem komunikacji w imieniu podmiotu aplikacji za pomocą Weave.

Podsumowanie

Gdy aplikacja chce używać Weave do komunikowania się z podmiotem zdalnym, istnieje wiele różnych opcji. Klasa Wiązanie gromadzi te opcje i uporządkuje je w taki sposób, aby łatwe czynności były łatwe, a trudniejsze – przynajmniej delikatne. Dostępne opcje:

  • pojedyncza komunikacja UDP ze znanym węzłem równorzędnym.
  • Transmisja UDP z wartością „any” do węzła.
  • pojedyncza komunikacja WRMP ze znanym węzłem równorzędnym.
  • Komunikacja TCP ze znanym węzłem równorzędnym.
  • Komunikacja TCP ze znanym punktem końcowym usługi przy użyciu instancji menedżera usługi w celu konfiguracji.
  • Komunikacja TCP oparta na wcześniej ustalonym połączeniu.

Konstruktory i niszczyciele

Binding(void)
Domyślny konstruktor obiektów Binding (Wiązanie).
~Binding(void)
Destruktor obiektów Binding (Wiązanie).

Typy publiczne

@165{
  kState_Incomplete = 0,
  kState_Completing = 1,
  kState_Complete = 2
}
enum | typ wyliczeniowy
Zbiór stanów obiektów Wiązanie.

Atrybuty publiczne

mAuthMode
WeaveAuthMode
Tryb uwierzytelniania Weave, który ma być używany.
mConnection
Wskaźnik połączenia Weave aktualnie używanego w tym powiązaniu.
mEngine
Wskaźnik do obiektu ProtocolEngine związanego z tym powiązaniem.
mPeerNodeId
uint64_t
64-bitowy identyfikator węzła docelowego powiązania.
mServiceMgr
Wskaźnik do (opcjonalnego) obiektu ServiceManager, który ma zostać użyty do wypełnienia tego powiązania.
mState
uint8_t
Bieżący stan obiektu Wiązanie.
mTransport
uint8_t
Transport, który ma być użyty do wypełnienia tego Wiązania.

Funkcje publiczne

CompleteConfirm(WeaveConnection *aConnection)
void
Obsługa potwierdzenia prośby o powiązanie.
CompleteConfirm(StatusReport & aReport)
void
Obsługa nieudanego żądania powiązania.
CompleteConfirm(void)
void
Obsługa potwierdzenia prośby o powiązanie.
CompleteRequest(ProtocolEngine *aEngine)
Poproś o zakończenie powiązania.
Connect(WeaveConnection *aConnection)
Wykonaj powiązanie TCP, podając ukończone połączenie.
Finalize(void)
void
„Nie ukończono” i uwolnienie go.
Finalize(WEAVE_ERROR aErr)
void
„Nie ukończono” i uwolnienie go.
Free(void)
void
Wyczyść stan powiązania.
GetExchangeCtx(WeaveExchangeManager *aExchangeMgr, void *aAppState)
Utwórz obiekt ExchangeContext na podstawie obiektu Binding.
IncompleteIndication(StatusReport & aReport)
void
radzić sobie z niepowodzeniem powiązania.
Init(const uint64_t & aPeerNodeId)
Zainicjuj Wiązanie tylko przy użyciu identyfikatora węzła.
Init(const uint64_t & aPeerNodeId, uint8_t aTransport)
Zainicjuj obiekt Binding na podstawie identyfikatora peera i transportu.
Init(const uint64_t & aServiceEpt, WeaveServiceManager *aServiceMgr, WeaveAuthMode aAuthMode)
Zainicjuj obiekt Binding z punktem końcowym usługi.
Init(WeaveConnection *aConnection)
Zainicjuj obiekt Binding za pomocą WeaveConnection.
IsComplete(void)
bool
Sprawdź, czy powiązanie zostało zakończone.
IsFree(void)
bool
Sprawdzanie, czy powiązanie jest bezpłatne, jest bezpłatne.
UncompleteRequest(void)
void
Powoduje, że powiązanie jest niekompletne.
UncompleteRequest(WEAVE_ERROR aErr)
void
Powoduje, że powiązanie jest niekompletne.

Typy publiczne

@165

 @165

Zbiór stanów obiektów Wiązanie.

Właściwości
kState_Complete

Stan wiązania, które jest kompletne i gotowe do użycia.

kState_Completing

Stan wiązania, które jest w trakcie realizacji.

kState_Incomplete

Początkowy (i ostateczny) stan powiązania.

Atrybuty publiczne

mAuthMode

WeaveAuthMode mAuthMode

Tryb uwierzytelniania Weave, który ma być używany.

(READ_ONLY)

Jest to tryb uwierzytelniania używany we wszystkich komunikatach objętych tym powiązaniem.

mConnection

WeaveConnection * mConnection

Wskaźnik połączenia Weave aktualnie używanego w tym powiązaniu.

(TYLKO DO ODCZYTU)

Powiązania TCP mogą być inicjowane od razu przez nawiązywanie połączenia lub mogą zostać przydzielone w momencie zakończenia.

mEngine

ProtocolEngine * mEngine

Wskaźnik do obiektu ProtocolEngine związanego z tym powiązaniem.

Powiązanie jest zazwyczaj realizowane w odniesieniu do określonego mechanizmu protokołów, który przeważnie służy do uzyskiwania dostępu do MessageLayer. Dzięki temu monitorujemy sytuację.

mPeerNodeId

uint64_t mPeerNodeId

64-bitowy identyfikator węzła docelowego powiązania.

(TYLKO DO ODCZYTU)

Każde Wiązanie ma encję docelową, która się tutaj nazywa. Oprócz identyfikatora węzła Weave może on wskazywać punkt końcowy usługi.

mServiceMgr

nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager * mServiceMgr

Wskaźnik do (opcjonalnego) obiektu ServiceManager, który ma zostać użyty do wypełnienia tego powiązania.

(TYLKO DO ODCZYTU)

Podczas tworzenia powiązania z usługą Weave zamiast identyfikatora węzła Weave można podać 64-bitowy identyfikator punktu końcowego usługi. W tym przypadku do zakończenia powiązania wymagany jest też obiekt ServiceManager. Normalne powiązania TCP lub WRMP nie wymagają obiektu ServiceManager.

mState

uint8_t mState

Bieżący stan obiektu Wiązanie.

Tylko jedno „zakończone” operacja może być uruchomiona w danym momencie. W każdym przypadku, jeśli poprosisz o zakończenie ukończonego powiązania, od razu wywoła ona funkcję potwierdzania. Zmienna stanu poniżej śledzi bieżący stan i działa jako blokada.

mTransport

uint8_t mTransport

Transport, który ma być użyty w ramach tego Wiązania.

(TYLKO DO ODCZYTU)

Możliwe wartości atrybutu mTransport są zdefiniowane w pliku DMConstants.h.

Funkcje publiczne

Powiązanie

 Binding(
  void
)

Domyślny konstruktor obiektów Binding (Wiązanie).

Usuwa cały stan wewnętrzny.

CompleteConfirm

void CompleteConfirm(
  WeaveConnection *aConnection
)

Obsługa potwierdzenia prośby o powiązanie.

Szczegóły
Parametry
[in] aConnection
Wskaźnik aktywnego WeaveConnection do elementu docelowego powiązania.

CompleteConfirm

void CompleteConfirm(
  StatusReport & aReport
)

Obsługa nieudanego żądania powiązania.

Szczegóły
Parametry
[in] aReport
Odwołanie do obiektu StatusReport opisującego błąd.

CompleteConfirm

void CompleteConfirm(
  void
)

Obsługa potwierdzenia prośby o powiązanie.

CompleteRequest

WEAVE_ERROR CompleteRequest(
  ProtocolEngine *aEngine
)

Poproś o zakończenie powiązania.

Utworzenie powiązania jest przynajmniej w przypadku powiązań wymagających TCP, które są wykonywane w odniesieniu do określonego obiektu ProtocolEngine, który zapewnia dostęp do instancji ExchangeManager.

Szczegóły
Parametry
[in] aEngine
Wskaźnik do obiektu ProtocolEngine, w imieniu którego wykonywane jest uzupełnianie.
Zwracane wartości
WEAVE_NO_ERROR
Powodzenie.
WEAVE_ERROR_INCORRECT_STATE
jeśli powiązanie jest już realizowane.
WEAVE_ERROR_NO_MEMORY
Jeśli wymagane jest połączenie, ale żadne nie jest dostępne
Zwroty
W przeciwnym razie podczas próby nawiązania połączenia wystąpił błąd WEAVE_ERROR.

Connect

WEAVE_ERROR Connect(
  WeaveConnection *aConnection
)

Wykonaj powiązanie TCP, podając ukończone połączenie.

Nie można używać nowo zainicjowanego powiązania TCP, dopóki nie zostanie ukończone. Normalnie jest to realizowane na żądanie, gdy aplikacja próbuje użyć powiązania do wysłania wiadomości, ale może też zostać wykonane bezpośrednio przez połączenie Weave.

Szczegóły
Parametry
[in] aConnection
Wskaźnik do obiektu WeaveConnection używany do ukończenia powiązania.
Zwracane wartości
WEAVE_NO_ERROR
Powodzenie.
WEAVE_ERROR_INCORRECT_STATE
Jeśli powiązanie ma już połączenie.
WEAVE_ERROR_INVALID_ARGUMENT
Jeśli połączenie ma wartość NULL.

Zakończ

void Finalize(
  void
)

„Nie ukończono” i uwolnienie go.

Powiązania mogą mieć stan, który wymaga wyczyszczenia, np. zamknięcia połączenia, które jest obsługiwane przez metodę Uncomplete() oprócz stanu, który jest po prostu odczytywany do stanu początkowego przez metodę Free(). Ta metoda, przede wszystkim dla wygody, wywołuje obie.

Zobacz też:
Zakończ(WEAVE_ERROR)

Zakończ

void Finalize(
  WEAVE_ERROR aErr
)

„Nie ukończono” i uwolnienie go.

Powiązania mogą mieć stan, który wymaga wyczyszczenia, np. zamknięcia połączenia, które jest obsługiwane przez metodę Uncomplete() oprócz stanu, który jest po prostu odczytywany do stanu początkowego przez metodę Free(). Ta metoda, przede wszystkim dla wygody, wywołuje obie.

Szczegóły
Parametry
[in] aErr
Ten kod błędu wskazuje przyczynę tego żądania. Jeśli nie jest to błąd WEAVE_NO_ERROR, połączenie TCP mogło zostać przerwane.
Zobacz też:
Zakończ(void)

Bezpłatnie

void Free(
  void
)

Wyczyść stan powiązania.

Bezwarunkowo przywróć wszystkie elementy powiązania do pierwotnego stanu.

GetExchangeCtx

ExchangeContext * GetExchangeCtx(
  WeaveExchangeManager *aExchangeMgr,
  void *aAppState
)

Utwórz obiekt ExchangeContext na podstawie obiektu Binding.

Szczegóły
Parametry
[in] aExchangeMgr
Wskaźnik do menedżera giełdy, z którego można poprosić o kontekst.
[in] aAppState
Nieważny wskaźnik do obiektu stanu aplikacji, który ma być przechowywany w kontekście wymiany do późniejszego użycia.
Zwroty
wskaźnik do obiektu ExchangeContext lub wartość NULL w przypadku błędu.

IncompleteIndication

void IncompleteIndication(
  StatusReport & aReport
)

radzić sobie z niepowodzeniem powiązania.

Ta metoda jest wywoływana i z kolei wywołuje moduły obsługi wyższej warstwy, gdy powiązanie nie powiedzie się PO zakończeniu, czyli po wywołaniu funkcji CompleteConfirm() ze stanem wskazującym powodzenie.

Szczegóły
Parametry
[in] aReport
Odwołanie do raportu StatusReport z opisem tego, co poszło nie tak.
Zobacz też:
CompleteConfirm(StatusReport &amp;aReport).

Init

WEAVE_ERROR Init(
  const uint64_t & aPeerNodeId
)

Zainicjuj Wiązanie tylko przy użyciu identyfikatora węzła.

Powoduje to powiązanie ze skonfigurowanym transportem domyślnym.

Szczegóły
Parametry
[in] aPeerNodeId
Odwołanie do 64-bitowego identyfikatora celu powiązania.
Zwracane wartości
WEAVE_NO_ERROR
Powodzenie.
WEAVE_ERROR_INVALID_ARGUMENT
Jeśli powiązanie jest niedostatecznie określone.

Init

WEAVE_ERROR Init(
  const uint64_t & aPeerNodeId,
  uint8_t aTransport
)

Zainicjuj obiekt Binding na podstawie identyfikatora peera i transportu.

Szczegóły
Parametry
[in] aPeerNodeId
Odwołanie do 64-bitowego identyfikatora węzła docelowego powiązania.
[in] aTransport
Specyfikacja transportu z WeaveTransportOption.
Zwracane wartości
WEAVE_NO_ERROR
Powodzenie.
WEAVE_ERROR_INVALID_ARGUMENT
Jeśli powiązanie jest niedostatecznie określone.

Init

WEAVE_ERROR Init(
  const uint64_t & aServiceEpt,
  WeaveServiceManager *aServiceMgr,
  WeaveAuthMode aAuthMode
)

Zainicjuj obiekt Binding z punktem końcowym usługi.

W ten sposób możesz utworzyć powiązanie z określonym punktem końcowym w usłudze Nest. Powiązanie tego rodzaju wymaga wieloetapowego procesu uzupełniania, który może obejmować wypełnienie lub zaktualizowanie pamięci podręcznej lokalnego katalogu usług. W większości ta procedura jest niewidoczna w aplikacji, ale oznacza, że błędy pojawiające się na późniejszym etapie procesu mogą zostać dostarczone, zazwyczaj za pomocą odpowiedniego „potwierdzenia”. wywołanie zwrotne – po – czasami długo po tym – pierwotnym żądaniu użycia (i uzupełnienia) powiązania.

Szczegóły
Parametry
[in] aServiceEpt
Odwołanie do 64-bitowego identyfikatora interesującego Cię punktu końcowego usługi Weave.
[in] aServiceMgr
Wskaźnik do instancji menedżera usług, która ma być używana do wyszukiwania typu usług i nawiązywania z nią połączenia.
[in] aAuthMode
Tryb uwierzytelniania używany przy nawiązywaniu połączeń.
Zwracane wartości
WEAVE_NO_ERROR
Powodzenie.
WEAVE_ERROR_INVALID_ARGUMENT
Jeśli powiązanie jest niedostatecznie określone.

Init

WEAVE_ERROR Init(
  WeaveConnection *aConnection
)

Zainicjuj obiekt Binding za pomocą WeaveConnection.

Szczegóły
Parametry
[in] aConnection
Wskaźnik do obiektu WeaveConnection, który ma być podstawą powiązania.
Zwracane wartości
WEAVE_NO_ERROR
Powodzenie.
WEAVE_ERROR_INVALID_ARGUMENT
Jeśli powiązanie jest niedostatecznie określone.

IsComplete

bool IsComplete(
  void
)

Sprawdź, czy powiązanie zostało zakończone.

Szczegóły
Zwroty
true (prawda), jeśli jest kompletna, lub false (fałsz).
Zobacz też:
CompleteRequest(ProtocolEngine *aEngine)

IsFree

bool IsFree(
  void
)

Sprawdzanie, czy powiązanie jest bezpłatne, jest bezpłatne.

„Bezpłatne” w tym kontekście oznacza po prostu „ma zdefiniowany węzeł równorzędny ID”. IsFree() should be thought of as meaning &quot;has had Free() i nie jest używany od tego czasu”.

Szczegóły
Zwroty
true (prawda), jeśli powiązanie jest bezpłatne. W przeciwnym razie ma wartość false (fałsz).

UncompleteRequest

void UncompleteRequest(
  void
)

Powoduje, że powiązanie jest niekompletne.

Zasadniczo wiązanie jest „niekompletne” po wywołaniu tej metody, ale, bardziej subtelnie, do każdego istotnego stanu, którego nie ma w samym powiązaniu, np. połączenia TCP. Trzeba też wyczyścić. W ramach czyszczenia po wystąpieniu błędu aplikacje mogą rozważyć wywołanie UncompleteRequest().

Zobacz też:
UncompleteRequest(WEAVE_ERROR )

UncompleteRequest

void UncompleteRequest(
  WEAVE_ERROR aErr
)

Powoduje, że powiązanie jest niekompletne.

Zasadniczo wiązanie jest „niekompletne” po wywołaniu tej metody, ale, bardziej subtelnie, do każdego istotnego stanu, którego nie ma w samym powiązaniu, np. połączenia TCP. Trzeba też wyczyścić. W ramach czyszczenia po wystąpieniu błędu aplikacje mogą rozważyć wywołanie UncompleteRequest().

Szczegóły
Parametry
[in] aErr
W przypadku wartości innej niż WEAVE_NO_ERROR istniejące połączenie (jeśli takie istnieje) zostanie przerwane i nie zostanie płynnie zamknięte.
Zobacz też:
UncompleteRequest(void)

~Wiązanie

virtual  ~Binding(
  void
)

Destruktor obiektów Binding (Wiązanie).

Usuwa wszystkie informacje o stanie wewnętrznym ORAZ w razie potrzeby zamyka otwarte połączenia.