nl::Weave::Profiles::Time::TimeSyncNode

Podsumowanie

Dziedziczenie

Dziedziczy z: nl::Weave::Profiles::Time::_TimeSyncNodeBase

Konstruktory i niszczyciele

TimeSyncNode(void)
mBootTimeForNextAutoDiscovery_usec
timesync_t
mIsAutoSyncEnabled
bool
stanów używanych w funkcji automatycznej synchronizacji.
mIsUrgentDiscoveryPending
bool
mNominalDiscoveryPeriod_msec
int32_t
mShortestDiscoveryPeriod_msec
int32_t
mSyncPeriod_msec
int32_t
mActiveContact
w kontekście komunikacji.
mExchangeContext
mUnadjTimestampLastSent_usec
timesync_t
EnterState_Discover(void)
void
te funkcje przejścia stanów są wewnętrzne i nie mogą zwracać kodu błędu, ponieważ poprzedni stan nie byłby w stanie ich obsłużyć.
EnterState_ServiceSync_1(void)
void
EnterState_ServiceSync_2(void)
void
EnterState_Sync_1(void)
void
EnterState_Sync_2(void)
void

Typy publiczne

ClientState enum | typ wyliczeniowy
bieżący stan tego klienta synchronizacji czasu
CommState enum | typ wyliczeniowy
stan komunikacji z danym kontaktem.
ContributorFilter)(void *const aApp, Contact aContact[], const int aSize) typedef
void(*
wywołanie zwrotne ma miejsce tuż przed obliczeniem korekty czasu na podstawie odpowiedzi.
OnSyncRequestReceivedHandler)(void *const aApp, const WeaveMessageInfo *aMsgInfo, const uint8_t aLikelyhood, const bool aIsTimeCoordinator) typedef
bool(*
oddzwanianie z informacją, że właśnie otrzymaliśmy żądanie synchronizacji czasu.
ResponseStatus enum | typ wyliczeniowy
stan zapisanej odpowiedzi dla danego kontaktu.
ServerState{
  kServerState_UnreliableAfterBoot,
  kServerState_Idle
}
enum | typ wyliczeniowy
bieżący stan tego serwera synchronizacji czasu
SyncFailedHandler)(void *const aApp, const WEAVE_ERROR aErrorCode) typedef
void(*
wywołanie zwrotne ma miejsce, gdy synchronizacja zostanie uznana za nieudaną, w tym także automatyczna.
SyncSucceededHandler)(void *const aApp, const timesync_t aOffsetUsec, const bool aIsReliable, const bool aIsServer, const uint8_t aNumContributor) typedef
bool(*
wywołanie zwrotne ma miejsce po uznaniu synchronizacji za pomyślną (w tym automatycznej synchronizacji), ale przed zastosowaniem wyniku.
TimeChangeNotificationHandler)(void *const aApp, const uint64_t aNodeId, const IPAddress &aNodeAddr) typedef
void(*
oddzwanianie, by poinformować, że właśnie otrzymaliśmy powiadomienie o zmianie czasu.

Atrybuty publiczne

FilterTimeCorrectionContributor
OnSyncFailed
OnSyncRequestReceived
jeśli nie zostanie ustawiona, implementacja domyślna zawsze zwraca wartość „true” (prawda)
OnSyncSucceeded
Jeśli zasada nie jest skonfigurowana, domyślnym działaniem jest przyjmowanie wszystkich wyników z wyjątkiem bardzo małych poprawek serwera
OnTimeChangeNotificationReceived
mEncryptionType
uint8_t
metoda szyfrowania na potrzeby komunikacji lokalnej
mKeyId
uint16_t
identyfikator klucza używany do komunikacji lokalnej

Atrybuty chronione

mApp
void *
wskaźnik do danych z wyższej warstwy
mClientState
mConnectionToService
Połączenie TCP używane do komunikacji z usługą.
mContacts[WEAVE_CONFIG_TIME_CLIENT_MAX_NUM_CONTACTS]
Informacje kontaktowe uzyskane w trakcie odkrywania treści.
mIsAlwaysFresh
bool
mIsInCallback
bool
true (prawda), jeśli mamy wywołanie zwrotne do wyższej warstwy
mLastLikelihoodSent
int8_t
mNumContributorInLastLocalSync
uint8_t
mRole
TimeSyncRole
Rzeczywista rola tego węzła.
mServerState
mServiceContact
mTimestampLastCorrectionFromServerOrNtp_usec
timesync_t
Pamiętaj, że musi to być czas uruchamiania, ponieważ potrzebujemy wynagrodzenia za czas snu.
mTimestampLastLocalSync_usec
timesync_t
Pamiętaj, że musi to być czas uruchamiania, ponieważ potrzebujemy wynagrodzenia za czas snu.

Funkcje publiczne

Abort(void)
zmuszanie silnika do powrotu do stanu bezczynności, co spowoduje przerwanie jego działania.
DisableAutoSync(void)
void
wyłącz automatyczną synchronizację.
EnableAutoSync(const int32_t aSyncPeriod_msec, const int32_t aNominalDiscoveryPeriod_msec, const int32_t aShortestDiscoveryPeriod_msec)
włącz automatyczną synchronizację.
GetCapacityOfContactList(void) const
int
proste metody pobierania dla maksymalnej liczby kontaktów skonfigurowanych do przechowywania w tym mechanizmie
GetClientState(void) const
proste pobieranie dla stanu klienta
GetNextLikelihood(void) const
int8_t
i wyodrębnij prawdopodobieństwo trwałego.
GetServerState(void) const
proste pobieranie dla stanu serwera
InitClient(void *const aApp, WeaveExchangeManager *aExchangeMgr, const uint8_t aEncryptionType, const uint16_t aKeyId, const int8_t aInitialLikelyhood)
zainicjuj tego klienta.
InitCoordinator(nl::Weave::WeaveExchangeManager *aExchangeMgr, const uint8_t aEncryptionType, const uint16_t aKeyId, const int32_t aSyncPeriod_msec, const int32_t aNominalDiscoveryPeriod_msec, const int32_t aShortestDiscoveryPeriod_msec)
zainicjować tego koordynatora.
InitServer(void *const aApp, WeaveExchangeManager *const aExchangeMgr, const bool aIsAlwaysFresh)
inicjowanie dla roli serwera musi być wywoływane jako pierwsza funkcja po stworzeniu obiektu, jeśli intencją ma być serwer synchronizacji czasu.
MulticastTimeChangeNotification(const uint8_t aEncryptionType, const uint16_t aKeyId) const
void
Wywoływana przez powiadomienia wyższej warstwy o zmianie czasu transmisji grupowej.
RegisterCorrectionFromServerOrNtp(void)
void
Wywoływana przez wyższą warstwę, aby wskazać, że właśnie zakończyliśmy rundę synchronizacji czasu z dowolnym serwerem lub za pomocą pewnego niezawodnego sposobu, takiego jak NTP.
RegisterLocalSyncOperation(const uint8_t aNumContributor)
void
Wywoływana przez wyższą warstwę, aby wskazać, że właśnie zakończyliśmy rundę czasową synchronizacji z innymi lokalnymi koordynatorami.
Shutdown(void)
zatrzymuje usługę niezależnie od pełnionej roli.
Sync(const bool aForceDiscoverAgain)
synchronizować z istniejącymi kontaktami.
SyncWithNodes(const int16_t aNumNode, const ServingNode aNodes[])
zsynchronizować przy użyciu podanej listy kontaktów.
SyncWithService(WeaveConnection *const aConnection)
synchronizację przy użyciu danego połączenia TCP oraz powiązanego szyfrowania i identyfikatora klucza.

Funkcje chronione

AbortOnError(const WEAVE_ERROR aCode)
void
wewnętrzne przerwanie, jeśli aCode nie ma WEAVE_NO_ERROR
AutoSyncNow(void)
void
wewnętrzna funkcja rozpoczynania sesji automatycznej synchronizacji
CallbackForSyncCompletion(const bool aIsSuccessful, bool aShouldUpdate, const bool aIsCorrectionReliable, const bool aIsFromServer, const uint8_t aNumContributor, const timesync_t aSystemTimestamp_usec, const timesync_t aDiffTime_usec)
wywołanie zwrotne do warstwy aplikacji.
ClearState(void)
void
DestroyCommContext(void)
bool
zamknij okno Weave ExchangeContext.
EndLocalSyncAndTryCalculateTimeFix(void)
void
EndServiceSyncAndTryCalculateTimeFix(void)
void
FindReplaceableContact(const uint64_t aNodeId, const IPAddress & aNodeAddr, bool aIsTimeChangeNotification)
zwrócić przedział do przechowywania informacji kontaktowych;
GetClientStateName(void) const
const char *const
GetNextIdleContact(void)
uzyskaj następny ważny i nieaktywny kontakt, z którym możesz porozmawiać
GetNumNotYetCompletedContacts(void)
int16_t
podaj liczbę prawidłowych kontaktów, ale jeszcze z nimi nie rozmawialiśmy.
GetNumReliableResponses(void)
int16_t
sprawdź liczbę „wiarygodnych” zebranych do tej pory odpowiedzi.
InitState(const TimeSyncRole aRole, void *const aApp, WeaveExchangeManager *const aExchangeMgr)
InvalidateAllContacts(void)
void
unieważnij wszystkie kontakty lokalne
InvalidateServiceContact(void)
void
unieważni kontakt z usługą
RegisterCommError(Contact *const aContact)
void
Rejestrowanie błędów komunikacji w przypadku określonego kontaktu i w razie potrzeby skrócenie okresu automatycznego wykrywania może mieć wartość NULL, co oznacza, że nie mamy z kim rozmawiać, i dlatego skróć okres automatycznego wykrywania.
SendSyncRequest(bool *const rIsMessageSent, Contact *const aContact)
wyślij do kontaktu żądanie synchronizacji zbiorczej.
SetAllCompletedContactsToIdle(void)
int16_t
resetuje wszystkie zakończone kontakty do stanu bezczynności, ale nie dotykaj odpowiedzi.
SetAllValidContactsToIdleAndInvalidateResponse(void)
int16_t
ustawić wszystkie prawidłowe kontakty lokalne w stan nieaktywny i usunąć odpowiedź.
SetClientState(const ClientState state)
void
SetupUnicastCommContext(Contact *const aContact)
utwórz nową giełdę Weave Exchange do komunikacji pojedynczej
StoreNotifyingContact(const uint64_t aNodeId, const IPAddress & aNodeAddr)
void
przechowywać informacje kontaktowe węzła, który właśnie wysłał nam powiadomienie o zmianie czasu
UpdateMulticastSyncResponse(const uint64_t aNodeId, const IPAddress & aNodeAddr, const TimeSyncResponse & aResponse)
void
przetwarza odpowiedź zwrotną z żądania multicast
UpdateUnicastSyncResponse(const TimeSyncResponse & aResponse)
void
przetwarza odpowiedź zwrotną z żądania zbiorczego
_InitClient(const uint8_t aEncryptionType, const uint16_t aKeyId, const int8_t aInitialLikelyhood)
dla roli Klient.
_InitServer(const bool aIsAlwaysFresh)
dla roli serwera.
_ShutdownClient(void)
zatrzymuje klienta niedostępnego w wywołaniach zwrotnych.
_ShutdownCoordinator(void)
zatrzymuje koordynatora niedostępnego w wywołaniach zwrotnych.
_ShutdownServer(void)
zatrzymuje serwer niedostępny w wywołaniach zwrotnych.

Chronione funkcje statyczne

HandleAutoDiscoveryTimeout(System::Layer *aSystemLayer, void *aAppState, System::Error aError)
void
HandleAutoSyncTimeout(System::Layer *aSystemLayer, void *aAppState, System::Error aError)
void
HandleMulticastResponseTimeout(System::Layer *aSystemLayer, void *aAppState, System::Error aError)
void
HandleMulticastSyncResponse(ExchangeContext *ec, const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo, uint32_t profileId, uint8_t msgType, PacketBuffer *payload)
void
HandleSyncRequest(ExchangeContext *ec, const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo, uint32_t profileId, uint8_t msgType, PacketBuffer *payload)
void
wywołanie zwrotne z Weave Exchange po otrzymaniu żądania synchronizacji czasu.
HandleTimeChangeNotification(ExchangeContext *ec, const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo, uint32_t profileId, uint8_t msgType, PacketBuffer *payload)
void
HandleUnicastResponseTimeout(ExchangeContext *const ec)
void
HandleUnicastSyncResponse(ExchangeContext *ec, const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo, uint32_t profileId, uint8_t msgType, PacketBuffer *payload)
void
HandleUnreliableAfterBootTimer(System::Layer *aSystemLayer, void *aAppState, System::Error aError)
void
wywołanie zwrotne z licznika Weave Timer po przekroczeniu bariery niestabilnej po uruchomieniu.
IsOperationalState(ClientState aState)
bool
Określenie, czy dany stan działa.
_OnSyncSucceeded(void *const aApp, const nl::Weave::Profiles::Time::timesync_t aOffsetUsec, const bool aIsReliable, const bool aIsServer, const uint8_t aNumContributor)
bool

mBootTimeForNextAutoDiscovery_usec

timesync_t mBootTimeForNextAutoDiscovery_usec

mIsAutoSyncEnabled

bool mIsAutoSyncEnabled

stanów używanych w funkcji automatycznej synchronizacji.

mIsUrgentDiscoveryPending

bool mIsUrgentDiscoveryPending

mNominalDiscoveryPeriod_msec

int32_t mNominalDiscoveryPeriod_msec

mShortestDiscoveryPeriod_msec

int32_t mShortestDiscoveryPeriod_msec

mSyncPeriod_msec

int32_t mSyncPeriod_msec

mActiveContact

Contact * mActiveContact

w kontekście komunikacji.

mExchangeContext

ExchangeContext * mExchangeContext

mUnadjTimestampLastSent_usec

timesync_t mUnadjTimestampLastSent_usec

EnterState_Discover

void EnterState_Discover(
  void
)

te funkcje przejścia stanów są wewnętrzne i nie mogą zwracać kodu błędu, ponieważ poprzedni stan nie byłby w stanie ich obsłużyć.

każde niepowodzenie powinno skutkować ostatecznie przejściem do innego stanu (może to być przekroczenie czasu oczekiwania), jeśli nawet licznik czasu zawiedzie, możemy zwariować i zawiesić w niewłaściwym stanie.

EnterState_ServiceSync_1

void EnterState_ServiceSync_1(
  void
)

EnterState_ServiceSync_2

void EnterState_ServiceSync_2(
  void
)

EnterState_Sync_1

void EnterState_Sync_1(
  void
)

EnterState_Sync_2

void EnterState_Sync_2(
  void
)

Typy publiczne

ClientState

 ClientState

bieżący stan tego klienta synchronizacji czasu

CommState

 CommState

stan komunikacji z danym kontaktem.

Te informacje są publiczne, ponieważ Kontakt jest publiczny.

ContributorFilter

void(* ContributorFilter)(void *const aApp, Contact aContact[], const int aSize)

wywołanie zwrotne ma miejsce tuż przed obliczeniem korekty czasu na podstawie odpowiedzi.

warstwa aplikacji może zastąpić wartość aContact[i].mResponseStatus na kResponseStatus_Invalid, tak aby odpowiedź była ignorowana w obliczeniach.

Szczegóły
Parametry
[in] aApp
Wskaźnik do danych warstwy aplikacji ustawiony w polu Init.
[in] aContact
tablica kontaktów i stanu odpowiedzi
[in] aSize
liczba rekordów w tablicy aContact

OnSyncRequestReceivedHandler

bool(* OnSyncRequestReceivedHandler)(void *const aApp, const WeaveMessageInfo *aMsgInfo, const uint8_t aLikelyhood, const bool aIsTimeCoordinator)

oddzwanianie z informacją, że właśnie otrzymaliśmy żądanie synchronizacji czasu.

Szczegóły
Parametry
[in] aApp
Wskaźnik do danych warstwy aplikacji ustawiony w polu Init.
[in] aMsgInfo
WeaveMessageInfo z informacjami o odebranym żądaniu synchronizacji czasu, w tym o nadawcy.
[in] aLikelyhood
prawdopodobieństwo odpowiedzi zgodnie z wymaganiami podmiotu inicjującego
[in] aIsTimeCoordinator
true (prawda), jeśli węzeł źródłowy jest koordynatorem synchronizacji czasu
Zwroty
false, a wyszukiwarka zignoruje to żądanie

ResponseStatus

 ResponseStatus

stan zapisanej odpowiedzi dla danego kontaktu.

Te informacje są publiczne, ponieważ Kontakt jest publiczny.

ServerState

 ServerState

bieżący stan tego serwera synchronizacji czasu

Właściwości
kServerState_Idle

serwer jest gotowy do odpowiadania na żądania z normalnymi ustawieniami

kServerState_UnreliableAfterBoot

czas zarezerwowany na synchronizację czasu systemowego serwera za pomocą innych metod tylko wtedy, gdy zasada aIsZawszeFresh ma wartość prawda podczas wywoływania Init

SyncFailedHandler

void(* SyncFailedHandler)(void *const aApp, const WEAVE_ERROR aErrorCode)

wywołanie zwrotne ma miejsce, gdy synchronizacja zostanie uznana za nieudaną, w tym także automatyczna.

Pamiętaj, że wywołanie zwrotne nie zostanie wykonane, jeśli wywołanie metody Abort zatrzymasz w celu zatrzymania synchronizacji.

Szczegóły
Parametry
[in] aApp
Wskaźnik do danych warstwy aplikacji ustawiony w polu Init.
[in] aErrorCode
przyczyna niepowodzenia

SyncSucceededHandler

bool(* SyncSucceededHandler)(void *const aApp, const timesync_t aOffsetUsec, const bool aIsReliable, const bool aIsServer, const uint8_t aNumContributor)

wywołanie zwrotne ma miejsce po uznaniu synchronizacji za pomyślną (w tym automatycznej synchronizacji), ale przed zastosowaniem wyniku.

Pamiętaj, że sukces nie oznacza, że mamy odpowiednie wyniki. Jeśli nie otrzymano odpowiedzi, parametr aNumContributor ma wartość 0. Warstwa aplikacji może zastąpić wartość aContact[i].mResponseStatus na kResponseStatus_Invalid, tak aby odpowiedź była ignorowana w obliczeniach.

Szczegóły
Parametry
[in] aApp
Wskaźnik do danych warstwy aplikacji ustawiony w polu Init.
[in] aOffsetUsec
stopień korekty w używaniu
[in] aIsReliable
to poprawka uznana za wiarygodną przez wbudowaną logikę
[in] aIsServer
Czy poprawka pochodzi z serwerów?
[in] aNumContributor
liczba węzłów, które przyczyniły się do tej korekty. Wartość 0 oznacza brak wyników synchronizacji.
Zwroty
true (prawda), jeśli to przesunięcie ma być używane do korygowania czasu systemowego. w przypadku, gdy aNumContributor ma wartość 0, zwrócona wartość jest ignorowana.

TimeChangeNotificationHandler

void(* TimeChangeNotificationHandler)(void *const aApp, const uint64_t aNodeId, const IPAddress &aNodeAddr)

oddzwanianie, by poinformować, że właśnie otrzymaliśmy powiadomienie o zmianie czasu.

Jeśli włączony jest tryb automatycznej synchronizacji, synchronizacja czasowa zostanie zaplanowana automatycznie krótko po tym wywołaniu. W przeciwnym razie warstwa aplikacji może wybrać wywołanie rodziny funkcji synchronizacji, aby bezpośrednio rozpocząć operację synchronizacji, która nie jest ograniczona przez zwykłą regułę braku możliwości wywołania zwrotnego. Należy jednak zauważyć, że to specjalne wywołanie zwrotne znajduje się nadal na stosie wywołań zwrotnych warstwy wymiany Weave.

Szczegóły
Parametry
[in] aApp
Wskaźnik do danych warstwy aplikacji ustawiony w polu Init.
[in] aNodeId
identyfikator węzła żądającego
[in] aNodeAddr
adres węzła wysyłającego żądanie

Atrybuty publiczne

FilterTimeCorrectionContributor

ContributorFilter FilterTimeCorrectionContributor

OnSyncFailed

SyncFailedHandler OnSyncFailed

OnSyncRequestReceived

OnSyncRequestReceivedHandler OnSyncRequestReceived

jeśli nie zostanie ustawiona, implementacja domyślna zawsze zwraca wartość „true” (prawda)

OnSyncSucceeded

SyncSucceededHandler OnSyncSucceeded

Jeśli zasada nie jest skonfigurowana, domyślnym działaniem jest przyjmowanie wszystkich wyników z wyjątkiem bardzo małych poprawek serwera

OnTimeChangeNotificationReceived

TimeChangeNotificationHandler OnTimeChangeNotificationReceived

mEncryptionType

uint8_t mEncryptionType

metoda szyfrowania na potrzeby komunikacji lokalnej

mKeyId

uint16_t mKeyId

identyfikator klucza używany do komunikacji lokalnej

Atrybuty chronione

mApp

void * mApp

wskaźnik do danych z wyższej warstwy

mClientState

ClientState mClientState

mConnectionToService

WeaveConnection * mConnectionToService

Połączenie TCP użyte do komunikacji z usługą.

mContacts

Contact mContacts[WEAVE_CONFIG_TIME_CLIENT_MAX_NUM_CONTACTS]

Informacje kontaktowe uzyskane w trakcie odkrywania treści.

mIsAlwaysFresh

bool mIsAlwaysFresh

mIsInCallback

bool mIsInCallback

true (prawda), jeśli mamy wywołanie zwrotne do wyższej warstwy

mLastLikelihoodSent

int8_t mLastLikelihoodSent

mNumContributorInLastLocalSync

uint8_t mNumContributorInLastLocalSync

mRole

TimeSyncRole mRole

Rzeczywista rola tego węzła.

mServerState

ServerState mServerState

mServiceContact

Contact mServiceContact

mTimestampLastCorrectionFromServerOrNtp_usec

timesync_t mTimestampLastCorrectionFromServerOrNtp_usec

Pamiętaj, że musi to być czas uruchamiania, ponieważ potrzebujemy wynagrodzenia za czas snu.

mTimestampLastLocalSync_usec

timesync_t mTimestampLastLocalSync_usec

Pamiętaj, że musi to być czas uruchamiania, ponieważ potrzebujemy wynagrodzenia za czas snu.

Funkcje publiczne

Przerwij

WEAVE_ERROR Abort(
  void
)

z powrotem silnika do stanu bezczynności, przerywając działanie.

Uwaga: nie zostanie wywołana pomyślna ani niepowodzenie synchronizacji. wszystkie giełdy Weave Exchange zostaną zamknięte. Nie dotyczy to połączeń TCP. nie można wykonać żadnej operacji, jeśli jesteśmy już w stanie bezczynności. niedostępne w wywołaniach zwrotnych.

Szczegóły
Zwroty
WEAVE_NO_ERROR w przypadku powodzenia

DisableAutoSync

void DisableAutoSync(
  void
)

wyłącz automatyczną synchronizację.

dostępna tylko w stanie bezczynności. niedostępne w wywołaniach zwrotnych.

EnableAutoSync

WEAVE_ERROR EnableAutoSync(
  const int32_t aSyncPeriod_msec,
  const int32_t aNominalDiscoveryPeriod_msec,
  const int32_t aShortestDiscoveryPeriod_msec
)

włącz automatyczną synchronizację.

dostępna tylko w stanie bezczynności. jest wykrywany od razu. niedostępne w wywołaniach zwrotnych.

Szczegóły
Parametry
[in] aSyncPeriod_msec
liczba ms między synchronizacją
[in] aNominalDiscoveryPeriod_msec
liczba ms między wykrywaniem, jeśli nie wykryto błędu komunikacji
[in] aShortestDiscoveryPeriod_msec
najkrótszy czas między wykrywaniem (w ms), jeśli zaobserwowany błąd komunikacji
Zwroty
WEAVE_NO_ERROR w przypadku powodzenia

GetCapacityOfContactList

int GetCapacityOfContactList(
  void
) const 

proste metody pobierania dla maksymalnej liczby kontaktów skonfigurowanych do przechowywania w tym mechanizmie

GetClientState

ClientState GetClientState(
  void
) const 

proste pobieranie dla stanu klienta

GetNextLikelihood

int8_t GetNextLikelihood(
  void
) const 

i wyodrębnij prawdopodobieństwo trwałego.

wynik byłby prawidłowy tylko po zakończeniu synchronizacji, w ramach wywołań zwrotnych OnSyncSucceeded i OnSyncFailed. w przeciwnym razie jest przejściowa i może stanowić bieżące prawdopodobieństwo, a nie kolejną.

Szczegóły
Zwroty
prawdopodobieństwo wykorzystania odpowiedzi w następnym żądaniu

GetServerState

ServerState GetServerState(
  void
) const 

proste pobieranie dla stanu serwera

InitClient

WEAVE_ERROR InitClient(
  void *const aApp,
  WeaveExchangeManager *aExchangeMgr,
  const uint8_t aEncryptionType,
  const uint16_t aKeyId,
  const int8_t aInitialLikelyhood
)

zainicjuj tego klienta.

niedostępne w wywołaniach zwrotnych

Szczegóły
Parametry
[in] aApp
Wskaźnik do danych z wyższej warstwy, używany w wywołaniach zwrotnych do tej warstwy.
[in] aExchangeMgr
Wskaźnik do obiektu Weave Exchange Manager w całym systemie
[in] aRole
może być wartością kTimeSyncRole_Client lub kTimeSyncRole_Coordinator
[in] aEncryptionType
typ szyfrowania używany w żądaniach i odpowiedziach
[in] aKeyId
identyfikator klucza, który będzie używany na potrzeby żądań i odpowiedzi
[in] aInitialLikelyhood
początkowe prawdopodobieństwo, że zostanie wykorzystane na etapie wykrywania
Zwroty
WEAVE_NO_ERROR w przypadku powodzenia

InitCoordinator

WEAVE_ERROR InitCoordinator(
  nl::Weave::WeaveExchangeManager *aExchangeMgr,
  const uint8_t aEncryptionType,
  const uint16_t aKeyId,
  const int32_t aSyncPeriod_msec,
  const int32_t aNominalDiscoveryPeriod_msec,
  const int32_t aShortestDiscoveryPeriod_msec
)

zainicjować tego koordynatora.

Szczegóły
Parametry
[in] aExchangeMgr
Wskaźnik do obiektu Weave Exchange Manager w całym systemie
[in] aEncryptionType
typ szyfrowania używany w żądaniach i odpowiedziach
[in] aKeyId
identyfikator klucza, który będzie używany na potrzeby żądań i odpowiedzi
[in] aSyncPeriod_msec
liczba ms między synchronizacją
[in] aNominalDiscoveryPeriod_msec
najkrótszy czas między wykrywaniem (w ms), jeśli nie wykryto błędu komunikacji
[in] aShortestDiscoveryPeriod_msec
najmniejsza liczba ms między wykrywaniem, jeśli zaobserwowany błąd komunikacji
Zwroty
WEAVE_NO_ERROR w przypadku powodzenia

InitServer

WEAVE_ERROR InitServer(
  void *const aApp,
  WeaveExchangeManager *const aExchangeMgr,
  const bool aIsAlwaysFresh
)

inicjowanie dla roli serwera musi być wywoływane jako pierwsza funkcja po stworzeniu obiektu, jeśli intencją ma być serwer synchronizacji czasu.

niedostępne w wywołaniach zwrotnych

Szczegóły
Parametry
[in] aApp
Wskaźnik do danych z wyższej warstwy, używany w wywołaniach zwrotnych do tej warstwy.
[in] aExchangeMgr
Wskaźnik do obiektu Weave Exchange Manager w całym systemie
[in] aIsAlwaysFresh
można ustawić wartość Prawda, aby wskazać, że serwer jest zawsze synchronizowany poza początkowym, niestabilnym czasem. powinna mieć wartość false (fałsz) dla Koordynatora.
Zwroty
WEAVE_NO_ERROR w przypadku powodzenia

MulticastTimeChangeNotification

void MulticastTimeChangeNotification(
  const uint8_t aEncryptionType,
  const uint16_t aKeyId
) const 

Wywoływana przez powiadomienia wyższej warstwy o zmianie czasu transmisji grupowej.

niedostępne w wywołaniach zwrotnych.

Szczegóły
Parametry
[in] aEncryptionType
typ szyfrowania, który ma być użyty w tym powiadomieniu
[in] aKeyId
identyfikator klucza, który będzie używany w tym powiadomieniu

RegisterCorrectionFromServerOrNtp

void RegisterCorrectionFromServerOrNtp(
  void
)

Wywoływana przez wyższą warstwę, aby wskazać, że właśnie zakończyliśmy rundę synchronizacji czasu z dowolnym serwerem lub za pomocą pewnego niezawodnego sposobu, takiego jak NTP.

RegisterLocalSyncOperation

void RegisterLocalSyncOperation(
  const uint8_t aNumContributor
)

Wywoływana przez wyższą warstwę, aby wskazać, że właśnie zakończyliśmy rundę czasową synchronizacji z innymi lokalnymi koordynatorami.

Szczegóły
Parametry
[in] aNumContributor
liczba koordynatorów mających udział w tej synchronizacji czasu

Wyłączono

WEAVE_ERROR Shutdown(
  void
)

zatrzymuje usługę niezależnie od pełnionej roli.

Ta funkcja musi zostać wywołana w celu prawidłowego odzyskania przydzielonych zasobów przed wywołaniem dowolnej z funkcji inicjujących. niedostępne w wywołaniach zwrotnych.

Szczegóły
Zwroty
WEAVE_NO_ERROR w przypadku powodzenia

Synchronizacja

WEAVE_ERROR Sync(
  const bool aForceDiscoverAgain
)

synchronizować z istniejącymi kontaktami.

Synchronizacja może się nie udać, jeśli nie będą dostępne żadne prawidłowe kontakty. ustaw w aForceDiscoverAgain wartość „true”, aby natychmiast wymusić wykrywanie. dostępna tylko w stanie bezczynności. niedostępne w wywołaniach zwrotnych.

Szczegóły
Parametry
[in] aForceDiscoverAgain
true (prawda), jeśli wszystkie istniejące kontakty powinny zostać opróżnione i zostanie wykonana operacja wykrywania
Zwroty
WEAVE_NO_ERROR w przypadku powodzenia

SyncWithNodes

WEAVE_ERROR SyncWithNodes(
  const int16_t aNumNode,
  const ServingNode aNodes[]
)

zsynchronizować przy użyciu podanej listy kontaktów.

że istniejąca lista kontaktów zostałaby usunięta. dostępna tylko w stanie bezczynności. niedostępne w wywołaniach zwrotnych.

Szczegóły
Parametry
[in] aNumNode
liczba kontaktów w węzłach aNode
[in] aNodes
tablica rekordów kontaktów
Zwroty
WEAVE_NO_ERROR w przypadku powodzenia

SyncWithService

WEAVE_ERROR SyncWithService(
  WeaveConnection *const aConnection
)

synchronizację przy użyciu danego połączenia TCP oraz powiązanego szyfrowania i identyfikatora klucza.

element wywołujący musi przejąć własność połączenia TCP po zakończeniu synchronizacji. dla połączenia TCP nie zostanie zastąpione żadne wywołanie zwrotne, ponieważ zostanie utworzona nowa giełda Weave Exchange, a wywołania zwrotne ustawione na tym kontekście będą dostępne tylko w stanie bezczynności. niedostępne w wywołaniach zwrotnych.

Szczegóły
Parametry
[in] aConnection
Wskaźnik do połączenia Weave
Zwroty
WEAVE_NO_ERROR w przypadku powodzenia

TimeSyncNode

 TimeSyncNode(
  void
)

Funkcje chronione

AbortOnError

void AbortOnError(
  const WEAVE_ERROR aCode
)

wewnętrzne przerwanie, jeśli aCode nie ma WEAVE_NO_ERROR

AutoSyncNow

void AutoSyncNow(
  void
)

wewnętrzna funkcja rozpoczynania sesji automatycznej synchronizacji

CallbackForSyncCompletion

WEAVE_ERROR CallbackForSyncCompletion(
  const bool aIsSuccessful,
  bool aShouldUpdate,
  const bool aIsCorrectionReliable,
  const bool aIsFromServer,
  const uint8_t aNumContributor,
  const timesync_t aSystemTimestamp_usec,
  const timesync_t aDiffTime_usec
)

wywołanie zwrotne do warstwy aplikacji.

ustaw wartość aIsSuccessful na false, aby wywołać błąd wywołania zwrotnego

ClearState

void ClearState(
  void
)

DestroyCommContext

bool DestroyCommContext(
  void
)

zamknij okno Weave ExchangeContext.

EndLocalSyncAndTryCalculateTimeFix

void EndLocalSyncAndTryCalculateTimeFix(
  void
)

EndServiceSyncAndTryCalculateTimeFix

void EndServiceSyncAndTryCalculateTimeFix(
  void
)

FindReplaceableContact

Contact * FindReplaceableContact(
  const uint64_t aNodeId,
  const IPAddress & aNodeAddr,
  bool aIsTimeChangeNotification
)

zwrócić przedział do przechowywania informacji kontaktowych;

GetClientStateName

const char *const GetClientStateName(
  void
) const 

GetNextIdleContact

Contact * GetNextIdleContact(
  void
)

uzyskaj następny ważny i nieaktywny kontakt, z którym możesz porozmawiać

GetNumNotYetCompletedContacts

int16_t GetNumNotYetCompletedContacts(
  void
)

podaj liczbę prawidłowych kontaktów, ale jeszcze z nimi nie rozmawialiśmy.

GetNumReliableResponses

int16_t GetNumReliableResponses(
  void
)

sprawdź liczbę „wiarygodnych” zebranych do tej pory odpowiedzi.

aby określić, czy zgromadziliśmy wystarczającą liczbę odpowiedzi

InitState

WEAVE_ERROR InitState(
  const TimeSyncRole aRole,
  void *const aApp,
  WeaveExchangeManager *const aExchangeMgr
)

InvalidateAllContacts

void InvalidateAllContacts(
  void
)

unieważnij wszystkie kontakty lokalne

InvalidateServiceContact

void InvalidateServiceContact(
  void
)

unieważni kontakt z usługą

RegisterCommError

void RegisterCommError(
  Contact *const aContact
)

Rejestrowanie błędów komunikacji w przypadku określonego kontaktu i w razie potrzeby skrócenie okresu automatycznego wykrywania może mieć wartość NULL, co oznacza, że nie mamy z kim pogadać. W związku z tym skróć okres automatycznego wykrywania.

SendSyncRequest

WEAVE_ERROR SendSyncRequest(
  bool *const rIsMessageSent,
  Contact *const aContact
)

wyślij do kontaktu żądanie synchronizacji zbiorczej.

*rIsMessageSent zostanie ustawiony, by wskazać, czy wiadomość została wysłana. błędy komunikacji, takie jak adres nieosiągalny, nie są zwracane, więc rozmówca powinien sprawdzić zarówno kod zwrotny, jak i *rIsMessageSent.

SetAllCompletedContactsToIdle

int16_t SetAllCompletedContactsToIdle(
  void
)

resetuje wszystkie zakończone kontakty do stanu bezczynności, ale nie dotykaj odpowiedzi.

jest to funkcja między dwiema rundami komunikacji z tym samym węzłem

SetAllValidContactsToIdleAndInvalidateResponse

int16_t SetAllValidContactsToIdleAndInvalidateResponse(
  void
)

ustawić wszystkie prawidłowe kontakty lokalne w stan nieaktywny i usunąć odpowiedź.

ta funkcja jest wywoływana, zanim zaczniemy kontaktować się z nimi po kolei.

SetClientState

void SetClientState(
  const ClientState state
)

SetupUnicastCommContext

WEAVE_ERROR SetupUnicastCommContext(
  Contact *const aContact
)

utwórz nową giełdę Weave Exchange do komunikacji pojedynczej

StoreNotifyingContact

void StoreNotifyingContact(
  const uint64_t aNodeId,
  const IPAddress & aNodeAddr
)

przechowywać informacje kontaktowe węzła, który właśnie wysłał nam powiadomienie o zmianie czasu

UpdateMulticastSyncResponse

void UpdateMulticastSyncResponse(
  const uint64_t aNodeId,
  const IPAddress & aNodeAddr,
  const TimeSyncResponse & aResponse
)

przetwarza odpowiedź zwrotną z żądania multicast

UpdateUnicastSyncResponse

void UpdateUnicastSyncResponse(
  const TimeSyncResponse & aResponse
)

przetwarza odpowiedź zwrotną z żądania zbiorczego

_InitClient

WEAVE_ERROR _InitClient(
  const uint8_t aEncryptionType,
  const uint16_t aKeyId,
  const int8_t aInitialLikelyhood
)

dla roli Klient.

Przeznaczone do użytku wewnętrznie przez członków rodziny funkcji publicznych Init. Parametr mClientState musi być ustawiony przed zwrotem. niedostępne w wywołaniach zwrotnych

Szczegóły
Parametry
[in] aEncryptionType
typ szyfrowania używany w żądaniach i odpowiedziach
[in] aKeyId
identyfikator klucza, który będzie używany na potrzeby żądań i odpowiedzi
[in] aInitialLikelyhood
początkowe prawdopodobieństwo, że zostanie wykorzystane na etapie wykrywania
Zwroty
WEAVE_NO_ERROR w przypadku powodzenia

_InitServer

WEAVE_ERROR _InitServer(
  const bool aIsAlwaysFresh
)

dla roli serwera.

Przeznaczone do użytku wewnętrznie przez członków rodziny funkcji publicznych Init. Parametr mClientState musi być ustawiony przed funkcją zwrócenia. niedostępne w wywołaniach zwrotnych

Szczegóły
Parametry
[in] aIsAlwaysFresh
można ustawić wartość Prawda, aby wskazać, że serwer jest zawsze synchronizowany poza początkowym, niestabilnym czasem. powinna mieć wartość false (fałsz) dla Koordynatora.
Zwroty
WEAVE_NO_ERROR w przypadku powodzenia

_ShutdownClient

WEAVE_ERROR _ShutdownClient(
  void
)

zatrzymuje klienta niedostępnego w wywołaniach zwrotnych.

Szczegóły
Zwroty
WEAVE_NO_ERROR w przypadku powodzenia

_ShutdownCoordinator

WEAVE_ERROR _ShutdownCoordinator(
  void
)

zatrzymuje koordynatora niedostępnego w wywołaniach zwrotnych.

Szczegóły
Zwroty
WEAVE_NO_ERROR w przypadku powodzenia

_ShutdownServer

WEAVE_ERROR _ShutdownServer(
  void
)

zatrzymuje serwer niedostępny w wywołaniach zwrotnych.

Szczegóły
Zwroty
WEAVE_NO_ERROR w przypadku powodzenia

Chronione funkcje statyczne

HandleAutoDiscoveryTimeout

void HandleAutoDiscoveryTimeout(
  System::Layer *aSystemLayer,
  void *aAppState,
  System::Error aError
)

HandleAutoSyncTimeout

void HandleAutoSyncTimeout(
  System::Layer *aSystemLayer,
  void *aAppState,
  System::Error aError
)

HandleMulticastResponseTimeout

void HandleMulticastResponseTimeout(
  System::Layer *aSystemLayer,
  void *aAppState,
  System::Error aError
)

HandleMulticastSyncResponse

void HandleMulticastSyncResponse(
  ExchangeContext *ec,
  const IPPacketInfo *pktInfo,
  const WeaveMessageInfo *msgInfo,
  uint32_t profileId,
  uint8_t msgType,
  PacketBuffer *payload
)

HandleSyncRequest

void HandleSyncRequest(
  ExchangeContext *ec,
  const IPPacketInfo *pktInfo,
  const WeaveMessageInfo *msgInfo,
  uint32_t profileId,
  uint8_t msgType,
  PacketBuffer *payload
)

wywołanie zwrotne z Weave Exchange po otrzymaniu żądania synchronizacji czasu.

HandleTimeChangeNotification

void HandleTimeChangeNotification(
  ExchangeContext *ec,
  const IPPacketInfo *pktInfo,
  const WeaveMessageInfo *msgInfo,
  uint32_t profileId,
  uint8_t msgType,
  PacketBuffer *payload
)

HandleUnicastResponseTimeout

void HandleUnicastResponseTimeout(
  ExchangeContext *const ec
)

HandleUnicastSyncResponse

void HandleUnicastSyncResponse(
  ExchangeContext *ec,
  const IPPacketInfo *pktInfo,
  const WeaveMessageInfo *msgInfo,
  uint32_t profileId,
  uint8_t msgType,
  PacketBuffer *payload
)

HandleUnreliableAfterBootTimer

void HandleUnreliableAfterBootTimer(
  System::Layer *aSystemLayer,
  void *aAppState,
  System::Error aError
)

wywołanie zwrotne z licznika Weave Timer po przekroczeniu bariery niestabilnej po uruchomieniu.

IsOperationalState

bool IsOperationalState(
  ClientState aState
)

Określenie, czy dany stan działa.

Wygodna metoda określania, czy stan klienta wskazuje stan operacyjny, tj. klient zakończył inicjalizację i nie jest w trakcie wyłączania.

Szczegóły
Parametry
[in] aState
stan do oceny
Zwroty
true (prawda), jeśli stan zmieni się po zakończeniu inicjowania i przed rozpoczęciem wyłączania. W przeciwnym razie ma wartość false (fałsz).

_OnSyncSucceeded

bool _OnSyncSucceeded(
  void *const aApp,
  const nl::Weave::Profiles::Time::timesync_t aOffsetUsec,
  const bool aIsReliable,
  const bool aIsServer,
  const uint8_t aNumContributor
)