nl:: örgü:: Profiller:: Zaman:: TimeSyncNode

Özet

miras

: Den devralır nl :: Dokuma :: Profiller :: Zaman :: _ TimeSyncNodeBase

Yapıcılar ve Yıkıcılar

TimeSyncNode (void)
mBootTimeForNextAutoDiscovery_usec
timesync_t
mIsAutoSyncEnabled
bool
otomatik senkronizasyon özelliği için kullanılan durumlar.
mIsUrgentDiscoveryPending
bool
mNominalDiscoveryPeriod_msec
int32_t
mShortestDiscoveryPeriod_msec
int32_t
mSyncPeriod_msec
int32_t
mActiveContact
iletişim bağlamı.
mExchangeContext
mUnadjTimestampLastSent_usec
timesync_t
EnterState_Discover (void)
void
bu durum geçiş işlevleri dahilidir ve önceki durumun bunları işlemesinin hiçbir yolu olmayacağından hata kodu döndüremez.
EnterState_ServiceSync_1 (void)
void
EnterState_ServiceSync_2 (void)
void
EnterState_Sync_1 (void)
void
EnterState_Sync_2 (void)
void

Genel türler

ClientState Sıralama
bu Zaman Senkronizasyonu İstemcisinin mevcut durumu
CommState Sıralama
belirli bir kişiyle iletişim durumu.
ContributorFilter )(void *const aApp, Contact aContact[], const int aSize) typedef
void(*
geri arama, yanıtlardan zaman düzeltmesini hesaplamadan hemen önce gerçekleşir.
OnSyncRequestReceivedHandler )(void *const aApp, const WeaveMessageInfo *aMsgInfo, const uint8_t aLikelyhood, const bool aIsTimeCoordinator) typedef
bool(*
Az önce bir zaman eşitleme isteği aldığımızı belirtmek için geri arama.
ResponseStatus Sıralama
belirli bir kişiye saklanan yanıtın durumu.
ServerState {
kServerState_UnreliableAfterBoot ,
kServerState_Idle
}
Sıralama
bu Zaman Senkronizasyonu Sunucusunun mevcut durumu
SyncFailedHandler )(void *const aApp, const WEAVE_ERROR aErrorCode) typedef
void(*
geri arama, otomatik eşitleme dahil, eşitlemenin başarısız olduğu düşünüldüğünde gerçekleşir.
SyncSucceededHandler )(void *const aApp, const timesync_t aOffsetUsec, const bool aIsReliable, const bool aIsServer, const uint8_t aNumContributor) typedef
bool(*
geri arama, otomatik eşitleme dahil, eşitlemenin başarılı olduğu kabul edildikten sonra, ancak sonuç uygulanmadan önce gerçekleşir.
TimeChangeNotificationHandler )(void *const aApp, const uint64_t aNodeId, const IPAddress &aNodeAddr) typedef
void(*
Az önce bir Zaman Değişikliği Bildirimi aldığımızı belirtmek için geri arama.

Genel özellikler

FilterTimeCorrectionContributor
OnSyncFailed
OnSyncRequestReceived
ayarlanmazsa, varsayılan uygulama her zaman true değerini döndürür
OnSyncSucceeded
ayarlanmazsa, varsayılan davranış, çok küçük sunucu düzeltmeleri dışında tüm sonuçları almaktır.
OnTimeChangeNotificationReceived
mEncryptionType
uint8_t
yerel iletişim için şifreleme yöntemi
mKeyId
uint16_t
yerel iletişim için kullanılan anahtar kimliği

Korunan özellikler

mApp
void *
daha yüksek katman verilerine işaretçi
mClientState
mConnectionToService
Servisle konuşmak için kullanılan TCP bağlantısı.
mContacts [WEAVE_CONFIG_TIME_CLIENT_MAX_NUM_CONTACTS]
İletişim bilgileri keşif boyunca öğrendik.
mIsAlwaysFresh
bool
mIsInCallback
bool
daha yüksek katmana bir geri aramadaysak doğru
mLastLikelihoodSent
int8_t
mNumContributorInLastLocalSync
uint8_t
mRole
TimeSyncRole
Bu düğümün gerçek rolü.
mServerState
mServiceContact
mTimestampLastCorrectionFromServerOrNtp_usec
timesync_t
uyku zamanı için tazminata ihtiyacımız olduğu için önyükleme zamanı olması gerektiğini unutmayın
mTimestampLastLocalSync_usec
timesync_t
uyku zamanı için tazminata ihtiyacımız olduğu için önyükleme zamanı olması gerektiğini unutmayın

Kamu işlevleri

Abort (void)
motoru, yaptığı her şeyi iptal ederek rölanti durumuna geri dönmeye zorlar.
DisableAutoSync (void)
void
otomatik senkronizasyonu devre dışı bırakın.
EnableAutoSync (const int32_t aSyncPeriod_msec, const int32_t aNominalDiscoveryPeriod_msec, const int32_t aShortestDiscoveryPeriod_msec)
otomatik senkronizasyonu etkinleştir.
GetCapacityOfContactList (void) const
int
bu motorun depolamak üzere yapılandırıldığı maksimum kişi sayısı için basit alıcı
GetClientState (void) const
istemci durumu için basit alıcı
GetNextLikelihood (void) const
int8_t
kalıcı olma olasılığını çıkarın.
GetServerState (void) const
sunucu durumu için basit alıcı
InitClient (void *const aApp, WeaveExchangeManager *aExchangeMgr, const uint8_t aEncryptionType, const uint16_t aKeyId, const int8_t aInitialLikelyhood)
bu istemciyi başlat.
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)
bu koordinatörü başlat.
InitServer (void *const aApp, WeaveExchangeManager *const aExchangeMgr, const bool aIsAlwaysFresh)
Sunucu rolü için başlatma, amaç bir Zaman Eşitleme Sunucusu olacaksa, nesne yapımından sonraki ilk işlev olarak çağrılmalıdır.
MulticastTimeChangeNotification (const uint8_t aEncryptionType, const uint16_t aKeyId) const
void
Daha yüksek katman tarafından çok noktaya yayın zaman değişikliği bildirimine çağrılır.
RegisterCorrectionFromServerOrNtp (void)
void
Herhangi bir Sunucuyla veya NTP gibi bazı güvenilir araçlarla bir zaman eşitleme turunu yeni bitirdiğimizi belirtmek için daha yüksek katman tarafından çağrıldı.
RegisterLocalSyncOperation (const uint8_t aNumContributor)
void
Daha üst katman tarafından, diğer yerel Koordinatörlerle bir zaman eşitleme turunu henüz tamamladığımızı belirtmek için çağrıldı.
Shutdown (void)
hangi rolü oynarsa oynasın hizmeti durdurun.
Sync (const bool aForceDiscoverAgain)
mevcut kişileri kullanarak senkronize edin.
SyncWithNodes (const int16_t aNumNode, const ServingNode aNodes[])
verilen kişi listesini kullanarak senkronize edin.
SyncWithService ( WeaveConnection *const aConnection)
verilen TCP bağlantısını ve ilişkili şifrelemeyi ve anahtar kimliğini kullanarak eşitleyin.

Korumalı fonksiyonlar

AbortOnError (const WEAVE_ERROR aCode)
void
aCode WEAVE_NO_ERROR değilse dahili iptal
AutoSyncNow (void)
void
otomatik senkronizasyon oturumunu başlatmak için dahili işlev
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)
uygulama katmanına geri arama başlat.
ClearState (void)
void
DestroyCommContext (void)
bool
Dokuma kapatmak ExchangeContext
EndLocalSyncAndTryCalculateTimeFix (void)
void
EndServiceSyncAndTryCalculateTimeFix (void)
void
FindReplaceableContact (const uint64_t aNodeId, const IPAddress & aNodeAddr, bool aIsTimeChangeNotification)
iletişim bilgilerini saklamak için bir yuva döndür
GetClientStateName (void) const
const char *const
GetNextIdleContact (void)
konuşmak için bir sonraki geçerli ve boşta kişiyi bul
GetNumNotYetCompletedContacts (void)
int16_t
geçerli olan kişilerin sayısını alın, ancak henüz onlarla konuşmadık.
GetNumReliableResponses (void)
int16_t
şimdiye kadar toplanan 'güvenilir' yanıtların sayısını alın.
InitState (const TimeSyncRole aRole, void *const aApp, WeaveExchangeManager *const aExchangeMgr)
InvalidateAllContacts (void)
void
tüm yerel kişileri geçersiz kıl
InvalidateServiceContact (void)
void
servisle irtibatı geçersiz kıl
RegisterCommError ( Contact *const aContact)
void
belirli bir kişide iletişim hatasını kaydedin ve gerekirse otomatik keşif süresini kısaltın aContact, konuşacak kimsemiz olmadığını belirtmek için NULL olabilir ve bu nedenle otomatik keşif süresini kısaltın
SendSyncRequest (bool *const rIsMessageSent, Contact *const aContact)
bir kişiye tek noktaya yayın eşitleme isteği gönder.
SetAllCompletedContactsToIdle (void)
int16_t
tamamlanan tüm kişileri tekrar boş durumuna sıfırlayın, ancak yanıta dokunmayın.
SetAllValidContactsToIdleAndInvalidateResponse (void)
int16_t
tüm geçerli yerel kişileri boş duruma ayarlayın ve yanıtı silin.
SetClientState (const ClientState state)
void
SetupUnicastCommContext ( Contact *const aContact)
tek noktaya yayın iletişimi için yeni Örgü Değişimi oluşturun
StoreNotifyingContact (const uint64_t aNodeId, const IPAddress & aNodeAddr)
void
bize bir zaman değişikliği bildirimi gönderen bir düğümün iletişim bilgilerini saklayın
UpdateMulticastSyncResponse (const uint64_t aNodeId, const IPAddress & aNodeAddr, const TimeSyncResponse & aResponse)
void
bir çok noktaya yayın isteğinden gelen bir yanıtı işlemek
UpdateUnicastSyncResponse (const TimeSyncResponse & aResponse)
void
tek noktaya yayın isteğinden geri gelen bir yanıtı işlemek
_InitClient (const uint8_t aEncryptionType, const uint16_t aKeyId, const int8_t aInitialLikelyhood)
İstemci rolü için başlat.
_InitServer (const bool aIsAlwaysFresh)
Sunucu rolü için başlat.
_ShutdownClient (void)
geri aramalarda mevcut olmayan istemciyi durdurun.
_ShutdownCoordinator (void)
geri aramalarda mevcut olmayan koordinatörü durdurun.
_ShutdownServer (void)
sunucuyu geri aramalarda kullanılamayan durdurun.

Korumalı statik fonksiyonlar

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
bir zaman eşitleme isteği geldiğinde Weave Exchange'den geri arama
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
Önyüklemeden sonra güvenilmez bariyeri geçtiğimizde Weave Timer'dan geri arama
IsOperationalState ( ClientState aState)
bool
Verilen durumun çalışır durumda olup olmadığını belirleyin.
_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

otomatik senkronizasyon özelliği için kullanılan durumlar.

mIsUrgentDiscoveryBeklemede

bool mIsUrgentDiscoveryPending

mNominal DiscoveryPeriod_msec

int32_t mNominalDiscoveryPeriod_msec

mShortestDiscoveryPeriod_msec

int32_t mShortestDiscoveryPeriod_msec

mSyncPeriod_msn

int32_t mSyncPeriod_msec

mActiveİletişim

Contact * mActiveContact

iletişim bağlamı.

mExchangeContext

ExchangeContext * mExchangeContext

mUnadjTimestampLastSent_usec

timesync_t mUnadjTimestampLastSent_usec

EnterState_Discover

void EnterState_Discover(
  void
)

bu durum geçiş işlevleri dahilidir ve önceki durumun bunları işlemesinin hiçbir yolu olmayacağından hata kodu döndüremez.

herhangi bir başarısızlık, sonunda başka bir durum geçişine neden olacaktır (zaman aşımı olabilir), zamanlayıcı bile başarısız olursa, hilemiz bitti ve bazı yanlış durumlarda takılabiliriz

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
)

Genel türler

Müşteri durumu

 ClientState

bu Zaman Senkronizasyonu İstemcisinin mevcut durumu

CommState

 CommState

belirli bir kişiyle iletişim durumu.

Bunun nedeni genelinde olduğu iletişime genelinde olduğu

KatılımcıFiltresi

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

geri arama, yanıtlardan zaman düzeltmesini hesaplamadan hemen önce gerçekleşir.

uygulama katmanı, aContact[i].mResponseStatus öğesinin üzerine kResponseStatus_Invalid öğesinin üzerine yazabilir, böylece yanıt hesaplamada yoksayılabilir.

Ayrıntılar
parametreler
[in] aApp
Init'te ayarlanan uygulama katmanı verilerine yönelik bir işaretçi.
[in] aContact
kişi dizisi ve yanıt durumu
[in] aSize
aContact dizisindeki kayıt sayısı

OnSyncRequestAlınanİşleyici

bool(* OnSyncRequestReceivedHandler)(void *const aApp, const WeaveMessageInfo *aMsgInfo, const uint8_t aLikelyhood, const bool aIsTimeCoordinator)

Az önce bir zaman eşitleme isteği aldığımızı belirtmek için geri arama.

Ayrıntılar
parametreler
[in] aApp
Init'te ayarlanan uygulama katmanı verilerine yönelik bir işaretçi.
[in] aMsgInfo
Bir WeaveMessageInfo gönderen ilgili bilgiler de dahil olmak üzere alınan zaman senkronizasyon talep hakkında bilgi ihtiva etmektedir.
[in] aLikelyhood
gönderen tarafından talep edildiği gibi yanıt olasılığı
[in] aIsTimeCoordinator
kaynak düğüm bir Zaman Eşitleme Koordinatörü ise true .
İadeler
false ve motor bu isteği görmezden gelir

Yanıt Durumu

 ResponseStatus

belirli bir kişiye saklanan yanıtın durumu.

Bunun nedeni genelinde olduğu iletişime genelinde olduğu

Sunucu Durumu

 ServerState

bu Zaman Senkronizasyonu Sunucusunun mevcut durumu

Özellikleri
kServerState_Idle

sunucu, normal ayarlarla isteklere yanıt vermeye hazır

kServerState_UnreliableAfterBoot

sunucunun sistem zamanını başka yollarla eşitlemesi için ayrılan süre, yalnızca Init çağrıldığında aIsAlwaysFresh doğruysa anlamlıdır

SyncFailedHandler

void(* SyncFailedHandler)(void *const aApp, const WEAVE_ERROR aErrorCode)

geri arama, otomatik eşitleme dahil, eşitlemenin başarısız olduğu düşünüldüğünde gerçekleşir.

Senkronizasyonu durdurmak için Abort çağrılırsa geri aramanın gerçekleşmediğini unutmayın.

Ayrıntılar
parametreler
[in] aApp
Init'te ayarlanan uygulama katmanı verilerine yönelik bir işaretçi.
[in] aErrorCode
başarısızlık nedeni

SyncSucceededHandler

bool(* SyncSucceededHandler)(void *const aApp, const timesync_t aOffsetUsec, const bool aIsReliable, const bool aIsServer, const uint8_t aNumContributor)

geri arama, otomatik eşitleme dahil, eşitlemenin başarılı olduğu kabul edildikten sonra, ancak sonuç uygulanmadan önce gerçekleşir.

Başarılı olmanın, uygulanabilir sonuçlara sahip olduğumuz anlamına gelmediğini unutmayın. Yanıt alınmaması durumunda, aNumContributor 0'a ayarlanır. uygulama katmanı, aContact[i].mResponseStatus'un üzerine kResponseStatus_Invalid'e yazabilir, böylece yanıt hesaplamada yok sayılırdı.

Ayrıntılar
parametreler
[in] aApp
Init'te ayarlanan uygulama katmanı verilerine yönelik bir işaretçi.
[in] aOffsetUsec
kullanımdaki düzeltme miktarı
[in] aIsReliable
yerleşik mantık tarafından güvenilir kabul edilen düzeltmedir
[in] aIsServer
düzeltme Sunuculardan mı geliyor?
[in] aNumContributor
Bu düzeltmeye katkıda bulunan düğüm sayısı. 0, eşitleme işleminden hiçbir sonuç olmadığı anlamına gelir.
İadeler
bu ofset sistem zamanını ayarlamak için kullanılacaksa true . aNumContributor'ın 0 olması durumunda, dönüş değeri yok sayılır.

TimeChangeBildirim İşleyicisi

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

Az önce bir Zaman Değişikliği Bildirimi aldığımızı belirtmek için geri arama.

otomatik senkronizasyon modu etkinleştirilirse, bu geri aramadan kısa bir süre sonra otomatik olarak bir zaman senkronizasyonu planlanır. aksi takdirde uygulama katmanı, normal geri aramada mevcut olmayan kuralı tarafından kısıtlanmayan senkronizasyon işlemini doğrudan başlatmak için Senkronizasyon işlev ailesini çağırmayı seçebilir. ancak, bu özel geri aramanın hala Weave değişim katmanının geri arama yığınının üstünde olduğuna dikkat edilmelidir.

Ayrıntılar
parametreler
[in] aApp
Init'te ayarlanan uygulama katmanı verilerine yönelik bir işaretçi.
[in] aNodeId
düğüm kimliği istiyor
[in] aNodeAddr
düğüm adresi isteyen

Genel özellikler

FiltreZaman DüzeltmeKatkıda Bulunan

ContributorFilter FilterTimeCorrectionContributor

OnSyncBaşarısız

SyncFailedHandler OnSyncFailed

OnSyncRequestAlındı

OnSyncRequestReceivedHandler OnSyncRequestReceived

ayarlanmazsa, varsayılan uygulama her zaman true değerini döndürür

OnSyncBaşarılı

SyncSucceededHandler OnSyncSucceeded

ayarlanmazsa, varsayılan davranış, çok küçük sunucu düzeltmeleri dışında tüm sonuçları almaktır.

OnTimeChangeBildirim Alındı

TimeChangeNotificationHandler OnTimeChangeNotificationReceived

mŞifrelemeTürü

uint8_t mEncryptionType

yerel iletişim için şifreleme yöntemi

mKeyId

uint16_t mKeyId

yerel iletişim için kullanılan anahtar kimliği

Korunan özellikler

uygulama

void * mApp

daha yüksek katman verilerine işaretçi

mClientState

ClientState mClientState

mConnectionToService

WeaveConnection * mConnectionToService

Servisle konuşmak için kullanılan TCP bağlantısı.

mKişiler

Contact mContacts[WEAVE_CONFIG_TIME_CLIENT_MAX_NUM_CONTACTS]

İletişim bilgileri keşif boyunca öğrendik.

mIsAlwaysFresh

bool mIsAlwaysFresh

mIsInCallback

bool mIsInCallback

daha yüksek katmana bir geri aramadaysak doğru

mLsonOksiteGönderildi

int8_t mLastLikelihoodSent

mNumContributorInLastLocalSync

uint8_t mNumContributorInLastLocalSync

mRol

TimeSyncRole mRole

Bu düğümün gerçek rolü.

mSunucu Durumu

ServerState mServerState

mServiceİletişim

Contact mServiceContact

mTimestampLastCorectionFromServerOrNtp_usec

timesync_t mTimestampLastCorrectionFromServerOrNtp_usec

uyku zamanı için tazminata ihtiyacımız olduğu için önyükleme zamanı olması gerektiğini unutmayın

mTimestampLastLocalSync_usec

timesync_t mTimestampLastLocalSync_usec

uyku zamanı için tazminata ihtiyacımız olduğu için önyükleme zamanı olması gerektiğini unutmayın

Kamu işlevleri

iptal

WEAVE_ERROR Abort(
  void
)

motoru, yaptığı her şeyi iptal ederek rölanti durumuna geri dönmeye zorlar.

hiçbir senkronizasyon başarısı veya başarısızlığı çağrılmayacağına dikkat edin. tüm Dokuma Borsaları kapatılacaktır. TCP bağlantılarına daha fazla dokunulmaz. zaten boş durumdaysak işlem yok. geri aramalarda mevcut değildir.

Ayrıntılar
İadeler
WEAVE_NO_ERROR başarı üzerine

Otomatik Senkronizasyonu Devre Dışı Bırak

void DisableAutoSync(
  void
)

otomatik senkronizasyonu devre dışı bırakın.

yalnızca boşta durumda kullanılabilir. geri aramalarda mevcut değildir.

Otomatik Senkronizasyonu Etkinleştir

WEAVE_ERROR EnableAutoSync(
  const int32_t aSyncPeriod_msec,
  const int32_t aNominalDiscoveryPeriod_msec,
  const int32_t aShortestDiscoveryPeriod_msec
)

otomatik senkronizasyonu etkinleştir.

yalnızca boşta durumda kullanılabilir. keşif hemen gerçekleşir. geri aramalarda mevcut değildir.

Ayrıntılar
parametreler
[in] aSyncPeriod_msec
senkronizasyon arasındaki msn sayısı
[in] aNominalDiscoveryPeriod_msec
iletişim hatası gözlenmezse, keşif arasındaki msn sayısı
[in] aShortestDiscoveryPeriod_msec
iletişim hatası gözlemlendiyse, keşif arasındaki en kısa süre, msn cinsinden
İadeler
WEAVE_NO_ERROR başarı üzerine

GetCapacityOfContactList

int GetCapacityOfContactList(
  void
) const 

bu motorun depolamak üzere yapılandırıldığı maksimum kişi sayısı için basit alıcı

GetClientState

ClientState GetClientState(
  void
) const 

istemci durumu için basit alıcı

GetNextOlabilirlik

int8_t GetNextLikelihood(
  void
) const 

kalıcı olma olasılığını çıkarın.

sonuç yalnızca, OnSyncSucceeded ve OnSyncFailed geri aramaları içinde, eşitleme işlemi tamamlandıktan sonra geçerli olacaktır. aksi takdirde geçicidir ve kullanılacak bir sonraki olasılık yerine mevcut Olasılık olabilir.

Ayrıntılar
İadeler
yanıtın bir sonraki istekte kullanılma olasılığı

GetServerState

ServerState GetServerState(
  void
) const 

sunucu durumu için basit alıcı

InitClient

WEAVE_ERROR InitClient(
  void *const aApp,
  WeaveExchangeManager *aExchangeMgr,
  const uint8_t aEncryptionType,
  const uint16_t aKeyId,
  const int8_t aInitialLikelyhood
)

bu istemciyi başlat.

geri aramalarda mevcut değil

Ayrıntılar
parametreler
[in] aApp
Daha yüksek katmana yapılan geri aramalarda kullanılan, daha yüksek katman verilerine yönelik bir işaretçi.
[in] aExchangeMgr
Sistem genelindeki Weave Exchange Manager nesnesine bir işaretçi
[in] aRole
kTimeSyncRole_Client veya kTimeSyncRole_Coordinator olabilir
[in] aEncryptionType
istekler ve yanıtlar için kullanılacak şifreleme türü
[in] aKeyId
istekler ve yanıtlar için kullanılacak anahtar kimliği
[in] aInitialLikelyhood
keşif aşaması için kullanılacak ilk olasılık
İadeler
WEAVE_NO_ERROR başarı üzerine

Başlatma Koordinatörü

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
)

bu koordinatörü başlat.

Ayrıntılar
parametreler
[in] aExchangeMgr
Sistem genelindeki Weave Exchange Manager nesnesine bir işaretçi
[in] aEncryptionType
istekler ve yanıtlar için kullanılacak şifreleme türü
[in] aKeyId
istekler ve yanıtlar için kullanılacak anahtar kimliği
[in] aSyncPeriod_msec
senkronizasyon arasındaki msn sayısı
[in] aNominalDiscoveryPeriod_msec
iletişim hatası gözlenmezse, keşif arasındaki en kısa süre, msn cinsinden
[in] aShortestDiscoveryPeriod_msec
iletişim hatası gözlemlendiyse, keşif arasındaki en küçük msn sayısı
İadeler
WEAVE_NO_ERROR başarı üzerine

InitServer

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

Sunucu rolü için başlatma, amaç bir Zaman Eşitleme Sunucusu olacaksa, nesne yapımından sonraki ilk işlev olarak çağrılmalıdır.

geri aramalarda mevcut değil

Ayrıntılar
parametreler
[in] aApp
Daha yüksek katmana yapılan geri aramalarda kullanılan, daha yüksek katman verilerine yönelik bir işaretçi.
[in] aExchangeMgr
Sistem genelindeki Weave Exchange Manager nesnesine bir işaretçi
[in] aIsAlwaysFresh
sunucunun ilk güvenilmez zaman dışında her zaman eşitlendiğini belirtmek için true olarak ayarlanabilir. Koordinatör için false olarak ayarlanır.
İadeler
WEAVE_NO_ERROR başarı üzerine

MulticastTimeChangeBildirim

void MulticastTimeChangeNotification(
  const uint8_t aEncryptionType,
  const uint16_t aKeyId
) const 

Daha yüksek katman tarafından çok noktaya yayın zaman değişikliği bildirimine çağrılır.

geri aramalarda mevcut değildir.

Ayrıntılar
parametreler
[in] aEncryptionType
bu bildirim için kullanılacak şifreleme türü
[in] aKeyId
bu bildirim için kullanılacak anahtar kimliği

RegisterDüzeltmeSunucudanOrNtp

void RegisterCorrectionFromServerOrNtp(
  void
)

Herhangi bir Sunucuyla veya NTP gibi bazı güvenilir araçlarla bir zaman eşitleme turunu yeni bitirdiğimizi belirtmek için daha yüksek katman tarafından çağrıldı.

RegisterLocalSyncOperation

void RegisterLocalSyncOperation(
  const uint8_t aNumContributor
)

Daha üst katman tarafından, diğer yerel Koordinatörlerle bir zaman eşitleme turunu henüz tamamladığımızı belirtmek için çağrıldı.

Ayrıntılar
parametreler
[in] aNumContributor
bu zaman senkronizasyonuna katkıda bulunan koordinatör sayısı

Kapat

WEAVE_ERROR Shutdown(
  void
)

hangi rolü oynarsa oynasın hizmeti durdurun.

Herhangi bir init işlevine başka bir çağrı yapılmadan önce, ayrılan kaynakları uygun şekilde geri almak için bu işlev çağrılmalıdır. geri aramalarda mevcut değildir.

Ayrıntılar
İadeler
WEAVE_NO_ERROR başarı üzerine

senkronizasyon

WEAVE_ERROR Sync(
  const bool aForceDiscoverAgain
)

mevcut kişileri kullanarak senkronize edin.

geçerli bir kişi yoksa senkronizasyon işlemi başarısız olabilir. hemen keşfetmeye zorlamak için aForceDiscoverAgain öğesini true olarak ayarlayın. yalnızca boşta durumda kullanılabilir. geri aramalarda mevcut değildir.

Ayrıntılar
parametreler
[in] aForceDiscoverAgain
tüm mevcut kontaklar temizlenecek ve keşif işlemi gerçekleştirilecekse true .
İadeler
WEAVE_NO_ERROR başarı üzerine

SyncWithNodes

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

verilen kişi listesini kullanarak senkronize edin.

mevcut kişi listesi temizlenir. yalnızca boşta durumda kullanılabilir. geri aramalarda mevcut değildir.

Ayrıntılar
parametreler
[in] aNumNode
aNodes dizisindeki kişi sayısı
[in] aNodes
kişi kayıtları dizisi
İadeler
WEAVE_NO_ERROR başarı üzerine

SyncWithService

WEAVE_ERROR SyncWithService(
  WeaveConnection *const aConnection
)

verilen TCP bağlantısını ve ilişkili şifrelemeyi ve anahtar kimliğini kullanarak eşitleyin.

arayan kişi, eşitleme tamamlandıktan sonra TCP bağlantısının sahipliğini almalıdır. TCP bağlantısı için hiçbir geri aramanın üzerine yazılmaz, çünkü yeni bir Örgü Değişimi oluşturulur ve geri aramalar bu bağlamın üzerine ayarlanır ve yalnızca boş durumda kullanılabilir. geri aramalarda mevcut değildir.

Ayrıntılar
parametreler
[in] aConnection
Örgü bağlantısı için bir işaretçi
İadeler
WEAVE_NO_ERROR başarı üzerine

TimeSyncNode

 TimeSyncNode(
  void
)

Korumalı fonksiyonlar

AbortOnError

void AbortOnError(
  const WEAVE_ERROR aCode
)

aCode WEAVE_NO_ERROR değilse dahili iptal

AutoSyncNow

void AutoSyncNow(
  void
)

otomatik senkronizasyon oturumunu başlatmak için dahili işlev

Geri AramaForSyncCompletion

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
)

uygulama katmanına geri arama başlat.

hata geri aramasını başlatmak için aIsSuccessful öğesini false olarak ayarlayın

ClearState

void ClearState(
  void
)

Iletişim Bağlamını Yok Et

bool DestroyCommContext(
  void
)

Dokuma kapatmak ExchangeContext

EndLocalSyncAndTryCalculateTimeFix

void EndLocalSyncAndTryCalculateTimeFix(
  void
)

EndServiceSyncAndTryCalculateTimeFix

void EndServiceSyncAndTryCalculateTimeFix(
  void
)

FindDeğiştirilebilirİletişim

Contact * FindReplaceableContact(
  const uint64_t aNodeId,
  const IPAddress & aNodeAddr,
  bool aIsTimeChangeNotification
)

iletişim bilgilerini saklamak için bir yuva döndür

GetClientStateName

const char *const GetClientStateName(
  void
) const 

GetNextIdleContact

Contact * GetNextIdleContact(
  void
)

konuşmak için bir sonraki geçerli ve boşta kişiyi bul

GetNumNotYetCompletedKişiler

int16_t GetNumNotYetCompletedContacts(
  void
)

geçerli olan kişilerin sayısını alın, ancak henüz onlarla konuşmadık.

GetNumReliableResponses

int16_t GetNumReliableResponses(
  void
)

şimdiye kadar toplanan 'güvenilir' yanıtların sayısını alın.

yeterli sayıda yanıt toplayıp toplamadığımızı belirlemek için aradılar

InitState

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

InvalidateAllContacts

void InvalidateAllContacts(
  void
)

tüm yerel kişileri geçersiz kıl

InvalidateServiceİletişim

void InvalidateServiceContact(
  void
)

servisle irtibatı geçersiz kıl

RegisterCommError

void RegisterCommError(
  Contact *const aContact
)

belirli bir kişide iletişim hatasını kaydedin ve gerekirse otomatik keşif süresini kısaltın aContact, konuşacak kimsemiz olmadığını belirtmek için NULL olabilir ve bu nedenle otomatik keşif süresini kısaltın

SendSyncRequest

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

bir kişiye tek noktaya yayın eşitleme isteği gönder.

*rIsMessageSent, mesajın gönderilip gönderilmediğini gösterecek şekilde ayarlanacaktır. adrese ulaşılamıyor gibi iletişim hataları döndürülmez, bu nedenle arayan hem dönüş kodunu hem de *rIsMessageSent'i kontrol etmelidir.

Tümü Tamamlanan Kişileri AyarlaBoşta

int16_t SetAllCompletedContactsToIdle(
  void
)

tamamlanan tüm kişileri tekrar boş durumuna sıfırlayın, ancak yanıta dokunmayın.

bu, aynı düğüme yapılan iki iletişim turu arasında çağrılır

SetAllValidContactsToIdleAndInvalidateResponse

int16_t SetAllValidContactsToIdleAndInvalidateResponse(
  void
)

tüm geçerli yerel kişileri boş duruma ayarlayın ve yanıtı silin.

bu, onlarla tek tek iletişim kurmaya başlamadan önce çağrılır

SetClientState

void SetClientState(
  const ClientState state
)

KurulumUnicastCommContext

WEAVE_ERROR SetupUnicastCommContext(
  Contact *const aContact
)

tek noktaya yayın iletişimi için yeni Örgü Değişimi oluşturun

MağazaBildiriliyorİletişim

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

bize bir zaman değişikliği bildirimi gönderen bir düğümün iletişim bilgilerini saklayın

GüncellemeMulticastSyncResponse

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

bir çok noktaya yayın isteğinden gelen bir yanıtı işlemek

GüncellemeUnicastSyncResponse

void UpdateUnicastSyncResponse(
  const TimeSyncResponse & aResponse
)

tek noktaya yayın isteğinden geri gelen bir yanıtı işlemek

_InitClient

WEAVE_ERROR _InitClient(
  const uint8_t aEncryptionType,
  const uint16_t aKeyId,
  const int8_t aInitialLikelyhood
)

İstemci rolü için başlat.

Init kamu işlevleri ailesi tarafından dahili olarak kullanılmak üzere tasarlanmıştır. Dönmeden önce mClientState ayarlanmalıdır. geri aramalarda mevcut değil

Ayrıntılar
parametreler
[in] aEncryptionType
istekler ve yanıtlar için kullanılacak şifreleme türü
[in] aKeyId
istekler ve yanıtlar için kullanılacak anahtar kimliği
[in] aInitialLikelyhood
keşif aşaması için kullanılacak ilk olasılık
İadeler
WEAVE_NO_ERROR başarı üzerine

_InitServer

WEAVE_ERROR _InitServer(
  const bool aIsAlwaysFresh
)

Sunucu rolü için başlat.

Init kamu işlevleri ailesi tarafından dahili olarak kullanılmak üzere tasarlanmıştır. Dönmeden önce mClientState ayarlanmalıdır. geri aramalarda mevcut değil

Ayrıntılar
parametreler
[in] aIsAlwaysFresh
sunucunun ilk güvenilmez zaman dışında her zaman eşitlendiğini belirtmek için true olarak ayarlanabilir. Koordinatör için false olarak ayarlanır.
İadeler
WEAVE_NO_ERROR başarı üzerine

_ShutdownClient

WEAVE_ERROR _ShutdownClient(
  void
)

geri aramalarda mevcut olmayan istemciyi durdurun.

Ayrıntılar
İadeler
WEAVE_NO_ERROR başarı üzerine

_Kapatma Koordinatörü

WEAVE_ERROR _ShutdownCoordinator(
  void
)

geri aramalarda mevcut olmayan koordinatörü durdurun.

Ayrıntılar
İadeler
WEAVE_NO_ERROR başarı üzerine

_ShutdownSunucusu

WEAVE_ERROR _ShutdownServer(
  void
)

sunucuyu geri aramalarda kullanılamayan durdurun.

Ayrıntılar
İadeler
WEAVE_NO_ERROR başarı üzerine

Korumalı statik fonksiyonlar

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
)

bir zaman eşitleme isteği geldiğinde Weave Exchange'den geri arama

HandleTimeChangeBildirim

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
)

Önyüklemeden sonra güvenilmez bariyeri geçtiğimizde Weave Timer'dan geri arama

OperasyonelDurum

bool IsOperationalState(
  ClientState aState
)

Verilen durumun çalışır durumda olup olmadığını belirleyin.

ClientState'in işletim durumunu gösterip göstermediğini, yani istemcinin başlatmayı tamamlayıp tamamlamadığını ve kapatma sürecinde olup olmadığını belirlemek için elverişlilik yöntemi.

Ayrıntılar
parametreler
[in] aState
değerlendirilecek durum
İadeler
başlatma tamamlandıktan sonra ve kapatma başlamadan önce durum düşüyorsa true , aksi takdirde false .

_OnSyncBaşarılı

bool _OnSyncSucceeded(
  void *const aApp,
  const nl::Weave::Profiles::Time::timesync_t aOffsetUsec,
  const bool aIsReliable,
  const bool aIsServer,
  const uint8_t aNumContributor
)