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

Özet

Herkese açık türler

ClientState{
  kClientState_Idle,
  kClientState_Sync_1,
  kClientState_Sync_2
}
enum
Bu Time Sync İstemcisinin mevcut durumu
SyncCompletionHandler)(void *const aApp, const WEAVE_ERROR aErrorCode, const timesync_t aCorrectedSystemTime) typedef
void(*
Her iki zaman senkronizasyonu denemesi tamamlandıktan sonra geri arama.
TimeChangeNotificationHandler)(void *const aApp, ExchangeContext *aEC) typedef
void(*
Zaman Değişikliği Bildirimi aldığımızı bildirmek için geri arama.

Korunan 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 saklamak için kullanılır.
mIsInCallback
bool
mOnSyncCompleted
mRegisterSyncResult_usec
timesync_t
Bir sonuç kaydedildiğinde Zaman Damgasını saklamak 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

Kamu işlevleri

Abort(void)
void
Geçerli saat 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)
Verilen Bağlama'yı kullanarak senkronizasyon gerçekleştirir 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üzeltme için kayıtlı bilgileri geçersiz kılın.
IsRegisteredResultValid(void)
bool
Zaman düzeltme için kayıtlı 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 Time Sync İstemcisinin mevcut durumu

Özellikler
kClientState_Idle

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

kClientState_Sync_1

İlk senkronizasyon denemesi yapılıyor.

kClientState_Sync_2

İkinci kez senkronizasyon denemesi üzerinde çalışıyoruz.

SyncCompletionHandler

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

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

BirErrorCode WEAVE_NO_ERROR ise, en az bir deneme başarılı olmuştur. Aksi takdirde, aErrorCode'da her ikisi de başarısız oldu, en son hatayı gösterir.

Ayrıntılar
Parametreler
[in] aApp
Init'te ayarlanmış, uygulama katmanı verilerine işaret eden bir işaretçi.
[in] aErrorCode
En az bir kez 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)

Zaman Değişikliği Bildirimi aldığımızı bildirmek için geri arama.

Başlatma'da NULL olarak 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 çağırmasına izin verilir.

Ayrıntılar
Parametreler
[in] aApp
Init'te ayarlanmış, uygulama katmanı verilerine işaret eden bir işaretçi.
[in] aEC
Bu gelen ileti için kullanılan Exchange bağlamı (orijinalliğini doğrulamak için kullanılabilir)

Korunan 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 saklamak için kullanılır.

mIsInCallback

bool mIsInCallback

mOnSyncCompleted

SyncCompletionHandler mOnSyncCompleted

mRegisterSyncResult_usec

timesync_t mRegisterSyncResult_usec

Bir sonuç kaydedildiğinde Zaman Damgasını saklamak 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

Kamu işlevleri

İptal et

void Abort(
  void
)

Geçerli saat senkronizasyonu işlemini iptal et.

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

GetClientState

ClientState GetClientState(
  void
) const 

Bu istemcinin mevcut durumunu al.

Ayrıntılar
İadeler
mevcut durum

Başlat

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

Bu istemciyi başlatın.

Diğer işlevlerin kullanılabilmesi için çağrılmalıdır. Sıfır/NULL tüm dahili verileri başlatın ve Zaman Değişikliği Bildirimi'ne kaydolun.

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

Sync

WEAVE_ERROR Sync(
  Binding *const aBinding,
  SyncCompletionHandler OnSyncCompleted
)

Verilen Bağlama'yı kullanarak senkronizasyon gerçekleştirir 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 arka planda iptal edilir. OnSyncCompleted geri çağırmasında kullanılamaz, ancak OnTimeChange NotificationReceived öğesinde izin verilir . Hata durumunda, bu işlevden dönmeden önce iptal etme işlemi dolaylı yoldan çağrılır.

Ayrıntılar
Parametreler
[in] aBinding
Saat sunucusuyla iletişim kurarken kullanılacak bağlama
[in] OnSyncCompleted
Senkronizasyon işlemleri tamamlandıktan sonra kullanılacak geri çağırma işlevi
İadeler
Başarılı olduğunda 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üzeltme için kayıtlı bilgileri geçersiz kılın.

IsRegisteredResultValid

bool IsRegisteredResultValid(
  void
)

Zaman düzeltme için kayıtlı 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
)

_Geri Çağırma İle İptal

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
)