нл:: Переплетение:: Профили:: Время:: Таймсинкноде

Краткое содержание

Наследование

Наследуется от: nl::Weave::Profiles::Time::_TimeSyncNodeBase

Конструкторы и деструкторы

TimeSyncNode (void)
mBootTimeForNextAutoDiscovery_usec
timesync_t
mIsAutoSyncEnabled
bool
состояния, используемые для функции автоматической синхронизации.
mIsUrgentDiscoveryPending
bool
mNominalDiscoveryPeriod_msec
int32_t
mShortestDiscoveryPeriod_msec
int32_t
mSyncPeriod_msec
int32_t
mActiveContact
контекст общения.
mExchangeContext
mUnadjTimestampLastSent_usec
timesync_t
EnterState_Discover (void)
void
эти функции перехода состояний являются внутренними и не могут возвращать код ошибки, поскольку предыдущее состояние не сможет их обработать.
EnterState_ServiceSync_1 (void)
void
EnterState_ServiceSync_2 (void)
void
EnterState_Sync_1 (void)
void
EnterState_Sync_2 (void)
void

Публичные типы

ClientState перечисление
текущее состояние этого клиента синхронизации времени
CommState перечисление
статус связи с определенным контактом.
ContributorFilter )(void *const aApp, Contact aContact[], const int aSize) определение типа
void(*
обратный вызов происходит прямо перед тем, как мы вычисляем поправку времени на основе ответов.
OnSyncRequestReceivedHandler )(void *const aApp, const WeaveMessageInfo *aMsgInfo, const uint8_t aLikelyhood, const bool aIsTimeCoordinator) определение типа
bool(*
обратный вызов, чтобы указать, что мы только что получили запрос на синхронизацию времени.
ResponseStatus перечисление
статус сохраненного ответа на определенный контакт.
ServerState {
kServerState_UnreliableAfterBoot ,
kServerState_Idle
}
перечисление
текущее состояние этого сервера синхронизации времени
SyncFailedHandler )(void *const aApp, const WEAVE_ERROR aErrorCode) определение типа
void(*
обратный вызов происходит, когда синхронизация считается неудачной, включая автоматическую синхронизацию.
SyncSucceededHandler )(void *const aApp, const timesync_t aOffsetUsec, const bool aIsReliable, const bool aIsServer, const uint8_t aNumContributor) определение типа
bool(*
обратный вызов происходит после того, как синхронизация считается успешной, включая автоматическую синхронизацию, но до применения результата.
TimeChangeNotificationHandler )(void *const aApp, const uint64_t aNodeId, const IPAddress &aNodeAddr) определение типа
void(*
обратный вызов, чтобы указать, что мы только что получили уведомление об изменении времени.

Публичные атрибуты

FilterTimeCorrectionContributor
OnSyncFailed
OnSyncRequestReceived
если не установлено, реализация по умолчанию всегда возвращает true
OnSyncSucceeded
если не установлено, по умолчанию принимаются все результаты, за исключением очень небольших исправлений сервера.
OnTimeChangeNotificationReceived
mEncryptionType
uint8_t
метод шифрования для локальной связи
mKeyId
uint16_t
идентификатор ключа, используемый для локальной связи

Защищенные атрибуты

mApp
void *
указатель на данные более высокого уровня
mClientState
mConnectionToService
TCP-соединение, используемое для связи со службой.
mContacts [WEAVE_CONFIG_TIME_CLIENT_MAX_NUM_CONTACTS]
Контактная информация, полученная во время открытия.
mIsAlwaysFresh
bool
mIsInCallback
bool
true, если мы находимся в обратном вызове на более высокий уровень
mLastLikelihoodSent
int8_t
mNumContributorInLastLocalSync
uint8_t
mRole
TimeSyncRole
Фактическая роль этого узла.
mServerState
mServiceContact
mTimestampLastCorrectionFromServerOrNtp_usec
timesync_t
обратите внимание, что это должно быть время загрузки, так как нам нужна компенсация за время сна
mTimestampLastLocalSync_usec
timesync_t
обратите внимание, что это должно быть время загрузки, так как нам нужна компенсация за время сна

Общественные функции

Abort (void)
заставить двигатель вернуться в состояние холостого хода, прерывая все его действия.
DisableAutoSync (void)
void
отключить автосинхронизацию.
EnableAutoSync (const int32_t aSyncPeriod_msec, const int32_t aNominalDiscoveryPeriod_msec, const int32_t aShortestDiscoveryPeriod_msec)
включить автоматическую синхронизацию.
GetCapacityOfContactList (void) const
int
простой метод получения максимального количества контактов, на хранение которого настроен этот движок
GetClientState (void) const
простой метод получения состояния клиента
GetNextLikelihood (void) const
int8_t
извлечь вероятность настойчивости.
GetServerState (void) const
простой метод получения состояния сервера
InitClient (void *const aApp, WeaveExchangeManager *aExchangeMgr, const uint8_t aEncryptionType, const uint16_t aKeyId, const int8_t aInitialLikelyhood)
инициализировать этот клиент.
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)
инициализировать этот координатор.
InitServer (void *const aApp, WeaveExchangeManager *const aExchangeMgr, const bool aIsAlwaysFresh)
Initialize для роли сервера должна вызываться как первая функция после создания объекта, если предполагается, что он будет сервером синхронизации времени.
MulticastTimeChangeNotification (const uint8_t aEncryptionType, const uint16_t aKeyId) const
void
Вызывается более высоким уровнем для уведомления об изменении времени многоадресной рассылки.
RegisterCorrectionFromServerOrNtp (void)
void
Вызывается более высоким уровнем, чтобы указать, что мы только что завершили синхронизацию времени либо с любым сервером, либо с помощью каких-либо надежных средств, таких как NTP.
RegisterLocalSyncOperation (const uint8_t aNumContributor)
void
Вызывается более высоким уровнем, чтобы указать, что мы только что завершили синхронизацию времени с другими локальными координаторами.
Shutdown (void)
остановить службу, какую бы роль она ни играла.
Sync (const bool aForceDiscoverAgain)
синхронизировать с использованием существующих контактов.
SyncWithNodes (const int16_t aNumNode, const ServingNode aNodes[])
синхронизировать, используя данный список контактов.
SyncWithService ( WeaveConnection *const aConnection)
синхронизировать, используя данное TCP-соединение и связанное с ним шифрование и идентификатор ключа.

Защищенные функции

AbortOnError (const WEAVE_ERROR aCode)
void
внутреннее прерывание, если код не WEAVE_NO_ERROR
AutoSyncNow (void)
void
внутренняя функция для запуска сеанса автоматической синхронизации
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)
вызвать обратный вызов на уровне приложения.
ClearState (void)
void
DestroyCommContext (void)
bool
закройте Weave ExchangeContext
EndLocalSyncAndTryCalculateTimeFix (void)
void
EndServiceSyncAndTryCalculateTimeFix (void)
void
FindReplaceableContact (const uint64_t aNodeId, const IPAddress & aNodeAddr, bool aIsTimeChangeNotification)
вернуть слот для хранения контактной информации
GetClientStateName (void) const
const char *const
GetNextIdleContact (void)
получить следующий действительный и свободный контакт для разговора
GetNumNotYetCompletedContacts (void)
int16_t
получить количество действительных контактов, но мы с ними еще не разговаривали.
GetNumReliableResponses (void)
int16_t
получить количество «надежных» ответов, собранных на данный момент.
InitState (const TimeSyncRole aRole, void *const aApp, WeaveExchangeManager *const aExchangeMgr)
InvalidateAllContacts (void)
void
аннулировать все местные контакты
InvalidateServiceContact (void)
void
аннулировать контакт со службой
RegisterCommError ( Contact *const aContact)
void
зарегистрировать ошибку связи для определенного контакта и при необходимости сократить период автоматического обнаружения. aContact может иметь значение NULL, чтобы указать, что нам не с кем поговорить, и, следовательно, просто сократить период автоматического обнаружения.
SendSyncRequest (bool *const rIsMessageSent, Contact *const aContact)
отправить запрос на одноадресную синхронизацию контакту.
SetAllCompletedContactsToIdle (void)
int16_t
снова сбросьте все завершенные контакты в состояние ожидания, но не трогайте ответ.
SetAllValidContactsToIdleAndInvalidateResponse (void)
int16_t
переведите все действительные локальные контакты в состояние ожидания и очистите ответ.
SetClientState (const ClientState state)
void
SetupUnicastCommContext ( Contact *const aContact)
создать новый Weave Exchange для одноадресной связи
StoreNotifyingContact (const uint64_t aNodeId, const IPAddress & aNodeAddr)
void
хранить контактную информацию узла, который только что отправил нам уведомление об изменении времени
UpdateMulticastSyncResponse (const uint64_t aNodeId, const IPAddress & aNodeAddr, const TimeSyncResponse & aResponse)
void
обрабатывать ответ, возвращающийся из многоадресного запроса
UpdateUnicastSyncResponse (const TimeSyncResponse & aResponse)
void
обрабатывать ответ, возвращающийся из одноадресного запроса
_InitClient (const uint8_t aEncryptionType, const uint16_t aKeyId, const int8_t aInitialLikelyhood)
инициализировать роль Клиента.
_InitServer (const bool aIsAlwaysFresh)
инициализировать роль Сервера.
_ShutdownClient (void)
остановить клиент, недоступный в обратных вызовах.
_ShutdownCoordinator (void)
остановить координатора, недоступного в обратных вызовах.
_ShutdownServer (void)
остановить сервер, недоступный в обратных вызовах.

Защищенные статические функции

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
обратный вызов от Weave Exchange при поступлении запроса на синхронизацию времени
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
обратный вызов от Weave Timer, когда мы прошли ненадежный барьер после загрузки
IsOperationalState ( ClientState aState)
bool
Определить, является ли данное состояние работоспособным.
_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

состояния, используемые для функции автоматической синхронизации.

mIsUrgentDiscoveryPending

bool mIsUrgentDiscoveryPending

mNominalDiscoveryPeriod_msec

int32_t mNominalDiscoveryPeriod_msec

mShortestDiscoveryPeriod_msec

int32_t mShortestDiscoveryPeriod_msec

mSyncPeriod_msec

int32_t mSyncPeriod_msec

mActiveContact

Contact * mActiveContact

контекст общения.

мExchangeContext

ExchangeContext * mExchangeContext

mUnadjTimestampLastSent_usec

timesync_t mUnadjTimestampLastSent_usec

EnterState_Discover

void EnterState_Discover(
  void
)

эти функции перехода состояний являются внутренними и не могут возвращать код ошибки, поскольку предыдущее состояние не сможет их обработать.

любой сбой в конечном итоге приведет к другому переходу состояния (может быть таймаут), если даже таймер выйдет из строя, мы выходим из строя и можем зависнуть в каком-то неправильном состоянии

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
)

Публичные типы

Состояние клиента

 ClientState

текущее состояние этого клиента синхронизации времени

Комстате

 CommState

статус связи с определенным контактом.

Это общедоступно, потому что контакт общедоступен

Фильтр участника

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

обратный вызов происходит прямо перед тем, как мы вычисляем поправку времени на основе ответов.

уровень приложения может перезаписать aContact[i].mResponseStatus на kResponseStatus_Invalid, чтобы ответ игнорировался при расчете

Подробности
Параметры
[in] aApp
Указатель на данные уровня приложения, заданные в Init.
[in] aContact
массив контактов и статус ответа
[in] aSize
количество записей в массиве aContact

Онсинкрекуестресеиведхандлер

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

обратный вызов, чтобы указать, что мы только что получили запрос на синхронизацию времени.

Подробности
Параметры
[in] aApp
Указатель на данные уровня приложения, заданные в Init.
[in] aMsgInfo
WeaveMessageInfo, содержащий информацию о полученном запросе синхронизации времени, включая информацию об отправителе.
[in] aLikelyhood
вероятность ответа по запросу отправителя
[in] aIsTimeCoordinator
true, если исходный узел является координатором синхронизации времени
Возврат
false, и движок будет игнорировать этот запрос

Статус ответа

 ResponseStatus

статус сохраненного ответа на определенный контакт.

Это общедоступно, потому что контакт общедоступен

состояние сервера

 ServerState

текущее состояние этого сервера синхронизации времени

Характеристики
kServerState_Idle

сервер готов отвечать на запросы с обычными настройками

kServerState_UnreliableAfterBoot

время, зарезервированное сервером для синхронизации своего системного времени с помощью каких-либо других средств, имеющих смысл только в том случае, если aIsAlwaysFresh имеет значение true при вызове Init

Синкфаиледхандлер

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

обратный вызов происходит, когда синхронизация считается неудачной, включая автоматическую синхронизацию.

обратите внимание, что обратный вызов не происходит, если вызывается Abort для остановки синхронизации.

Подробности
Параметры
[in] aApp
Указатель на данные уровня приложения, заданные в Init.
[in] aErrorCode
причина неудачи

SyncSucceededHandler

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

обратный вызов происходит после того, как синхронизация считается успешной, включая автоматическую синхронизацию, но до применения результата.

Обратите внимание: успех не означает, что у нас есть применимые результаты. В случае, если ответ не был получен, aNumContributor будет установлен в 0. Уровень приложения может перезаписать aContact[i].mResponseStatus на kResponseStatus_Invalid, чтобы ответ игнорировался при расчете.

Подробности
Параметры
[in] aApp
Указатель на данные уровня приложения, заданные в Init.
[in] aOffsetUsec
количество используемой коррекции
[in] aIsReliable
считается ли коррекция надежной по встроенной логике?
[in] aIsServer
исправление исходит от сервера(ов)
[in] aNumContributor
количество узлов, которые способствовали этой коррекции. 0 означает отсутствие результатов операции синхронизации.
Возврат
true, если это смещение будет использоваться для настройки системного времени. если aNumContributor равен 0, возвращаемое значение будет игнорироваться.

Обработчик TimeChangeNotificationHandler

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

обратный вызов, чтобы указать, что мы только что получили уведомление об изменении времени.

если включен режим автоматической синхронизации, синхронизация времени будет запланирована автоматически вскоре после этого обратного вызова. в противном случае уровень приложения может выбрать вызов семейства функций Sync, чтобы напрямую запустить операцию синхронизации, не ограниченную обычным правилом «недоступно в обратном вызове». однако следует отметить, что этот специальный обратный вызов все еще находится на вершине стека обратного вызова уровня обмена Weave.

Подробности
Параметры
[in] aApp
Указатель на данные уровня приложения, заданные в Init.
[in] aNodeId
запрос идентификатора узла
[in] aNodeAddr
запрос адреса узла

Публичные атрибуты

Фильтртимекорректионконтрибутор

ContributorFilter FilterTimeCorrectionContributor

Онсинкфаилед

SyncFailedHandler OnSyncFailed

Онсинкрекуестрекеевед

OnSyncRequestReceivedHandler OnSyncRequestReceived

если не установлено, реализация по умолчанию всегда возвращает true

Онсинкцеедед

SyncSucceededHandler OnSyncSucceeded

если не установлено, по умолчанию принимаются все результаты, за исключением очень небольших исправлений сервера.

OnTimeChangeNotificationReceived

TimeChangeNotificationHandler OnTimeChangeNotificationReceived

мэнкриптионтипе

uint8_t mEncryptionType

метод шифрования для локальной связи

mKeyId

uint16_t mKeyId

идентификатор ключа, используемый для локальной связи

Защищенные атрибуты

мобильное приложение

void * mApp

указатель на данные более высокого уровня

мклиентстате

ClientState mClientState

мконнектионтосервице

WeaveConnection * mConnectionToService

TCP-соединение, используемое для связи со службой.

mКонтакты

Contact mContacts[WEAVE_CONFIG_TIME_CLIENT_MAX_NUM_CONTACTS]

Контактная информация, полученная во время открытия.

mIsAlwaysFresh

bool mIsAlwaysFresh

mIsInCallback

bool mIsInCallback

true, если мы находимся в обратном вызове на более высокий уровень

mLastLikelihoodSent

int8_t mLastLikelihoodSent

мнумконтрибуторинластлокалсинк

uint8_t mNumContributorInLastLocalSync

mРоль

TimeSyncRole mRole

Фактическая роль этого узла.

мсерверстате

ServerState mServerState

мсервисконтакт

Contact mServiceContact

mTimestampLastCorrectionFromServerOrNtp_usec

timesync_t mTimestampLastCorrectionFromServerOrNtp_usec

обратите внимание, что это должно быть время загрузки, так как нам нужна компенсация за время сна

mTimestampLastLocalSync_usec

timesync_t mTimestampLastLocalSync_usec

обратите внимание, что это должно быть время загрузки, так как нам нужна компенсация за время сна

Общественные функции

Прервать

WEAVE_ERROR Abort(
  void
)

заставить двигатель вернуться в состояние холостого хода, прерывая все его действия.

обратите внимание, что ни успешная, ни неудачная синхронизация не будет вызвана. все биржи Weave будут закрыты. TCP-соединения в дальнейшем не будут затронуты. никаких действий, если мы уже находимся в состоянии ожидания. недоступно в обратных вызовах.

Подробности
Возврат
WEAVE_NO_ERROR в случае успеха

Отключить автосинхронизацию

void DisableAutoSync(
  void
)

отключить автосинхронизацию.

доступен только в режиме ожидания. недоступно в обратных вызовах.

Включить автосинхронизацию

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

включить автоматическую синхронизацию.

доступен только в режиме ожидания. открытие происходит сразу. недоступно в обратных вызовах.

Подробности
Параметры
[in] aSyncPeriod_msec
количество мс между синхронизацией
[in] aNominalDiscoveryPeriod_msec
количество мс между обнаружением, если не наблюдается ошибок связи
[in] aShortestDiscoveryPeriod_msec
кратчайшее время между обнаружением, в мс, если обнаружена ошибка связи
Возврат
WEAVE_NO_ERROR в случае успеха

GetCapacityOfContactList

int GetCapacityOfContactList(
  void
) const 

простой метод получения максимального количества контактов, на хранение которого настроен этот движок

Жетклиентстате

ClientState GetClientState(
  void
) const 

простой метод получения состояния клиента

GetNext Вероятность

int8_t GetNextLikelihood(
  void
) const 

извлечь вероятность настойчивости.

результат будет действительным только после завершения операции синхронизации в рамках обратных вызовов OnSyncSucceeded и OnSyncFailed. в противном случае оно является временным и может быть текущим значением вероятности, а не следующим, которое будет использоваться.

Подробности
Возврат
вероятность того, что ответ будет использован в следующем запросе

GetServerState

ServerState GetServerState(
  void
) const 

простой метод получения состояния сервера

ИнитКлиент

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

инициализировать этот клиент.

недоступно в обратных вызовах

Подробности
Параметры
[in] aApp
Указатель на данные более высокого уровня, используемый в обратных вызовах на более высокий уровень.
[in] aExchangeMgr
Указатель на общесистемный объект Weave Exchange Manager.
[in] aRole
может быть либо kTimeSyncRole_Client, либо kTimeSyncRole_Coordinator
[in] aEncryptionType
тип шифрования, который будет использоваться для запросов и ответов
[in] aKeyId
идентификатор ключа, который будет использоваться для запросов и ответов
[in] aInitialLikelyhood
начальная вероятность использования на этапе открытия
Возврат
WEAVE_NO_ERROR в случае успеха

Координатор инициализации

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
)

инициализировать этот координатор.

Подробности
Параметры
[in] aExchangeMgr
Указатель на общесистемный объект Weave Exchange Manager.
[in] aEncryptionType
тип шифрования, который будет использоваться для запросов и ответов
[in] aKeyId
идентификатор ключа, который будет использоваться для запросов и ответов
[in] aSyncPeriod_msec
количество мс между синхронизацией
[in] aNominalDiscoveryPeriod_msec
кратчайшее время между обнаружением, в мс, если не наблюдается ошибок связи
[in] aShortestDiscoveryPeriod_msec
наименьшее количество мс между обнаружением, если наблюдалась ошибка связи
Возврат
WEAVE_NO_ERROR в случае успеха

Инитсервер

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

Initialize для роли сервера должна вызываться как первая функция после создания объекта, если предполагается, что он будет сервером синхронизации времени.

недоступно в обратных вызовах

Подробности
Параметры
[in] aApp
Указатель на данные более высокого уровня, используемый в обратных вызовах на более высокий уровень.
[in] aExchangeMgr
Указатель на общесистемный объект Weave Exchange Manager.
[in] aIsAlwaysFresh
может быть установлено значение true, чтобы указать, что сервер всегда синхронизируется, за исключением начального ненадежного времени. для координатора должно быть установлено значение false.
Возврат
WEAVE_NO_ERROR в случае успеха

MulticastTimeChangeNotification

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

Вызывается более высоким уровнем для уведомления об изменении времени многоадресной рассылки.

недоступно в обратных вызовах.

Подробности
Параметры
[in] aEncryptionType
тип шифрования, который будет использоваться для этого уведомления
[in] aKeyId
идентификатор ключа, который будет использоваться для этого уведомления

РегистрацияКорректионФромСерверОрНтп

void RegisterCorrectionFromServerOrNtp(
  void
)

Вызывается более высоким уровнем, чтобы указать, что мы только что завершили синхронизацию времени либо с любым сервером, либо с помощью каких-либо надежных средств, таких как NTP.

Регистрациялокалсинкоператион

void RegisterLocalSyncOperation(
  const uint8_t aNumContributor
)

Вызывается более высоким уровнем, чтобы указать, что мы только что завершили синхронизацию времени с другими локальными координаторами.

Подробности
Параметры
[in] aNumContributor
количество координаторов, внесших вклад в эту синхронизацию времени

Неисправность

WEAVE_ERROR Shutdown(
  void
)

остановить службу, какую бы роль она ни играла.

Эту функцию необходимо вызвать для правильного освобождения выделенных ресурсов, прежде чем можно будет выполнить еще один вызов любой из функций инициализации. недоступно в обратных вызовах.

Подробности
Возврат
WEAVE_NO_ERROR в случае успеха

Синхронизировать

WEAVE_ERROR Sync(
  const bool aForceDiscoverAgain
)

синхронизировать с использованием существующих контактов.

операция синхронизации может завершиться неудачей, если нет доступных действительных контактов. установите для aForceDiscoverAgain значение true, чтобы принудительно выполнить обнаружение немедленно. доступен только в режиме ожидания. недоступно в обратных вызовах.

Подробности
Параметры
[in] aForceDiscoverAgain
true, если все существующие контакты должны быть очищены и выполнена операция обнаружения
Возврат
WEAVE_NO_ERROR в случае успеха

Синхронизация с узлами

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

синхронизировать, используя данный список контактов.

существующий список контактов будет очищен. доступен только в режиме ожидания. недоступно в обратных вызовах.

Подробности
Параметры
[in] aNumNode
количество контактов в массиве aNodes
[in] aNodes
массив записей контактов
Возврат
WEAVE_NO_ERROR в случае успеха

Синквисвиссервице

WEAVE_ERROR SyncWithService(
  WeaveConnection *const aConnection
)

синхронизировать, используя данное TCP-соединение и связанное с ним шифрование и идентификатор ключа.

вызывающий абонент должен стать владельцем TCP-соединения после завершения синхронизации. никакой обратный вызов не будет перезаписан для TCP-соединения, поскольку будет создан новый Weave Exchange, а обратные вызовы будут установлены поверх этого контекста и доступны только в состоянии ожидания. недоступно в обратных вызовах.

Подробности
Параметры
[in] aConnection
Указатель на соединение Weave
Возврат
WEAVE_NO_ERROR в случае успеха

Таймсинкноде

 TimeSyncNode(
  void
)

Защищенные функции

Абортонеррор

void AbortOnError(
  const WEAVE_ERROR aCode
)

внутреннее прерывание, если код не WEAVE_NO_ERROR

АвтосинхронизацияNow

void AutoSyncNow(
  void
)

внутренняя функция для запуска сеанса автоматической синхронизации

Коллбакфорсинккомплемент

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
)

вызвать обратный вызов на уровне приложения.

установите для aIsSuccessful значение false, чтобы вызвать обратный вызов ошибки

ClearState

void ClearState(
  void
)

УничтожитьCommContext

bool DestroyCommContext(
  void
)

закройте Weave ExchangeContext

EndLocalSyncAndTryCalculateTimeFix

void EndLocalSyncAndTryCalculateTimeFix(
  void
)

EndServiceSyncAndTryCalculateTimeFix

void EndServiceSyncAndTryCalculateTimeFix(
  void
)

Найтисменный контакт

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

вернуть слот для хранения контактной информации

GetClientStateName

const char *const GetClientStateName(
  void
) const 

GetNextIdleContact

Contact * GetNextIdleContact(
  void
)

получить следующий действительный и свободный контакт для разговора

GetNumNotYetCompletedContacts

int16_t GetNumNotYetCompletedContacts(
  void
)

получить количество действительных контактов, но мы с ними еще не разговаривали.

GetNumReliableResponses

int16_t GetNumReliableResponses(
  void
)

получить количество «надежных» ответов, собранных на данный момент.

позвонили, чтобы определить, собрали ли мы достаточное количество ответов

Инитстате

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

Инвалидатеаллконтактс

void InvalidateAllContacts(
  void
)

аннулировать все местные контакты

ИнвалидатеServiceContact

void InvalidateServiceContact(
  void
)

аннулировать контакт со службой

РегистрацияCommError

void RegisterCommError(
  Contact *const aContact
)

зарегистрировать ошибку связи для определенного контакта и при необходимости сократить период автоматического обнаружения. aContact может иметь значение NULL, чтобы указать, что нам не с кем поговорить, и, следовательно, просто сократить период автоматического обнаружения.

Отправитьсинкрекуест

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

отправьте контакту запрос на одноадресную синхронизацию.

*rIsMessageSent будет установлен для указания того, было ли сообщение отправлено. ошибки связи, такие как недостижимый адрес, не возвращаются, поэтому вызывающая сторона должна проверить как код возврата, так и *rIsMessageSent.

SetAllCompletedContactsToIdle

int16_t SetAllCompletedContactsToIdle(
  void
)

снова сбросьте все завершенные контакты в состояние ожидания, но не трогайте ответ.

это вызывается между двумя раундами связи с одним и тем же узлом

SetAllValidContactsToIdleAndInvalidateResponse

int16_t SetAllValidContactsToIdleAndInvalidateResponse(
  void
)

переведите все действительные локальные контакты в состояние ожидания и очистите ответ.

это вызывается до того, как мы начнем связываться с ними по одному

Сетклиентстате

void SetClientState(
  const ClientState state
)

НастройкаUnicastCommContext

WEAVE_ERROR SetupUnicastCommContext(
  Contact *const aContact
)

создать новый Weave Exchange для одноадресной связи

МагазинУведомлениеКонтакт

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

хранить контактную информацию узла, который только что отправил нам уведомление об изменении времени

UpdateMulticastSyncResponse

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

обрабатывать ответ, возвращающийся из многоадресного запроса

ОбновлениеUnicastSyncResponse

void UpdateUnicastSyncResponse(
  const TimeSyncResponse & aResponse
)

обрабатывать ответ, возвращающийся из одноадресного запроса

_InitClient

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

инициализировать роль Клиента.

Предназначен для внутреннего использования семейством открытых функций Init. Перед возвратом необходимо установить mClientState. недоступно в обратных вызовах

Подробности
Параметры
[in] aEncryptionType
тип шифрования, который будет использоваться для запросов и ответов
[in] aKeyId
идентификатор ключа, который будет использоваться для запросов и ответов
[in] aInitialLikelyhood
начальная вероятность использования на этапе открытия
Возврат
WEAVE_NO_ERROR в случае успеха

_InitServer

WEAVE_ERROR _InitServer(
  const bool aIsAlwaysFresh
)

инициализировать роль Сервера.

Предназначен для внутреннего использования семейством открытых функций Init. Перед возвратом необходимо установить mClientState. недоступно в обратных вызовах

Подробности
Параметры
[in] aIsAlwaysFresh
может быть установлено значение true, чтобы указать, что сервер всегда синхронизируется, за исключением начального ненадежного времени. для координатора должно быть установлено значение false.
Возврат
WEAVE_NO_ERROR в случае успеха

_ShutdownClient

WEAVE_ERROR _ShutdownClient(
  void
)

остановить клиент, недоступный в обратных вызовах.

Подробности
Возврат
WEAVE_NO_ERROR в случае успеха

_ShutdownCoordinator

WEAVE_ERROR _ShutdownCoordinator(
  void
)

остановить координатора, недоступного в обратных вызовах.

Подробности
Возврат
WEAVE_NO_ERROR в случае успеха

_ShutdownServer

WEAVE_ERROR _ShutdownServer(
  void
)

остановить сервер, недоступный в обратных вызовах.

Подробности
Возврат
WEAVE_NO_ERROR в случае успеха

Защищенные статические функции

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
)

Обработка запроса синхронизации

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

обратный вызов от Weave Exchange при поступлении запроса на синхронизацию времени

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
)

ОбработчикUnicastSyncResponse

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
)

обратный вызов от Weave Timer, когда мы прошли ненадежный барьер после загрузки

IsOperationalState

bool IsOperationalState(
  ClientState aState
)

Определить, является ли данное состояние работоспособным.

Удобный метод определения того, обозначает ли ClientState рабочее состояние, т. е. клиент завершил инициализацию и не находится в процессе завершения работы.

Подробности
Параметры
[in] aState
состояние, подлежащее оценке
Возврат
true, если состояние падает после завершения инициализации и до начала завершения работы, в противном случае — false.

_OnSyncSucceeded

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