Google は、黒人コミュニティのための人種的公平の促進に取り組んでいます。詳細をご覧ください。

nl ::織り::プロファイル::時間:: TimeSyncNode

概要

継承

継承: NL ::織り::プロファイル::時間:: _ 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列挙型
このTimeSyncクライアントの現在の状態
CommState列挙型
特定の連絡先への通信のステータス。
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列挙型
特定の連絡先に対する保存された応答のステータス。
ServerState {
kServerState_UnreliableAfterBoot ,
kServerState_Idle
}
列挙型
このTimeSyncServerの現在の状態
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
織り閉じ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
時間同期リクエストが到着したときのWeaveExchangeからのコールバック
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
ブートバリアの後に信頼性の低いものを通過したときのウィーブタイマーからのコールバック
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

このTimeSyncクライアントの現在の状態

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
A WeaveMessageInfo差出人に関する情報を含む受信した時刻同期要求に関する情報を含みます。
[in] aLikelyhood
発信者の要求に応じた応答の可能性
[in] aIsTimeCoordinator
発信元ノードがTimeSyncCoordinatorの場合はtrue
戻り値
falseであり、エンジンはこの要求を無視します

ResponseStatus

 ResponseStatus

特定の連絡先への保存された応答のステータス。

これは、公共の場である連絡先が公共の場です

ServerState

 ServerState

このTimeSyncServerの現在の状態

プロパティ
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ファミリの関数を呼び出して、通常のコールバックで使用できないルールによって制限されていない同期操作を直接開始することを選択できます。ただし、この特別なコールバックは、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接続。

m連絡先

Contact mContacts[WEAVE_CONFIG_TIME_CLIENT_MAX_NUM_CONTACTS]

連絡先の情報を発見を通して学びました。

mIsAlwaysFresh

bool mIsAlwaysFresh

mIsInCallback

bool mIsInCallback

上位層へのコールバック中の場合はtrue

mLastLikelihood が送信されました

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
)

エンジンを強制的にアイドル状態に戻し、実行中の処理をすべて中止します。

同期の成功または失敗は呼び出されないことに注意してください。すべてのウィーブエクスチェンジは閉鎖されます。 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のコールバック内で、同期操作が完了した後にのみ有効になります。それ以外の場合は一時的なものであり、次に使用される可能性ではなく、現在の可能性である可能性があります。

詳細
戻り値
次のリクエストで使用される応答の可能性

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
システム全体のWeaveExchangeManagerオブジェクトへのポインタ
[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
システム全体のWeaveExchangeManagerオブジェクトへのポインタ
[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
)

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

コールバックでは利用できません

詳細
パラメーター
[in] aApp
上位層へのコールバックで使用される、上位層データへのポインター。
[in] aExchangeMgr
システム全体のWeaveExchangeManagerオブジェクトへのポインタ
[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 接続の所有権を取得する必要があります。新しいWeaveExchangeが作成され、そのコンテキストの上に設定されたコールバックはアイドル状態でのみ使用できるため、TCP接続のコールバックは上書きされません。コールバックでは使用できません。

詳細
パラメーター
[in] aConnection
織り接続へのポインタ
戻り値
成功した場合の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
)

織り閉じ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
)

これまでに収集された「信頼できる」応答の数を取得します。

十分な数の回答を収集したかどうかを判断するために呼び出されました

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つずつ連絡を取り始める前に呼び出されます

SetClientState

void SetClientState(
  const ClientState state
)

SetupUnicastCommContext

WEAVE_ERROR SetupUnicastCommContext(
  Contact *const aContact
)

ユニキャスト通信用の新しいWeaveExchangeを作成する

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
)

時間同期リクエストが到着したときのWeaveExchangeからのコールバック

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
)

ブートバリアの後に信頼性の低いものを通過したときのウィーブタイマーからのコールバック

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
)