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{
|
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 |
|
CompleteConfirm
void CompleteConfirm( StatusReport & aReport )
Obsługa nieudanego żądania powiązania.
Szczegóły | |||
---|---|---|---|
Parametry |
|
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 |
|
||||||
Zwracane wartości |
|
||||||
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 |
|
||||||
Zwracane wartości |
|
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 |
|
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 |
|
||||
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 |
|
CompleteConfirm(StatusReport &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 |
|
||||
Zwracane wartości |
|
Init
WEAVE_ERROR Init( const uint64_t & aPeerNodeId, uint8_t aTransport )
Zainicjuj obiekt Binding na podstawie identyfikatora peera i transportu.
Szczegóły | |||||
---|---|---|---|---|---|
Parametry |
|
||||
Zwracane wartości |
|
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 |
|
||||||
Zwracane wartości |
|
Init
WEAVE_ERROR Init( WeaveConnection *aConnection )
Zainicjuj obiekt Binding za pomocą WeaveConnection.
Szczegóły | |||||
---|---|---|---|---|---|
Parametry |
|
||||
Zwracane wartości |
|
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).
|
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 "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 |
|
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.