nl:: Weave:: Profiles:: ServiceDirectory:: WeaveServiceManager
#include <src/lib/profiles/service-directory/ServiceDirectory.h>
Obiekt menedżera katalogu usługi Weave.
Podsumowanie
Menedżer usługi Weave jest głównym interfejsem aplikacji do usługi katalogowej. W związku z tym ukrywa komplikacje związane z wyszukiwaniem wpisu katalogu powiązanego z punktem końcowym usługi, wyszukiwaniem DNS co najmniej 1 znalezionych w nim nazw hostów, próbami nawiązania połączenia, zabezpieczeniem połączenia itd. Może też zarządzać pamięcią podręczną informacji z katalogu usług.
Konstruktory 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 określające godzinę wychodzącego zapytania do 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 katalogu usług. |
RootDirectoryAccessor)(uint8_t *aDirectory, uint16_t aLength)
|
nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager::RootDirectoryAccessor Funkcja akcesora dla informacji 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 wywołanie zwrotne bezpośrednio przed nawiązaniem połączenia.
|
cancel(uint64_t aServiceEp, void *aAppState)
|
void
Ta metoda anuluje prośbę o połączenie.
|
clearCache(void)
|
void
Ta metoda czyści stan i pamięć podręczną menedżera, jeśli stan to stan terminala kServiceMgrState_resolved, co oznacza, że otrzymano odpowiedź z punktu końcowego Katalogu usług.
|
connect(uint64_t aServiceEp, WeaveAuthMode aAuthMode, void *aAppState, StatusHandler aStatusHandler, WeaveConnection::ConnectionCompleteFunct aConnectionCompleteHandler, const uint32_t aConnectTimeoutMsecs, const InterfaceId aConnectIntf)
|
Żądania tej metody łączą się 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ług.
|
lookup(uint64_t aServiceEp, HostPortList *outHostPortList)
|
Ta metoda wyszukuje informacje o katalogu dla punktu końcowego usługi.
|
lookup(uint64_t aServiceEp, uint8_t *aControlByte, uint8_t **aDirectoryEntry)
|
Ta metoda wyszukuje informacje o katalogu dla punktu końcowego usługi.
|
onConnectionClosed(WEAVE_ERROR aError)
|
void
Ta metoda obsługuje zdarzenie zamknięcia połączenia zgłaszane przez powiązany kontekst wymiany Weave.
|
onConnectionComplete(WEAVE_ERROR aError)
|
void
Ta metoda obsługuje zdarzenie polegające na zakończeniu połączenia dla transakcji zapytania o punkt końcowy usługi.
|
onResponseReceived(uint32_t aProfileId, uint8_t aMsgType, PacketBuffer *aMsg)
|
void
Ta metoda obsługuje wszystkie wiadomości z odpowiedziami w wątku z usługą katalogową.
|
onResponseTimeout(void)
|
void
Ta metoda obsługuje zdarzenie przekroczenia limitu czasu, na które nie odebrano żadnej odpowiedzi z usługi katalogowej.
|
relocate(WEAVE_ERROR aError)
|
void
Ta metoda przenosi pamięć podręczną katalogu usług.
|
relocate(void)
|
void
Ta metoda przenosi pamięć podręczną katalogu usług.
|
replaceOrAddCacheEntry(uint16_t port, const char *hostName, uint8_t hostLen, uint64_t serviceEndpointId)
|
Dodaj nadrzędny wpis katalogu zawierający nazwę hosta i identyfikator portu na początku listy katalogów.
|
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 pojedynczą transakcję zarządzaną przez menedżera usługi. |
Typy publiczne
@303
@303
Właściwości | |
---|---|
kWeave_DefaultSendTimeout
|
Liczba milisekund, jaką musi zostać odebrana odpowiedź na zapytanie katalogu, zanim nastąpi przekroczenie limitu czasu kontekstu giełdy. |
OnConnectBegin
void(* OnConnectBegin)(struct ServiceConnectBeginArgs &args)
Wywołanie zwrotne aplikacji wykonane bezpośrednio przed nawiązaniem połączenia.
Aplikacje mogą używać tego wywołania zwrotnego do obserwowania i opcjonalnie zmiany argumentów przekazywanych do funkcji #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 punktem końcowym usługi docelowej, jak i połączenia z punktem końcowym usługi Service Directory, jeśli wymagane jest wyszukiwanie katalogu.
OnServiceEndpointQueryBegin
void(* OnServiceEndpointQueryBegin)(void)
Wywołanie zwrotne aplikacji określające godzinę wychodzącego zapytania do katalogu usług.
Jest ona wywoływana, gdy mamy wysłać żądanie zapytania do punktu końcowego usługi. Służy do dopasowywania 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 katalogu usług.
Ta funkcja jest wywoływana, gdy otrzymujemy informacje o czasie z odpowiedzi na zapytanie katalogu usług. Wywołanie zwrotne występuje tylko wtedy, gdy odpowiedź została pomyślnie przeanalizowana i zawierają informacje o czasie
Szczegóły | |||||
---|---|---|---|---|---|
Parametry |
|
RootDirectoryAccessor
WEAVE_ERROR(* RootDirectoryAccessor)(uint8_t *aDirectory, uint16_t aLength)
Funkcja akcesora dla informacji o katalogu głównym.
Od czegoś trzeba zacząć od katalogu usług, od katalogu usługi, który zawiera adres serwera, który można otworzyć, aby uzyskać dostęp do całej reszty. Ponieważ dyspozycja i pochodzenie tych informacji może się różnić w zależności od urządzenia, w tym miejscu podajemy wywołanie zwrotne dotyczące dostępu.
Szczegóły | |||||
---|---|---|---|---|---|
Parametry |
|
||||
Zwroty |
WEAVE_NO_ERROR w przypadku powodzenia. W przeciwnym razie wczytywanie zostałoby przerwane.
|
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 z wykonaniem żądania połączenia na jeden z dwóch sposobów. Może otrzymać raport o stanie z usługi lub wygenerowany wewnętrznie komunikat o błędzie WEAVE_ERROR. W obu przypadkach informacje są przekazywane przez to wywołanie zwrotne.
Szczegóły | |||||||
---|---|---|---|---|---|---|---|
Parametry |
|
Funkcje publiczne
SetConnectBeginCallback
void SetConnectBeginCallback( OnConnectBegin aConnectBegin )
Ustaw wywołanie zwrotne bezpośrednio przed nawiązaniem połączenia.
Szczegóły | |||
---|---|---|---|
Parametry |
|
WeaveServiceManager
WeaveServiceManager( void )
Ta metoda inicjuje instancję WeaveServiceManager.
Pamiętaj, że do dalszego zainicjowania tej instancji należy wywołać metodę init().
anuluj
void cancel( uint64_t aServiceEp, void *aAppState )
Ta metoda anuluje prośbę o połączenie.
Ta metoda anuluje żądanie połączenia na podstawie identyfikatora punktu końcowego usługi i obiektu stanu aplikacji przekazanego w momencie żądania jako identyfikatorów. Jeśli jest to ostatnie żądanie połączenia, ta metoda usuwa też oczekujący stan 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 to stan terminala kServiceMgrState_resolved, co oznacza, że otrzymano odpowiedź z punktu końcowego Katalogu usług.
połącz
WEAVE_ERROR connect( uint64_t aServiceEp, WeaveAuthMode aAuthMode, void *aAppState, StatusHandler aStatusHandler, WeaveConnection::ConnectionCompleteFunct aConnectionCompleteHandler, const uint32_t aConnectTimeoutMsecs, const InterfaceId aConnectIntf )
Żądania tej metody łączą się z usługą Weave.
Jest to połączenie najwyższego poziomu. Zasadniczo tworzy bezpieczne połączenie z usługą Weave z uwzględnieniem punktu końcowego usługi i trybu uwierzytelniania albo urządzenie kończy się niepowodzeniem.
Tę metodę można wywołać tylko po udanym wywołaniu init(), a żądanie połączenia można potencjalnie anulować przez funkcję cancel().
Metodę tę można wywołać, zanim lokalna pamięć podręczna zostanie wypełniona danymi z domyślnie udostępnianych danych lub podróży do usługi katalogowej. Menedżer usługi po prostu umieści żądanie w kolejce, zanim będzie można określić zawartość pamięci podręcznej.
Szczegóły | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Parametry |
|
||||||||||||||
Zwroty |
WEAVE_NO_ERROR po powodzeniu. w przeciwnym razie 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ług.
Aby można było używać obiektu, musi być zainicjowany obiekt menedżera usług. Po udanym wywołaniu tej metody klienty 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 o katalogu dla punktu końcowego usługi.
Jeśli katalog usług został już rozwiązany, czyli w przypadku udanej operacji connect(), ta metoda uzupełni podany obiekt HostPortList.
Uwaga: lista HostPortList jest powiązana z obiektem WeaveServiceManager. pozostaje ważny do momentu wyczyszczenia pamięci podręcznej katalogu usług lub innego 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 o katalogu dla punktu końcowego usługi.
Jeśli katalog usługi został rozwiązany, czyli wystąpiła operacja connect(), ta metoda zwróci wpis katalogu z podanym identyfikatorem punktu końcowego usługi.
Ta metoda ujawnia szczegóły wewnętrznej implementacji katalogu usług. W implementacjach zdecydowanie preferujemy użycie wariantu tej metody, który generuje listę HostPortList.
Szczegóły | |||||||
---|---|---|---|---|---|---|---|
Parametry |
|
||||||
Zwracane wartości |
|
onConnectionClosed
void onConnectionClosed( WEAVE_ERROR aError )
Ta metoda obsługuje zdarzenie zamknięcia połączenia zgłaszane przez powiązany kontekst wymiany Weave.
Szczegóły | |||
---|---|---|---|
Parametry |
|
onConnectionComplete
void onConnectionComplete( WEAVE_ERROR aError )
Ta metoda obsługuje zdarzenie polegające na zakończeniu połączenia dla transakcji zapytania o punkt końcowy usługi.
Jest kilka możliwości. Po pierwsze, możliwe, że nie udało się nawiązać połączenia. W takim przypadku zostanie ona zakończona. W przeciwnym razie połączenie jest w rzeczywistości kompletne, więc chcemy otworzyć kontekst giełdy i wysłać zapytanie katalogu.
Szczegóły | |||
---|---|---|---|
Parametry |
|
onResponseReceived
void onResponseReceived( uint32_t aProfileId, uint8_t aMsgType, PacketBuffer *aMsg )
Ta metoda obsługuje wszystkie odpowiedzi w wątku z usługą katalogową.
Szczegóły | |||||||
---|---|---|---|---|---|---|---|
Parametry |
|
onResponseTimeout
void onResponseTimeout( void )
Ta metoda obsługuje zdarzenie przekroczenia limitu czasu, na które nie odebrano żadnej odpowiedzi z usługi katalogowej.
przenieś
void relocate( WEAVE_ERROR aError )
Ta metoda przenosi pamięć podręczną katalogu usług.
Gdy punkt końcowy usługi zwraca raport o stanie z kodem stanu kStatus_Relocated, aplikacja może wywołać metodę unresolve(), by wyczyścić pamięć podręczną i anulować żądania połączenia. Ta metoda upraszcza obsługę błędów przez wywołanie metody unresolve() za pierwszym razem i reset(), jeśli problem nie został jeszcze rozwiązany.
Ta wersja metody, która zapewnia zgodność wsteczną, pobiera i rejestruje błąd, a następnie wywołuje metodę relocate(void) .
Szczegóły | |||
---|---|---|---|
Parametry |
|
relocate(void)
przenieś
void relocate( void )
Ta metoda przenosi pamięć podręczną katalogu usług.
Gdy punkt końcowy usługi zwraca raport o stanie z kodem stanu kStatus_Relocated, aplikacja może wywołać metodę unresolve(), by wyczyścić pamięć podręczną i anulować żądania połączenia. Ta metoda upraszcza obsługę błędów przez wywołanie metody unresolve() za pierwszym razem i reset(), jeśli problem nie został jeszcze rozwiązany.
Zobacz też:przenieś(WEAVE_ERROR)
replaceOrAddCacheEntry
WEAVE_ERROR replaceOrAddCacheEntry( uint16_t port, const char *hostName, uint8_t hostLen, uint64_t serviceEndpointId )
Dodaj nadrzędny wpis katalogu zawierający nazwę hosta i identyfikator portu na początku listy katalogów.
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ługi, w tym stan komunikacji, stan pamięci podręcznej i stan wszystkich oczekujących żądań połączenia.
Ta wersja metody, która zapewnia zgodność wsteczną, pobiera i rejestruje błąd, a następnie 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ązywać
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 tak, aby przy następnym żądaniu menedżer usługi wysłał zapytanie do katalogu usług.
Ta wersja metody, która zapewnia zgodność wsteczną, pobiera i rejestruje błąd, a następnie wywołuje metodę unresolve(void) .
Szczegóły | |||
---|---|---|---|
Parametry |
|
unresolve(void)
nierozwiązywać
void unresolve( void )
Ta metoda unieważnia pamięć podręczną katalogu usług.
Ta metoda ustawia stan pamięci podręcznej katalogu usług tak, aby przy następnym żądaniu menedżer usługi wysłał zapytanie do katalogu usług.
Zobacz też:nierozwiązaj(WEAVE_ERROR)