nl::Weave::Profiles::Time::SingleSourceTimeSyncClient

Özet

Herkese açık türler

ClientState{
  kClientState_Idle,
  kClientState_Sync_1,
  kClientState_Sync_2
}
enum
bu Zaman Senkronizasyonu İstemcisinin mevcut durumu
SyncCompletionHandler)(void *const aApp, const WEAVE_ERROR aErrorCode, const timesync_t aCorrectedSystemTime) typedef
void(*
Her iki zaman senkronizasyonu denemesi de tamamlandıktan sonra geri arama.
TimeChangeNotificationHandler)(void *const aApp, ExchangeContext *aEC) typedef
void(*
Kısa süre önce bir Zaman Değişikliği Bildirimi aldığımızı belirtmek için geri arama.

Korumalı türler

@324 enum

Herkese açık özellikler

OnTimeChangeNotificationReceived

Korunan özellikler

mApp
void *
mBinding
mClientState
mExchangeContext
mExchangeMgr
mFlightTime_usec
int32_t
tek yön uçuş süresini depolamak için kullanılır.
mIsInCallback
bool
mOnSyncCompleted
mRegisterSyncResult_usec
timesync_t
Bir sonuç kaydedildiğinde Zaman Damgası depolamak için kullanılır
mRemoteTimestamp_usec
timesync_t
yanıt mesajı gönderilmek üzereyken uzak düğümün sistem saatini depolamak için kullanılır
mUnadjTimestampLastSent_usec
timesync_t

Herkese açık işlevler

Abort(void)
void
Geçerli zaman senkronizasyonu işlemini iptal et.
GetClientState(void) const
Bu istemcinin mevcut durumunu al.
Init(void *const aApp, WeaveExchangeManager *const aExchangeMgr)
Bu istemciyi başlatın.
Sync(Binding *const aBinding, SyncCompletionHandler OnSyncCompleted)
Belirtilen Bağlama'yı kullanarak senkronize edin ve sağlanan işaretçiyi kullanarak geri arama yapar.

Korunan işlevler

EnterSync2(void)
void
FinalProcessing(void)
void
GetClientStateName(void) const
const char *
InvalidateRegisteredResult(void)
void
Zaman düzeltmesi için kayıtlı bilgileri geçersiz kılın.
IsRegisteredResultValid(void)
bool
Zaman düzeltmesi için kaydedilen bilgilerin geçerli olup olmadığını kontrol edin.
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

Korunan statik işlevler

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

Herkese açık türler

ClientState

 ClientState

bu Zaman Senkronizasyonu İstemcisinin mevcut durumu

Özellikler
kClientState_Idle

Başlatıldı, Zaman Değişikliği Bildirimi bekleniyor, ancak gerçek bir zaman senkronizasyonu işlemi yok.

kClientState_Sync_1

İlk senkronizasyon denemesi üzerinde çalışılıyor.

kClientState_Sync_2

İkinci senkronizasyon denemesi üzerinde çalışılıyor.

SyncCompletionHandler

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

Her iki zaman senkronizasyonu denemesi de tamamlandıktan sonra geri arama.

aErrorCode WEAVE_NO_ERROR ise en az bir deneme başarılı olmuş demektir. Aksi takdirde her ikisi de aErrorCode'da başarısız olduysa en son hatayı belirtir.

Ayrıntılar
Parametreler
[in] aApp
Init'te ayarlanmış uygulama katmanı verilerine işaret eden bir işaret.
[in] aErrorCode
En az bir zaman senkronizasyon işlemi başarılı olursa WEAVE_NO_ERROR
[in] aCorrectedSystemTime
Yalnızca aErrorCode WEAVE_NO_ERROR ise geçerlidir

TimeChangeNotificationHandler

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

Kısa süre önce bir Zaman Değişikliği Bildirimi aldığımızı belirtmek için geri arama.

Init'da NULL değerine ayarlayın. Ayarlanmazsa Zaman Değişikliği Bildirimi yoksayılır. Uygulama katmanının bu geri çağırmada İptal ve Senkronize Et işlevini çağırmasına izin veriliyor.

Ayrıntılar
Parametreler
[in] aApp
Init'te ayarlanmış uygulama katmanı verilerine işaret eden bir işaret.
[in] aEC
Bu gelen mesaj için kullanılan ve mesajın özgünlüğünü doğrulamak için kullanılabilen bağlam bilgisi

Korumalı türler

@324

 @324

Herkese açık özellikler

OnTimeChangeNotificationReceived

TimeChangeNotificationHandler OnTimeChangeNotificationReceived

Korunan özellikler

mApp

void * mApp

mBinding

Binding * mBinding

mClientState

ClientState mClientState

mExchangeContext

ExchangeContext * mExchangeContext

mExchangeMgr

WeaveExchangeManager * mExchangeMgr

mFlightTime_usec

int32_t mFlightTime_usec

tek yön uçuş süresini depolamak için kullanılır.

mIsInCallback

bool mIsInCallback

mOnSyncCompleted

SyncCompletionHandler mOnSyncCompleted

mRegisterSyncResult_usec

timesync_t mRegisterSyncResult_usec

Bir sonuç kaydedildiğinde Zaman Damgası depolamak için kullanılır

mRemoteTimestamp_usec

timesync_t mRemoteTimestamp_usec

yanıt mesajı gönderilmek üzereyken uzak düğümün sistem saatini depolamak için kullanılır

mUnadjTimestampLastSent_usec

timesync_t mUnadjTimestampLastSent_usec

Herkese açık işlevler

İptal et

void Abort(
  void
)

Geçerli zaman senkronizasyonu işlemini iptal et.

Binding'i bırakın. Etkin exchange'i iptal edin. Boşta kalma durumuna geri dönün.

GetClientState

ClientState GetClientState(
  void
) const 

Bu istemcinin mevcut durumunu al.

Ayrıntılar
İadeler
mevcut durum

Init

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

Bu istemciyi başlatın.

Diğer işlevlerin kullanılabilmesi için önce çağrılmalıdır. Sıfır/NULL tüm dahili verileri ilk kullanıma hazırlar ve Zaman Değişikliği Bildirimi ile kaydolun.

Ayrıntılar
Parametreler
[in] aApp
Daha yüksek katmana geri çağırmalarda kullanılan, daha üst katman verilerine işaret eden bir işaret.
[in] aExchangeMgr
Zaman Değişikliği Bildirimi mesaj işleyicisine kaydolmada kullanılacak olan Exchange Yöneticisi işaretçisi
İadeler
Başarıda WEAVE_NO_ERROR

Sync

WEAVE_ERROR Sync(
  Binding *const aBinding,
  SyncCompletionHandler OnSyncCompleted
)

Belirtilen Bağlama'yı kullanarak senkronize edin ve sağlanan işaretçiyi kullanarak geri arama yapar.

Devam eden bir zaman senkronizasyonu işlemi varsa bu işlem, geri çağırma yapılmadan dolaylı olarak iptal edilir. OnSyncTamamlandı geri çağırmasında kullanılamaz, ancak OnTimeChangeReportingReceived öğesinde izin verilir . Hata durumunda, İptal bu işlevden dönmeden önce dolaylı olarak çağrılır.

Ayrıntılar
Parametreler
[in] aBinding
Zaman sunucusuyla iletişimde kullanılacak bağlama
[in] OnSyncCompleted
Senkronizasyon işlemleri tamamlandıktan sonra kullanılacak geri çağırma işlevi
İadeler
Başarı üzerine WEAVE_NO_ERROR

Korunan işlevler

EnterSync2

void EnterSync2(
  void
)

FinalProcessing

void FinalProcessing(
  void
)

GetClientStateName

const char * GetClientStateName(
  void
) const 

InvalidateRegisteredResult

void InvalidateRegisteredResult(
  void
)

Zaman düzeltmesi için kayıtlı bilgileri geçersiz kılın.

IsRegisteredResultValid

bool IsRegisteredResultValid(
  void
)

Zaman düzeltmesi için kaydedilen bilgilerin geçerli olup olmadığını kontrol edin.

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
)

Korunan statik işlevler

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
)