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

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

概要

パブリックタイプ

ClientState {
kClientState_Idle ,
kClientState_Sync_1 ,
kClientState_Sync_2
}
列挙型
このTimeSyncクライアントの現在の状態
SyncCompletionHandler )(void *const aApp, const WEAVE_ERROR aErrorCode, const timesync_t aCorrectedSystemTime) typedef
void(*
両方の時刻同期の試行が完了した後のコールバック。
TimeChangeNotificationHandler )(void *const aApp, ExchangeContext *aEC) typedef
void(*
時間変更通知を受け取ったことを示すコールバック。

保護された型

@324列挙型

パブリック属性

OnTimeChangeNotificationReceived

保護された属性

mApp
void *
mBinding
mClientState
mExchangeContext
mExchangeMgr
mFlightTime_usec
int32_t
片道飛行時間を保存するために使用されます。
mIsInCallback
bool
mOnSyncCompleted
mRegisterSyncResult_usec
timesync_t
結果が登録されたときにタイムスタンプを保存するために使用されます
mRemoteTimestamp_usec
timesync_t
応答メッセージが送信されようとしていたときに、リモート ノードのシステム時刻を保存するために使用されます。
mUnadjTimestampLastSent_usec
timesync_t

公の行事

Abort (void)
void
現在の時刻同期操作を中止します。
GetClientState (void) const
このクライアントの現在の状態を取得します。
Init (void *const aApp, WeaveExchangeManager *const aExchangeMgr)
このクライアントを初期化します。
Sync ( Binding *const aBinding, SyncCompletionHandler OnSyncCompleted)
同期は、所与の用いて結合して提供ポインタを使用してコールバックを行います。

保護された機能

EnterSync2 (void)
void
FinalProcessing (void)
void
GetClientStateName (void) const
const char *
InvalidateRegisteredResult (void)
void
時間修正のために登録された情報を無効にします。
IsRegisteredResultValid (void)
bool
時間補正の登録情報が有効か確認してください。
OnResponseTimeout (void)
void
OnSyncResponse (uint32_t aProfileId, uint8_t aMsgType, PacketBuffer *aPayload)
void
ProceedToNextState (void)
void
RegisterSyncResultIfNewOrBetter (const timesync_t aNow_usec, const timesync_t aRemoteTimestamp_usec, const int32_t aFlightTime_usec)
void
SendSyncRequest (void)
SetClientState (const ClientState state)
void
_AbortWithCallback (const WEAVE_ERROR aErrorCode)
void

保護された静的関数

HandleResponseTimeout ( ExchangeContext *aEC)
void
HandleSyncResponse ( ExchangeContext *aEC, const IPPacketInfo *aPktInfo, const WeaveMessageInfo *aMsgInfo, uint32_t aProfileId, uint8_t aMsgType, PacketBuffer *aPayload)
void
HandleTimeChangeNotification ( ExchangeContext *aEC, const IPPacketInfo *aPktInfo, const WeaveMessageInfo *aMsgInfo, uint32_t aProfileId, uint8_t aMsgType, PacketBuffer *aPayload)
void

パブリックタイプ

ClientState

 ClientState

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

プロパティ
kClientState_Idle

初期化され、時間変更通知を待機していますが、実際の時間同期操作は発生していません。

kClientState_Sync_1

初めての同期試行に取り組んでいます。

kClientState_Sync_2

2 回目の同期試行に取り組んでいます。

SyncCompletionHandler

void(* SyncCompletionHandler)(void *const aApp, const WEAVE_ERROR aErrorCode, const timesync_t aCorrectedSystemTime)

両方の時刻同期の試行が完了した後のコールバック。

aErrorCodeがWEAVE_NO_ERRORの場合、少なくとも1回の試行が成功しています。それ以外の場合、aErrorCodeで両方が失敗した場合は、最新の失敗を示します。

詳細
パラメーター
[in] aApp
Initで設定されたアプリレイヤーデータへのポインター。
[in] aErrorCode
WEAVE_NO_ERROR少なくとも1回の同期操作が成功した場合
[in] aCorrectedSystemTime
aErrorCodeがある場合にのみ有効WEAVE_NO_ERRORは、

TimeChangeNotificationHandler

void(* TimeChangeNotificationHandler)(void *const aApp, ExchangeContext *aEC)

時間変更通知を受け取ったことを示すコールバック。

でNULLに設定初期化。設定されていない場合、時間変更通知は無視されます。アプリ層は、このコールバックで中止と同期を呼び出すことができます。

詳細
パラメーター
[in] aApp
Initで設定されたアプリレイヤーデータへのポインター。
[in] aEC
この着信メッセージに使用されるExchangeコンテキスト。これは、その信頼性を検証するために使用できます。

保護された型

@ 324

 @324

パブリック属性

OnTimeChangeNotificationReceived

TimeChangeNotificationHandler OnTimeChangeNotificationReceived

保護された属性

mApp

void * mApp

mBinding

Binding * mBinding

mClientState

ClientState mClientState

mExchangeContext

ExchangeContext * mExchangeContext

mExchangeMgr

WeaveExchangeManager * mExchangeMgr

mFlightTime_usec

int32_t mFlightTime_usec

片道飛行時間を保存するために使用されます。

mIsInCallback

bool mIsInCallback

mOnSyncCompleted

SyncCompletionHandler mOnSyncCompleted

mRegisterSyncResult_usec

timesync_t mRegisterSyncResult_usec

結果が登録されたときにタイムスタンプを保存するために使用されます

mRemoteTimestamp_usec

timesync_t mRemoteTimestamp_usec

応答メッセージが送信されようとしたときに、リモートノードのシステム時刻を保存するために使用されます

mUnadjTimestampLastSent_usec

timesync_t mUnadjTimestampLastSent_usec

公の行事

アボート

void Abort(
  void
)

現在の時刻同期操作を中止します。

リリースバインディング。アクティブな交換を中止します。アイドル状態に戻ります。

GetClientState

ClientState GetClientState(
  void
) const 

このクライアントの現在の状態を取得します。

詳細
戻り値
現在の状態

初期化

WEAVE_ERROR Init(
  void *const aApp,
  WeaveExchangeManager *const aExchangeMgr
)

このクライアントを初期化します。

他の関数を使用する前に呼び出す必要があります。ゼロ/ NULLはすべての内部データを初期化し、時間変更通知に登録します。

詳細
パラメーター
[in] aApp
上位層へのコールバックで使用される、上位層データへのポインター。
[in] aExchangeMgr
時間変更通知メッセージハンドラーの登録に使用されるExchangeManagerへのポインター
戻り値
成功した場合のWEAVE_NO_ERROR

同期

WEAVE_ERROR Sync(
  Binding *const aBinding,
  SyncCompletionHandler OnSyncCompleted
)

同期は、所与の用いて結合して提供ポインタを使用してコールバックを行います。

時間同期操作が実行されている場合、コールバックが行われずに暗黙的に中止されます。コールバックOnSyncCompletedでは使用できませんが、OnTimeChangeNotificationReceivedでは使用できます。エラーの場合、この関数から戻る前にAbortが暗黙的に呼び出されます。

詳細
パラメーター
[in] aBinding
バインディングタイムサーバとの接触に使用されます
[in] OnSyncCompleted
時刻同期操作完了後に使用するコールバック機能
戻り値
WEAVE_NO_ERROR成功した場合に

保護された機能

EnterSync2

void EnterSync2(
  void
)

FinalProcessing

void FinalProcessing(
  void
)

GetClientStateName

const char * GetClientStateName(
  void
) const 

InvalidateRegisteredResult

void InvalidateRegisteredResult(
  void
)

時間修正のために登録された情報を無効にします。

IsRegisteredResultValid

bool IsRegisteredResultValid(
  void
)

登録した時刻修正情報が正しいか確認してください。

OnResponseTimeout

void OnResponseTimeout(
  void
)

OnSyncResponse

void OnSyncResponse(
  uint32_t aProfileId,
  uint8_t aMsgType,
  PacketBuffer *aPayload
)

ProceedToNextState

void ProceedToNextState(
  void
)

RegisterSyncResultIfNewOrBetter

void RegisterSyncResultIfNewOrBetter(
  const timesync_t aNow_usec,
  const timesync_t aRemoteTimestamp_usec,
  const int32_t aFlightTime_usec
)

SendSyncRequest

WEAVE_ERROR SendSyncRequest(
  void
)

SetClientState

void SetClientState(
  const ClientState state
)

_AbortWithCallback

void _AbortWithCallback(
  const WEAVE_ERROR aErrorCode
)

保護された静的関数

HandleResponseTimeout

void HandleResponseTimeout(
  ExchangeContext *aEC
)

HandleSyncResponse

void HandleSyncResponse(
  ExchangeContext *aEC,
  const IPPacketInfo *aPktInfo,
  const WeaveMessageInfo *aMsgInfo,
  uint32_t aProfileId,
  uint8_t aMsgType,
  PacketBuffer *aPayload
)

HandleTimeChangeNotification

void HandleTimeChangeNotification(
  ExchangeContext *aEC,
  const IPPacketInfo *aPktInfo,
  const WeaveMessageInfo *aMsgInfo,
  uint32_t aProfileId,
  uint8_t aMsgType,
  PacketBuffer *aPayload
)