нл:: Переплетение:: Профили:: Время:: Таймсинкноде
Краткое содержание
Наследование
Наследуется от: 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 | Contact * контекст общения. |
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 { | перечисление текущее состояние этого сервера синхронизации времени |
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) | Contact * вернуть слот для хранения контактной информации |
GetClientStateName (void) const | const char *const |
GetNextIdleContact (void) | Contact * получить следующий действительный и свободный контакт для разговора |
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
м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, чтобы ответ игнорировался при расчете
Подробности | |||||||
---|---|---|---|---|---|---|---|
Параметры |
|
Онсинкрекуестресеиведхандлер
bool(* OnSyncRequestReceivedHandler)(void *const aApp, const WeaveMessageInfo *aMsgInfo, const uint8_t aLikelyhood, const bool aIsTimeCoordinator)
обратный вызов, чтобы указать, что мы только что получили запрос на синхронизацию времени.
Подробности | |||||||||
---|---|---|---|---|---|---|---|---|---|
Параметры |
| ||||||||
Возврат | false, и движок будет игнорировать этот запрос |
Статус ответа
ResponseStatus
статус сохраненного ответа на определенный контакт.
Это общедоступно, потому что контакт общедоступен
состояние сервера
ServerState
текущее состояние этого сервера синхронизации времени
Синкфаиледхандлер
void(* SyncFailedHandler)(void *const aApp, const WEAVE_ERROR aErrorCode)
обратный вызов происходит, когда синхронизация считается неудачной, включая автоматическую синхронизацию.
обратите внимание, что обратный вызов не происходит, если вызывается Abort для остановки синхронизации.
Подробности | |||||
---|---|---|---|---|---|
Параметры |
|
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, чтобы ответ игнорировался при расчете.
Подробности | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Параметры |
| ||||||||||
Возврат | true, если это смещение будет использоваться для настройки системного времени. если aNumContributor равен 0, возвращаемое значение будет игнорироваться. |
Обработчик TimeChangeNotificationHandler
void(* TimeChangeNotificationHandler)(void *const aApp, const uint64_t aNodeId, const IPAddress &aNodeAddr)
обратный вызов, чтобы указать, что мы только что получили уведомление об изменении времени.
если включен режим автоматической синхронизации, синхронизация времени будет запланирована автоматически вскоре после этого обратного вызова. в противном случае уровень приложения может выбрать вызов семейства функций Sync, чтобы напрямую запустить операцию синхронизации, не ограниченную обычным правилом «недоступно в обратном вызове». однако следует отметить, что этот специальный обратный вызов все еще находится на вершине стека обратного вызова уровня обмена Weave.
Подробности | |||||||
---|---|---|---|---|---|---|---|
Параметры |
|
Публичные атрибуты
Фильтртимекорректионконтрибутор
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 )
включить автоматическую синхронизацию.
доступен только в режиме ожидания. открытие происходит сразу. недоступно в обратных вызовах.
Подробности | |||||||
---|---|---|---|---|---|---|---|
Параметры |
| ||||||
Возврат | WEAVE_NO_ERROR в случае успеха |
GetCapacityOfContactList
int GetCapacityOfContactList( void ) const
простой метод получения максимального количества контактов, на хранение которого настроен этот движок
GetNext Вероятность
int8_t GetNextLikelihood( void ) const
извлечь вероятность настойчивости.
результат будет действительным только после завершения операции синхронизации в рамках обратных вызовов OnSyncSucceeded и OnSyncFailed. в противном случае оно является временным и может быть текущим значением вероятности, а не следующим, которое будет использоваться.
Подробности | |
---|---|
Возврат | вероятность того, что ответ будет использован в следующем запросе |
ИнитКлиент
WEAVE_ERROR InitClient( void *const aApp, WeaveExchangeManager *aExchangeMgr, const uint8_t aEncryptionType, const uint16_t aKeyId, const int8_t 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 )
инициализировать этот координатор.
Подробности | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Параметры |
| ||||||||||||
Возврат | WEAVE_NO_ERROR в случае успеха |
Инитсервер
WEAVE_ERROR InitServer( void *const aApp, WeaveExchangeManager *const aExchangeMgr, const bool aIsAlwaysFresh )
Initialize для роли сервера должна вызываться как первая функция после создания объекта, если предполагается, что он будет сервером синхронизации времени.
недоступно в обратных вызовах
Подробности | |||||||
---|---|---|---|---|---|---|---|
Параметры |
| ||||||
Возврат | WEAVE_NO_ERROR в случае успеха |
MulticastTimeChangeNotification
void MulticastTimeChangeNotification( const uint8_t aEncryptionType, const uint16_t aKeyId ) const
Вызывается более высоким уровнем для уведомления об изменении времени многоадресной рассылки.
недоступно в обратных вызовах.
Подробности | |||||
---|---|---|---|---|---|
Параметры |
|
РегистрацияКорректионФромСерверОрНтп
void RegisterCorrectionFromServerOrNtp( void )
Вызывается более высоким уровнем, чтобы указать, что мы только что завершили синхронизацию времени либо с любым сервером, либо с помощью каких-либо надежных средств, таких как NTP.
Регистрациялокалсинкоператион
void RegisterLocalSyncOperation( const uint8_t aNumContributor )
Вызывается более высоким уровнем, чтобы указать, что мы только что завершили синхронизацию времени с другими локальными координаторами.
Подробности | |||
---|---|---|---|
Параметры |
|
Неисправность
WEAVE_ERROR Shutdown( void )
остановить службу, какую бы роль она ни играла.
Эту функцию необходимо вызвать для правильного освобождения выделенных ресурсов, прежде чем можно будет выполнить еще один вызов любой из функций инициализации. недоступно в обратных вызовах.
Подробности | |
---|---|
Возврат | WEAVE_NO_ERROR в случае успеха |
Синхронизировать
WEAVE_ERROR Sync( const bool aForceDiscoverAgain )
синхронизировать с использованием существующих контактов.
операция синхронизации может завершиться неудачей, если нет доступных действительных контактов. установите для aForceDiscoverAgain значение true, чтобы принудительно выполнить обнаружение немедленно. доступен только в режиме ожидания. недоступно в обратных вызовах.
Подробности | |||
---|---|---|---|
Параметры |
| ||
Возврат | WEAVE_NO_ERROR в случае успеха |
Синхронизация с узлами
WEAVE_ERROR SyncWithNodes( const int16_t aNumNode, const ServingNode aNodes[] )
синхронизировать, используя данный список контактов.
существующий список контактов будет очищен. доступен только в режиме ожидания. недоступно в обратных вызовах.
Подробности | |||||
---|---|---|---|---|---|
Параметры |
| ||||
Возврат | WEAVE_NO_ERROR в случае успеха |
Синквисвиссервице
WEAVE_ERROR SyncWithService( WeaveConnection *const aConnection )
синхронизировать, используя данное TCP-соединение и связанное с ним шифрование и идентификатор ключа.
вызывающий абонент должен стать владельцем TCP-соединения после завершения синхронизации. никакой обратный вызов не будет перезаписан для TCP-соединения, поскольку будет создан новый Weave Exchange, а обратные вызовы будут установлены поверх этого контекста и доступны только в состоянии ожидания. недоступно в обратных вызовах.
Подробности | |||
---|---|---|---|
Параметры |
| ||
Возврат | 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 )
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. недоступно в обратных вызовах
Подробности | |||||||
---|---|---|---|---|---|---|---|
Параметры |
| ||||||
Возврат | WEAVE_NO_ERROR в случае успеха |
_InitServer
WEAVE_ERROR _InitServer( const bool aIsAlwaysFresh )
инициализировать роль Сервера.
Предназначен для внутреннего использования семейством открытых функций Init. Перед возвратом необходимо установить mClientState. недоступно в обратных вызовах
Подробности | |||
---|---|---|---|
Параметры |
| ||
Возврат | 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 рабочее состояние, т. е. клиент завершил инициализацию и не находится в процессе завершения работы.
Подробности | |||
---|---|---|---|
Параметры |
| ||
Возврат | 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 )