nl:: Weave:: Profiles:: ServiceDirectory:: WeaveServiceManager
#include <src/lib/profiles/service-directory/ServiceDirectory.h>
Obiekt menedżera katalogu usług Weave.
Podsumowanie
Menedżer usługi Weave to główny interfejs aplikacji do usługi katalogowej. W ten sposób ukrywa komplikacje związane z wyszukiwaniem wpisu w katalogu powiązanym z punktem końcowym usługi, wyszukiwaniem DNS co najmniej jednej znalezionej nazwy hosta, próbami nawiązania połączenia, zabezpieczeniem połączenia itd. Może też zarządzać pamięcią podręczną informacji z katalogu usług.
Konstruktorzy i niszczyciele |
|
---|---|
WeaveServiceManager(void)
Ta metoda inicjuje instancję WeaveServiceManager.
|
|
~WeaveServiceManager(void)
Ta metoda niszczy instancję WeaveServiceManager.
|
Typy publiczne |
|
---|---|
@303{
|
enum | typ wyliczeniowy |
OnConnectBegin)(struct ServiceConnectBeginArgs &args)
|
nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager::OnConnectBeginvoid(*
Wywołanie zwrotne aplikacji wykonane bezpośrednio przed nawiązaniem połączenia. |
OnServiceEndpointQueryBegin)(void)
|
nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager::OnServiceEndpointQueryBeginvoid(*
Wywołanie zwrotne aplikacji w celu oznaczenia godziny zapytania wychodzącego katalogu usług. |
OnServiceEndpointQueryEndWithTimeInfo)(uint64_t timeQueryReceiptMsec, uint32_t timeProcessMsec)
|
nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager::OnServiceEndpointQueryEndWithTimeInfovoid(*
Wywołanie zwrotne aplikacji w celu dostarczenia wartości czasu z odpowiedzi z katalogu usług. |
RootDirectoryAccessor)(uint8_t *aDirectory, uint16_t aLength)
|
nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager::RootDirectoryAccessor Funkcja akcesora informująca o katalogu głównym. |
StatusHandler)(void *anAppState, WEAVE_ERROR anError, StatusReport *aStatusReport)
|
nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager::StatusHandlervoid(*
Moduł obsługi warunków błędów i stanu. |
Funkcje publiczne |
|
---|---|
SetConnectBeginCallback(OnConnectBegin aConnectBegin)
|
void
Ustaw funkcję wywołania zwrotnego, która będzie wywoływana bezpośrednio przed nawiązaniem połączenia.
|
cancel(uint64_t aServiceEp, void *aAppState)
|
void
Ta metoda anuluje żądanie połączenia.
|
clearCache(void)
|
void
Ta metoda czyści stan i pamięć podręczną menedżera, jeśli stan jest w stanie terminala kServiceMgrState_resolved, co oznacza, że odebrano odpowiedź z punktu końcowego usługi Service Directory.
|
connect(uint64_t aServiceEp, WeaveAuthMode aAuthMode, void *aAppState, StatusHandler aStatusHandler, WeaveConnection::ConnectionCompleteFunct aConnectionCompleteHandler, const uint32_t aConnectTimeoutMsecs, const InterfaceId aConnectIntf)
|
Ta metoda żąda połączenia z usługą Weave.
|
init(WeaveExchangeManager *aExchangeMgr, uint8_t *aCache, uint16_t aCacheLen, RootDirectoryAccessor aAccessor, WeaveAuthMode aDirAuthMode, OnServiceEndpointQueryBegin aServiceEndpointQueryBegin, OnServiceEndpointQueryEndWithTimeInfo aServiceEndpointQueryEndWithTimeInfo, OnConnectBegin aConnectBegin)
|
Ta metoda inicjuje obiekt menedżera usługi.
|
lookup(uint64_t aServiceEp, HostPortList *outHostPortList)
|
Ta metoda wyszukuje informacje w katalogu dla punktu końcowego usługi.
|
lookup(uint64_t aServiceEp, uint8_t *aControlByte, uint8_t **aDirectoryEntry)
|
Ta metoda wyszukuje informacje w katalogu dla punktu końcowego usługi.
|
onConnectionClosed(WEAVE_ERROR aError)
|
void
Ta metoda obsługuje zdarzenie zamknięcia połączenia zgłoszone przez powiązany kontekst giełdy Weave.
|
onConnectionComplete(WEAVE_ERROR aError)
|
void
Ta metoda obsługuje zdarzenie zakończenia połączenia na potrzeby transakcji zapytania do punktu końcowego usługi.
|
onResponseReceived(uint32_t aProfileId, uint8_t aMsgType, PacketBuffer *aMsg)
|
void
Ta metoda obsługuje każdą wiadomość z odpowiedzią w rozmowie z usługą katalogową.
|
onResponseTimeout(void)
|
void
Ta metoda obsługuje zdarzenie przekroczenia limitu czasu, w przypadku którego nie otrzymano odpowiedzi z usługi katalogowej.
|
relocate(WEAVE_ERROR aError)
|
void
Ta metoda relokuje pamięć podręczną katalogu usług.
|
relocate(void)
|
void
Ta metoda relokuje pamięć podręczną katalogu usług.
|
replaceOrAddCacheEntry(uint16_t port, const char *hostName, uint8_t hostLen, uint64_t serviceEndpointId)
|
Dodaj na początku listy katalogów wpis w katalogu zastępującym zawierający nazwę hosta i identyfikator portu.
|
reset(WEAVE_ERROR aError)
|
void
Ta metoda resetuje menedżera usługi do stanu początkowego.
|
reset(void)
|
void
Ta metoda resetuje menedżera usługi do stanu początkowego.
|
unresolve(WEAVE_ERROR aError)
|
void
Ta metoda unieważnia pamięć podręczną katalogu usług.
|
unresolve(void)
|
void
Ta metoda unieważnia pamięć podręczną katalogu usług.
|
Zajęcia |
|
---|---|
nl:: |
Ta klasa reprezentuje jedną transakcję zarządzaną przez menedżera usługi. |
Typy publiczne
@303
@303
Właściwości | |
---|---|
kWeave_DefaultSendTimeout
|
Liczba milisekund, na jaką należy odebrać odpowiedź na zapytanie katalogowe, zanim minie limit czasu kontekstu giełdy. |
OnConnectBegin
void(* OnConnectBegin)(struct ServiceConnectBeginArgs &args)
Wywołanie zwrotne aplikacji wykonane bezpośrednio przed nawiązaniem połączenia.
Tego wywołania zwrotnego mogą używać aplikacje do obserwowania i opcjonalnie zmieniania argumentów przekazywanych do #WeaveConnection::Connect() podczas nawiązywania połączenia z usługą. To wywołanie zwrotne będzie wywoływane zarówno w przypadku połączenia z docelowym punktem końcowym usługi, jak i połączenia z punktem końcowym usługi Service Directory w przypadku konieczności przeszukiwania katalogu.
OnServiceEndpointQueryBegin
void(* OnServiceEndpointQueryBegin)(void)
Wywołanie zwrotne aplikacji w celu oznaczenia godziny zapytania wychodzącego katalogu usług.
Jest ono wywoływane, gdy mamy wysłać żądanie zapytania punktu końcowego usługi. Jest używana do dopasowania do OnServiceEndpointQueryEnd w celu skompensowania czasu wyświetlania wiadomości.
OnServiceEndpointQueryEndWithTimeInfo
void(* OnServiceEndpointQueryEndWithTimeInfo)(uint64_t timeQueryReceiptMsec, uint32_t timeProcessMsec)
Wywołanie zwrotne aplikacji w celu dostarczenia wartości czasu z odpowiedzi z katalogu usług.
Jest ono wywoływane, gdy otrzymamy informacje o czasie z odpowiedzi na zapytanie katalogu usług. Pamiętaj, że wywołanie zwrotne ma miejsce tylko wtedy, gdy odpowiedź zostanie poprawnie przeanalizowana i dołącz informacje o czasie.
Szczegóły | |||||
---|---|---|---|---|---|
Parametry |
|
RootDirectoryAccessor
WEAVE_ERROR(* RootDirectoryAccessor)(uint8_t *aDirectory, uint16_t aLength)
Funkcja akcesora informująca o katalogu głównym.
Od czegoś trzeba zacząć, a katalog usług musi zaczynać się od katalogu krótkoterminowego zawierającego adres serwera, do którego można uzyskać dostęp w pozostałych przypadkach. Rozmieszczenie i pochodzenie tych informacji może się różnić w zależności od urządzenia, dlatego udostępniamy tutaj wywołanie zwrotne akcesora.
Szczegóły | |||||
---|---|---|---|---|---|
Parametry |
|
||||
Zwroty |
WEAVE_NO_ERROR w przypadku powodzenia. W przeciwnym razie proces ładowania zostanie przerwany.
|
StatusHandler
void(* StatusHandler)(void *anAppState, WEAVE_ERROR anError, StatusReport *aStatusReport)
Moduł obsługi warunków błędów i stanu.
Użytkownik menedżera usługi może zostać poinformowany o problemach podczas próby wykonania żądania połączenia na jeden z dwóch sposobów. Może otrzymać raport o stanie z usługi lub może otrzymać wewnętrznie wygenerowany błąd WEAVE_ERROR. W obu przypadkach informacje pochodzą z wywołania zwrotnego.
Szczegóły | |||||||
---|---|---|---|---|---|---|---|
Parametry |
|
Funkcje publiczne
SetConnectBeginCallback
void SetConnectBeginCallback( OnConnectBegin aConnectBegin )
Ustaw funkcję wywołania zwrotnego, która będzie wywoływana bezpośrednio przed nawiązaniem połączenia.
Szczegóły | |||
---|---|---|---|
Parametry |
|
WeaveServiceManager
WeaveServiceManager( void )
Ta metoda inicjuje instancję WeaveServiceManager.
Pamiętaj, że do dalszej zainicjowania tej instancji należy wywołać metodę init().
anuluj
void cancel( uint64_t aServiceEp, void *aAppState )
Ta metoda anuluje żądanie połączenia.
Ta metoda anuluje żądanie połączenia z uwzględnieniem identyfikatora punktu końcowego usługi i obiektu stanu aplikacji przekazanego w czasie żądania jako identyfikatorów. Jeśli jest to ostatnie żądanie połączenia, ta metoda usuwa też wszystkie oczekujące połączenia z katalogiem usług.
Szczegóły | |||||
---|---|---|---|---|---|
Parametry |
|
clearCache
void clearCache( void )
Ta metoda czyści stan i pamięć podręczną menedżera, jeśli stan jest w stanie terminala kServiceMgrState_resolved, co oznacza, że odebrano odpowiedź z punktu końcowego usługi Service Directory.
bądź w kontakcie
WEAVE_ERROR connect( uint64_t aServiceEp, WeaveAuthMode aAuthMode, void *aAppState, StatusHandler aStatusHandler, WeaveConnection::ConnectionCompleteFunct aConnectionCompleteHandler, const uint32_t aConnectTimeoutMsecs, const InterfaceId aConnectIntf )
Ta metoda żąda połączenia z usługą Weave.
To jest połączenie najwyższego poziomu. Zasadniczo tworzy to bezpieczne połączenie z usługą Weave z określonym punktem końcowym usługi i trybem uwierzytelniania.
Tę metodę można wywołać dopiero po pomyślnym wywołaniu funkcji init(), a żądanie połączenia można potencjalnie anulować przez funkcję cancel().
Tę metodę można wywołać, zanim lokalna pamięć podręczna zostanie zapełniona danymi z domyślnie udostępnionych danych lub podróży do usługi katalogowej. Menedżer usług po prostu ustawi żądanie w kolejce, zanim będzie można określić zawartość pamięci podręcznej.
Szczegóły | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Parametry |
|
||||||||||||||
Zwroty |
WEAVE_NO_ERROR w przypadku powodzenia. W przeciwnym razie wyświetla się odpowiedni kod błędu.
|
init
WEAVE_ERROR init( WeaveExchangeManager *aExchangeMgr, uint8_t *aCache, uint16_t aCacheLen, RootDirectoryAccessor aAccessor, WeaveAuthMode aDirAuthMode, OnServiceEndpointQueryBegin aServiceEndpointQueryBegin, OnServiceEndpointQueryEndWithTimeInfo aServiceEndpointQueryEndWithTimeInfo, OnConnectBegin aConnectBegin )
Ta metoda inicjuje obiekt menedżera usługi.
Aby można było użyć obiektu menedżera usługi, musi on zostać zainicjowany. Po udanym wywołaniu tej metody klienci mogą zacząć wywoływać metody connect(), lookup() i inne.
Szczegóły | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Parametry |
|
||||||||||||||||
Zwroty |
WEAVE_ERROR_INVALID_ARGUMENT, jeśli argument funkcji jest nieprawidłowy. W przeciwnym razie WEAVE_NO_ERROR.
|
wyszukiwanie
WEAVE_ERROR lookup( uint64_t aServiceEp, HostPortList *outHostPortList )
Ta metoda wyszukuje informacje w katalogu dla punktu końcowego usługi.
Jeśli katalog usług został rozpoznany, tj. jeśli operacja connect() zakończyła się powodzeniem, ta metoda uzupełni podany obiekt HostPortList.
Uwaga: kolumna HostPortList jest powiązana z obiektem WeaveServiceManager i pozostanie ważna do momentu wyczyszczenia pamięci podręcznej katalogu usług lub ponownego wyszukiwania katalogu usług.
Szczegóły | |||||||
---|---|---|---|---|---|---|---|
Parametry |
|
||||||
Zwracane wartości |
|
wyszukiwanie
WEAVE_ERROR lookup( uint64_t aServiceEp, uint8_t *aControlByte, uint8_t **aDirectoryEntry )
Ta metoda wyszukuje informacje w katalogu dla punktu końcowego usługi.
Jeśli katalog usług został rozpoznany, tj. jeśli operacja connect() się powiodła, metoda ta zwróci wpis katalogu z identyfikatorem punktu końcowego usługi.
Ta metoda ujawnia szczegóły wewnętrznej implementacji katalogu usług. implementacje powinny zdecydowanie preferować korzystanie z jej wariantu, który generuje kolumnę HostPortList.
Szczegóły | |||||||
---|---|---|---|---|---|---|---|
Parametry |
|
||||||
Zwracane wartości |
|
onConnectionClosed
void onConnectionClosed( WEAVE_ERROR aError )
Ta metoda obsługuje zdarzenie zamknięcia połączenia zgłoszone przez powiązany kontekst giełdy Weave.
Szczegóły | |||
---|---|---|---|
Parametry |
|
onConnectionComplete
void onConnectionComplete( WEAVE_ERROR aError )
Ta metoda obsługuje zdarzenie zakończenia połączenia na potrzeby transakcji zapytania do punktu końcowego usługi.
Jest kilka możliwości. Po pierwsze, mogło się nie udać nawiązać połączenia. W takim przypadku zamknęliśmy go. W przeciwnym razie połączenie jest już gotowe, a my chcemy otworzyć kontekst wymiany i wysłać zapytanie do katalogu.
Szczegóły | |||
---|---|---|---|
Parametry |
|
onResponseReceived
void onResponseReceived( uint32_t aProfileId, uint8_t aMsgType, PacketBuffer *aMsg )
Ta metoda obsługuje każdą wiadomość z odpowiedzią w rozmowie z usługą katalogową.
Szczegóły | |||||||
---|---|---|---|---|---|---|---|
Parametry |
|
onResponseTimeout
void onResponseTimeout( void )
Ta metoda obsługuje zdarzenie przekroczenia limitu czasu, w przypadku którego nie otrzymano odpowiedzi z usługi katalogowej.
przenieś
void relocate( WEAVE_ERROR aError )
Ta metoda relokuje pamięć podręczną katalogu usług.
Gdy punkt końcowy usługi zwraca raport o stanie z kodem stanu kStatus_Reloc, aplikacja może wywołać metodę unresolve(), aby wyczyścić pamięć podręczną i anulować żądania połączenia. Upraszcza ona obsługę błędów przez wywołanie funkcji unresolve() za pierwszym razem oraz reset(), jeśli problem nie został jeszcze rozwiązany.
Ta wersja metody, dostępna na potrzeby zgodności wstecznej, rejestruje i rejestruje błąd, a potem wywołuje metodę relocate(void) .
Szczegóły | |||
---|---|---|---|
Parametry |
|
relocate(void)
przenieś
void relocate( void )
Ta metoda relokuje pamięć podręczną katalogu usług.
Gdy punkt końcowy usługi zwraca raport o stanie z kodem stanu kStatus_Reloc, aplikacja może wywołać metodę unresolve(), aby wyczyścić pamięć podręczną i anulować żądania połączenia. Upraszcza ona obsługę błędów przez wywołanie funkcji unresolve() za pierwszym razem oraz reset(), jeśli problem nie został jeszcze rozwiązany.
Zobacz też:relokate(WEAVE_ERROR)
replaceOrAddCacheEntry
WEAVE_ERROR replaceOrAddCacheEntry( uint16_t port, const char *hostName, uint8_t hostLen, uint64_t serviceEndpointId )
Dodaj na początku listy katalogów wpis w katalogu zastępującym zawierający nazwę hosta i identyfikator portu.
zresetuj
void reset( WEAVE_ERROR aError )
Ta metoda resetuje menedżera usługi do stanu początkowego.
Ta metoda resetuje wszystkie stany menedżera usług, w tym stan komunikacji, stan pamięci podręcznej i stan wszystkich oczekujących żądań połączenia.
Ta wersja metody, dostępna na potrzeby zgodności wstecznej, rejestruje błąd i wywołuje metodę reset(void) .
Szczegóły | |||
---|---|---|---|
Parametry |
|
reset(void)
zresetuj
void reset( void )
Ta metoda resetuje menedżera usługi do stanu początkowego.
Ta metoda resetuje wszystkie stany menedżera usługi, w tym stan komunikacji, stan pamięci podręcznej i stan wszystkich oczekujących żądań połączenia.
Zobacz też:reset(WEAVE_ERROR)
nierozwiązany
void unresolve( WEAVE_ERROR aError )
Ta metoda unieważnia pamięć podręczną katalogu usług.
Ta metoda ustawia stan pamięci podręcznej katalogu usług, aby następnym razem menedżer usługi wysyłał zapytanie do katalogu usług.
Ta wersja metody, dostępna na potrzeby zgodności wstecznej, rejestruje i rejestruje błąd, a potem wywołuje metodę unresolve(void) .
Szczegóły | |||
---|---|---|---|
Parametry |
|
unresolve(void)
nierozwiązany
void unresolve( void )
Ta metoda unieważnia pamięć podręczną katalogu usług.
Ta metoda ustawia stan pamięci podręcznej katalogu usług, aby następnym razem menedżer usługi wysyłał zapytanie do katalogu usług.
Zobacz też:unresolve(WEAVE_ERROR)