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

概要

継承

継承元: 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 enum
この時刻同期クライアントの現在の状態
CommState enum
特定の連絡先への連絡状況を確認できます。
ContributorFilter)(void *const aApp, Contact aContact[], const int aSize) typedef
void(*
コールバックは、レスポンスから時刻修正を計算する直前に行われます。
OnSyncRequestReceivedHandler)(void *const aApp, const WeaveMessageInfo *aMsgInfo, const uint8_t aLikelyhood, const bool aIsTimeCoordinator) typedef
bool(*
が時刻同期リクエストを受信したことを通知するコールバックです。
ResponseStatus enum
特定の連絡先に対する保存済み回答のステータスです。
ServerState{
  kServerState_UnreliableAfterBoot,
  kServerState_Idle
}
enum
この時刻同期サーバーの現在の状態を
SyncFailedHandler)(void *const aApp, const WEAVE_ERROR aErrorCode) typedef
void(*
自動同期を含め、同期が失敗したと見なされると、コールバックが発生します。
SyncSucceededHandler)(void *const aApp, const timesync_t aOffsetUsec, const bool aIsReliable, const bool aIsServer, const uint8_t aNumContributor) typedef
bool(*
同期(自動同期を含む)が成功したと見なされた後、結果が適用される前にコールバックが発生します。
TimeChangeNotificationHandler)(void *const aApp, const uint64_t aNodeId, const IPAddress &aNodeAddr) typedef
void(*
コールバックは、時刻変更通知を受け取ったことを示します。

パブリック属性

FilterTimeCorrectionContributor
OnSyncFailed
OnSyncRequestReceived
設定しない場合、デフォルトの実装は常に true を返します。
OnSyncSucceeded
設定されていない場合、デフォルトの動作では、ごくわずかなサーバー修正を除き、すべての結果が取得されます。
OnTimeChangeNotificationReceived
mEncryptionType
uint8_t
暗号化方式を採用しているので、
mKeyId
uint16_t
ローカル通信に使用される鍵 ID

プロテクト属性

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)
時刻同期サーバーを意図している場合、サーバー ロールの 初期化は、オブジェクト構築後の最初の関数として呼び出す必要があります。
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 接続および関連する暗号化と鍵 ID を使用して同期を実行します。

プロテクト関数

AbortOnError(const WEAVE_ERROR aCode)
void
aCode が 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
「reliable」または「reliable」と回答が表示されます。
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 タイマーからのコールバック
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

コンテキストです。

mExchangeContext

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

 ClientState

この時刻同期クライアントの現在の状態

CommState

 CommState

特定の連絡先への連絡状況を確認できます。

連絡先は一般公開されているため、これは一般公開されています

ContributorFilter

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

コールバックは、レスポンスから時刻修正を計算する直前に行われます。

アプリケーション レイヤが aContact[i].mResponseStatus を kResponseStatus_Invalid に上書きして、レスポンスが計算で無視されるようにできる

詳細
パラメータ
[in] aApp
アプリレイヤ データへのポインタ。Init で設定します。
[in] aContact
連絡先とレスポンス ステータスの配列
[in] aSize
aContact 配列内のレコード数

OnSyncRequestReceivedHandler

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
発信元ノードが Time Sync Coordinator の場合は true
戻り値
false の場合、エンジンはこのリクエストを無視します

ResponseStatus

 ResponseStatus

特定の連絡先に対する保存済み回答のステータスです。

連絡先は一般公開されているため、これは一般公開されています

ServerState

 ServerState

この時刻同期サーバーの現在の状態を

プロパティ
kServerState_Idle

サーバーが通常の設定でリクエストに応答する準備ができている

kServerState_UnreliableAfterBoot

サーバーが他の手段でシステム時刻を同期するために予約される時間。Init が呼び出されたときに aIsAlwaysFresh が true である場合にのみ意味がある

SyncFailedHandler

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
usec での修正量
[in] aIsReliable
組み込みロジックによって信頼性が高いと
[in] aIsServer
修正はサーバーからのものですか?
[in] aNumContributor
調整の要因となったノード数。0 は、同期オペレーションの結果がないことを意味します。
戻り値
このオフセットを使用してシステム時刻を調整する必要がある場合は true を返します。aNumContributor が 0 の場合、戻り値は無視されます。

TimeChangeNotificationHandler

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

コールバックは、時刻変更通知を受け取ったことを通知します。

自動同期モードが有効になっている場合は、このコールバックの直後に時刻の同期が自動的にスケジュール設定されます。それ以外の場合、アプリケーション レイヤは Sync 関数ファミリーを呼び出すことで、通常の not-available-in-call-back ルールによって制限されない同期オペレーションを直接開始できます。ただし、この特別なコールバックは、Weave エクスチェンジ レイヤのコールバック スタックの一番上にあることに留意する必要があります。

詳細
パラメータ
[in] aApp
アプリレイヤ データへのポインタ。Init で設定します。
[in] aNodeId
リクエストしているノード ID
[in] aNodeAddr
リクエストしているノードアドレス

パブリック属性

FilterTimeCorrectionContributor

ContributorFilter FilterTimeCorrectionContributor

OnSyncFailed

SyncFailedHandler OnSyncFailed

OnSyncRequestReceived

OnSyncRequestReceivedHandler OnSyncRequestReceived

設定しない場合、デフォルトの実装は常に true を返します。

OnSyncSucceeded

SyncSucceededHandler OnSyncSucceeded

設定されていない場合、デフォルトの動作では、ごくわずかなサーバー修正を除き、すべての結果が取得されます。

OnTimeChangeNotificationReceived

TimeChangeNotificationHandler OnTimeChangeNotificationReceived

mEncryptionType

uint8_t mEncryptionType

暗号化方式を採用しているので、

mKeyId

uint16_t mKeyId

ローカル通信に使用される鍵 ID

プロテクト属性

mApp

void * mApp

上位レイヤデータへのポインタ

mClientState

ClientState mClientState

mConnectionToService

WeaveConnection * mConnectionToService

サービスとの通信に使用される TCP 接続。

mContacts

Contact mContacts[WEAVE_CONFIG_TIME_CLIENT_MAX_NUM_CONTACTS]

調査を通じて判明した連絡先情報。

mIsAlwaysFresh

bool mIsAlwaysFresh

mIsInCallback

bool mIsInCallback

上位レイヤへのコールバック内にいる場合は true

mLastLikelihoodSent

int8_t mLastLikelihoodSent

mNumContributorInLastLocalSync

uint8_t mNumContributorInLastLocalSync

mRole

TimeSyncRole mRole

このノードの実際のロール。

mServerState

ServerState mServerState

mServiceContact

Contact mServiceContact

mTimestampLastCorrectionFromServerOrNtp_usec

timesync_t mTimestampLastCorrectionFromServerOrNtp_usec

スリープ時間の補正が必要なため、起動時間にする必要があることに注意してください。

mTimestampLastLocalSync_usec

timesync_t mTimestampLastLocalSync_usec

スリープ時間の補正が必要なため、起動時間にする必要があることに注意してください。

パブリック関数

中止

WEAVE_ERROR Abort(
  void
)

エンジンを強制的にアイドル状態に戻し、その動作を中断します。

同期の成功または失敗は呼び出されません。すべての Weave 交換がクローズされます。TCP 接続については、これ以上触れることはできません。アイドル状態の場合は何もしませんコールバックでは使用できません。

詳細
戻り値
成功時の WEAVE_NO_ERROR

DisableAutoSync

void DisableAutoSync(
  void
)

自動同期を無効にします。

アイドル状態でのみ利用可能です。コールバックでは使用できません。

EnableAutoSync

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 

このエンジンが保存するように設定されている連絡先の最大数を示すシンプルなゲッター

GetClientState

ClientState GetClientState(
  void
) const 

クライアント状態のシンプルなゲッター

GetNextLikelihood

int8_t GetNextLikelihood(
  void
) const 

永続化する可能性を抽出できます。

結果は、同期オペレーションが完了した後で、OnSyncSucceeded と OnSyncFailed のコールバック内でのみ有効になります。それ以外の場合は一時的なものであり、次に使用される可能性ではなく、現在の Likelihood である可能性があります。

詳細
戻り値
次のリクエストでレスポンスが使用される可能性

GetServerState

ServerState GetServerState(
  void
) const 

サーバーの状態を取得するシンプルなゲッター

InitClient

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
リクエストとレスポンスに使用される鍵 ID
[in] aInitialLikelyhood
検出ステージに使用される可能性の初期
戻り値
成功時の WEAVE_NO_ERROR

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
)

このコーディネーターを初期化します。

詳細
パラメータ
[in] aExchangeMgr
システム全体の Weave Exchange Manager オブジェクトへのポインタ
[in] aEncryptionType
リクエストとレスポンスに使用する暗号化タイプ
[in] aKeyId
リクエストとレスポンスに使用される鍵 ID
[in] aSyncPeriod_msec
同期間隔(ミリ秒)
[in] aNominalDiscoveryPeriod_msec
検出間の最短時間(ミリ秒)(通信エラーが確認されない場合)
[in] aShortestDiscoveryPeriod_msec
検出間の最小ミリ秒数(通信エラーが確認された場合)
戻り値
成功時の WEAVE_NO_ERROR

InitServer

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

時刻同期サーバーを意図している場合、サーバー ロールの 初期化は、オブジェクト構築後の最初の関数として呼び出す必要があります。

コールバックでは利用不可

詳細
パラメータ
[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
この通知に使用する鍵 ID

RegisterCorrectionFromServerOrNtp

void RegisterCorrectionFromServerOrNtp(
  void
)

任意のサーバーまたは NTP などの信頼できる手段による一定の時間同期を完了したことを示すために、上位レイヤから呼び出されます。

RegisterLocalSyncOperation

void RegisterLocalSyncOperation(
  const uint8_t aNumContributor
)

他のローカル コーディネーターとのラウンド タイムの同期が完了したことを示すために、上位レイヤから呼び出されます。

詳細
パラメータ
[in] aNumContributor
この時刻同期に貢献したコーディネーターの数

シャットダウン

WEAVE_ERROR Shutdown(
  void
)

サービスを停止する必要はありません。

この関数を呼び出して、割り当てられたリソースを適切に回収してから、init 関数を再度呼び出す必要があります。コールバックでは使用できません。

詳細
戻り値
成功時の WEAVE_NO_ERROR

同期

WEAVE_ERROR Sync(
  const bool aForceDiscoverAgain
)

既存の連絡先を使用して同期できます。

有効な連絡先がない場合、同期オペレーションが失敗する可能性があります。直ちに検出を強制的に適用するには、aForceDiscoverAgain を true に設定します。アイドル状態でのみ利用可能です。コールバックでは使用できません。

詳細
パラメータ
[in] aForceDiscoverAgain
既存のすべての連絡先をフラッシュして検出オペレーションを実行する場合は true
戻り値
成功時の WEAVE_NO_ERROR

SyncWithNodes

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

指定した連絡先リストを使用して同期します。

既存の連絡先リストがフラッシュされますアイドル状態でのみ利用可能です。コールバックでは使用できません。

詳細
パラメータ
[in] aNumNode
配列 aNodes 内の連絡先の数
[in] aNodes
連絡先レコードの配列
戻り値
成功時の WEAVE_NO_ERROR

SyncWithService

WEAVE_ERROR SyncWithService(
  WeaveConnection *const aConnection
)

指定された TCP 接続および関連する暗号化と鍵 ID を使用して同期を実行します。

同期の完了後、呼び出し元は TCP 接続の所有権を取得する必要があります。TCP 接続のコールバックは上書きされません。新しい Weave Exchange が作成され、そのコンテキストの上で設定されたコールバックはアイドル状態でのみ利用可能になるためです。コールバックでは使用できません。

詳細
パラメータ
[in] aConnection
Weave 接続へのポインタ
戻り値
成功時の WEAVE_NO_ERROR

TimeSyncNode

 TimeSyncNode(
  void
)

プロテクト関数

AbortOnError

void AbortOnError(
  const WEAVE_ERROR aCode
)

aCode が WEAVE_NO_ERROR でない場合の内部中止

AutoSyncNow

void AutoSyncNow(
  void
)

自動同期セッションを開始する内部関数

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
)

アプリケーション レイヤへのコールバックを誘導します。

aIsSuccessful を false に設定して、エラー コールバックを発生させる

ClearState

void ClearState(
  void
)

DestroyCommContext

bool DestroyCommContext(
  void
)

Weave の ExchangeContext を閉じる

EndLocalSyncAndTryCalculateTimeFix

void EndLocalSyncAndTryCalculateTimeFix(
  void
)

EndServiceSyncAndTryCalculateTimeFix

void EndServiceSyncAndTryCalculateTimeFix(
  void
)

FindReplaceableContact

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
)

「reliable」または「reliable」と回答が表示されます。

が呼び出され、十分な数のレスポンスが収集されたかどうかが判断されます。

InitState

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

InvalidateAllContacts

void InvalidateAllContacts(
  void
)

すべてのローカル連絡先を無効にする

InvalidateServiceContact

void InvalidateServiceContact(
  void
)

サービスへの接続を無効にする

RegisterCommError

void RegisterCommError(
  Contact *const aContact
)

特定の連絡先の通信エラーを登録し、必要に応じて自動検出期間を短縮する aContact を NULL に設定して、会話する相手がいないことを示すことができるため、自動検出期間を短縮できる

SendSyncRequest

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

連絡先にユニキャスト同期リクエストを送信します。

*rIsMessageSent は、メッセージが送信されたかどうかを示すために設定されます。アドレス到達不能などの通信エラーが返されないため、呼び出し元は戻りコードと *rIsMessageSent の両方を確認する必要があります。

SetAllCompletedContactsToIdle

int16_t SetAllCompletedContactsToIdle(
  void
)

完了したすべての連絡先を再びアイドル状態にリセットします。ただし、応答には触れません。

これは、同じノードへの 2 回の通信ラウンド間で呼び出されます。

SetAllValidContactsToIdleAndInvalidateResponse

int16_t SetAllValidContactsToIdleAndInvalidateResponse(
  void
)

すべての有効なローカル連絡先をアイドル状態に設定し、レスポンスを消去します。

1 対 1 の連絡が開始される前に呼び出されます

SetClientState

void SetClientState(
  const ClientState state
)

SetupUnicastCommContext

WEAVE_ERROR SetupUnicastCommContext(
  Contact *const aContact
)

ユニキャスト通信用の新しい Weave Exchange を作成します

StoreNotifyingContact

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

時刻変更通知を送信したノードの連絡先情報を保存する

UpdateMulticastSyncResponse

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

マルチキャスト リクエストから返されるレスポンスを処理する

UpdateUnicastSyncResponse

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
リクエストとレスポンスに使用される鍵 ID
[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
)

HandleSyncRequest

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
)

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
)

不安定な起動後のバリアを通過したときの Weave タイマーからのコールバック

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
)