Google berkomitmen untuk mendorong terwujudnya keadilan ras bagi komunitas Kulit Hitam. Lihat caranya.
Tetap teratur dengan koleksi Simpan dan kategorikan konten berdasarkan preferensi Anda.

nl:: Menenun:: Profil:: Waktu:: TimeSyncNode

Ringkasan

Warisan

Mewarisi dari: nl :: Weave :: Profil :: Waktu :: _ TimeSyncNodeBase

Konstruktor dan Destruktor

TimeSyncNode (void)
mBootTimeForNextAutoDiscovery_usec
timesync_t
mIsAutoSyncEnabled
bool
status yang digunakan untuk fitur sinkronisasi otomatis.
mIsUrgentDiscoveryPending
bool
mNominalDiscoveryPeriod_msec
int32_t
mShortestDiscoveryPeriod_msec
int32_t
mSyncPeriod_msec
int32_t
mActiveContact
konteks komunikasi.
mExchangeContext
mUnadjTimestampLastSent_usec
timesync_t
EnterState_Discover (void)
void
fungsi transisi keadaan ini bersifat internal dan tidak dapat mengembalikan kode kesalahan karena keadaan sebelumnya tidak memiliki cara untuk menanganinya.
EnterState_ServiceSync_1 (void)
void
EnterState_ServiceSync_2 (void)
void
EnterState_Sync_1 (void)
void
EnterState_Sync_2 (void)
void

Tipe publik

ClientState enum
keadaan saat ini dari Klien Sinkronisasi Waktu ini
CommState enum
status komunikasi ke kontak tertentu.
ContributorFilter )(void *const aApp, Contact aContact[], const int aSize) typedef
void(*
panggilan balik terjadi tepat sebelum kami menghitung koreksi waktu dari tanggapan.
OnSyncRequestReceivedHandler )(void *const aApp, const WeaveMessageInfo *aMsgInfo, const uint8_t aLikelyhood, const bool aIsTimeCoordinator) typedef
bool(*
panggilan balik untuk menunjukkan bahwa kami baru saja menerima permintaan sinkronisasi waktu.
ResponseStatus enum
status respons yang disimpan ke kontak tertentu.
ServerState {
kServerState_UnreliableAfterBoot ,
kServerState_Idle
}
enum
keadaan saat ini dari Server Sinkronisasi Waktu ini
SyncFailedHandler )(void *const aApp, const WEAVE_ERROR aErrorCode) typedef
void(*
panggilan balik terjadi ketika sinkronisasi dianggap gagal, termasuk sinkronisasi otomatis.
SyncSucceededHandler )(void *const aApp, const timesync_t aOffsetUsec, const bool aIsReliable, const bool aIsServer, const uint8_t aNumContributor) typedef
bool(*
callback terjadi setelah sinkronisasi dianggap berhasil, termasuk sinkronisasi otomatis, tetapi sebelum hasilnya diterapkan.
TimeChangeNotificationHandler )(void *const aApp, const uint64_t aNodeId, const IPAddress &aNodeAddr) typedef
void(*
panggilan balik untuk menunjukkan bahwa kami baru saja menerima Pemberitahuan Perubahan Waktu.

Atribut publik

FilterTimeCorrectionContributor
OnSyncFailed
OnSyncRequestReceived
jika tidak disetel, implementasi default selalu mengembalikan true
OnSyncSucceeded
jika tidak disetel, perilaku default mengambil semua hasil, kecuali untuk koreksi server yang sangat kecil
OnTimeChangeNotificationReceived
mEncryptionType
uint8_t
metode enkripsi untuk komunikasi lokal
mKeyId
uint16_t
id kunci yang digunakan untuk komunikasi lokal

Atribut yang dilindungi

mApp
void *
penunjuk ke data lapisan yang lebih tinggi
mClientState
mConnectionToService
Koneksi TCP digunakan untuk berbicara dengan layanan.
mContacts [WEAVE_CONFIG_TIME_CLIENT_MAX_NUM_CONTACTS]
Kontak informasi yang dipelajari di seluruh penemuan.
mIsAlwaysFresh
bool
mIsInCallback
bool
benar jika kita sedang dalam panggilan balik ke lapisan yang lebih tinggi
mLastLikelihoodSent
int8_t
mNumContributorInLastLocalSync
uint8_t
mRole
TimeSyncRole
Peran sebenarnya dari simpul ini.
mServerState
mServiceContact
mTimestampLastCorrectionFromServerOrNtp_usec
timesync_t
perhatikan itu harus waktu boot karena kami membutuhkan kompensasi untuk waktu tidur
mTimestampLastLocalSync_usec
timesync_t
perhatikan itu harus waktu boot karena kami membutuhkan kompensasi untuk waktu tidur

Fungsi publik

Abort (void)
memaksa mesin untuk kembali ke keadaan idle, membatalkan apa pun yang dilakukannya.
DisableAutoSync (void)
void
nonaktifkan sinkronisasi otomatis.
EnableAutoSync (const int32_t aSyncPeriod_msec, const int32_t aNominalDiscoveryPeriod_msec, const int32_t aShortestDiscoveryPeriod_msec)
aktifkan sinkronisasi otomatis.
GetCapacityOfContactList (void) const
int
pengambil sederhana untuk jumlah maksimum kontak yang dikonfigurasikan untuk disimpan oleh mesin ini
GetClientState (void) const
pengambil sederhana untuk status klien
GetNextLikelihood (void) const
int8_t
mengekstrak kemungkinan untuk persisten.
GetServerState (void) const
pengambil sederhana untuk status server
InitClient (void *const aApp, WeaveExchangeManager *aExchangeMgr, const uint8_t aEncryptionType, const uint16_t aKeyId, const int8_t aInitialLikelyhood)
inisialisasi klien ini.
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)
inisialisasi koordinator ini.
InitServer (void *const aApp, WeaveExchangeManager *const aExchangeMgr, const bool aIsAlwaysFresh)
inisialisasi untuk peran Server harus dipanggil sebagai fungsi pertama setelah konstruksi objek jika tujuannya adalah menjadi Server Sinkronisasi Waktu.
MulticastTimeChangeNotification (const uint8_t aEncryptionType, const uint16_t aKeyId) const
void
Dipanggil oleh lapisan yang lebih tinggi untuk pemberitahuan perubahan waktu multicast.
RegisterCorrectionFromServerOrNtp (void)
void
Dipanggil oleh lapisan yang lebih tinggi untuk menunjukkan bahwa kami baru saja menyelesaikan putaran waktu sinkronisasi dengan Server mana pun atau melalui beberapa cara yang dapat diandalkan seperti NTP.
RegisterLocalSyncOperation (const uint8_t aNumContributor)
void
Dipanggil oleh lapisan yang lebih tinggi untuk menunjukkan bahwa kami baru saja menyelesaikan putaran waktu sinkronisasi dengan Koordinator lokal lainnya.
Shutdown (void)
hentikan layanan, apa pun peran yang dimainkannya.
Sync (const bool aForceDiscoverAgain)
sinkronisasi menggunakan kontak yang ada.
SyncWithNodes (const int16_t aNumNode, const ServingNode aNodes[])
sinkronisasi menggunakan daftar kontak yang diberikan.
SyncWithService ( WeaveConnection *const aConnection)
sinkronisasi menggunakan koneksi TCP yang diberikan dan enkripsi serta id kunci terkait.

Fungsi yang dilindungi

AbortOnError (const WEAVE_ERROR aCode)
void
batalkan internal jika aCode bukan WEAVE_NO_ERROR
AutoSyncNow (void)
void
fungsi internal untuk memulai sesi sinkronisasi otomatis
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)
menginduksi panggilan balik ke lapisan aplikasi.
ClearState (void)
void
DestroyCommContext (void)
bool
menutup Weave ExchangeContext
EndLocalSyncAndTryCalculateTimeFix (void)
void
EndServiceSyncAndTryCalculateTimeFix (void)
void
FindReplaceableContact (const uint64_t aNodeId, const IPAddress & aNodeAddr, bool aIsTimeChangeNotification)
kembalikan slot untuk menyimpan informasi kontak
GetClientStateName (void) const
const char *const
GetNextIdleContact (void)
dapatkan kontak valid dan idle berikutnya untuk diajak bicara
GetNumNotYetCompletedContacts (void)
int16_t
dapatkan nomor kontak yang valid, tetapi kami belum berbicara dengan mereka.
GetNumReliableResponses (void)
int16_t
dapatkan jumlah tanggapan 'terpercaya' yang dikumpulkan sejauh ini.
InitState (const TimeSyncRole aRole, void *const aApp, WeaveExchangeManager *const aExchangeMgr)
InvalidateAllContacts (void)
void
batalkan semua kontak lokal
InvalidateServiceContact (void)
void
batalkan kontak ke layanan
RegisterCommError ( Contact *const aContact)
void
mendaftarkan kesalahan komunikasi pada kontak tertentu, dan mempersingkat periode penemuan otomatis jika diperlukan. Kontak dapat menjadi NULL untuk menunjukkan bahwa kita tidak memiliki siapa pun untuk diajak bicara, dan karenanya hanya mempersingkat periode penemuan otomatis
SendSyncRequest (bool *const rIsMessageSent, Contact *const aContact)
kirim permintaan sinkronisasi unicast ke kontak.
SetAllCompletedContactsToIdle (void)
int16_t
setel ulang semua kontak yang sudah selesai ke status siaga lagi, tetapi jangan sentuh responsnya.
SetAllValidContactsToIdleAndInvalidateResponse (void)
int16_t
atur semua kontak lokal yang valid ke status siaga dan hapus respons.
SetClientState (const ClientState state)
void
SetupUnicastCommContext ( Contact *const aContact)
buat Weave Exchange baru untuk komunikasi unicast
StoreNotifyingContact (const uint64_t aNodeId, const IPAddress & aNodeAddr)
void
simpan informasi kontak dari node yang baru saja mengirimi kami pemberitahuan perubahan waktu
UpdateMulticastSyncResponse (const uint64_t aNodeId, const IPAddress & aNodeAddr, const TimeSyncResponse & aResponse)
void
memproses respons yang datang kembali dari permintaan multicast
UpdateUnicastSyncResponse (const TimeSyncResponse & aResponse)
void
memproses respons yang datang kembali dari permintaan unicast
_InitClient (const uint8_t aEncryptionType, const uint16_t aKeyId, const int8_t aInitialLikelyhood)
inisialisasi untuk peran Klien.
_InitServer (const bool aIsAlwaysFresh)
inisialisasi untuk peran Server.
_ShutdownClient (void)
hentikan klien yang tidak tersedia dalam panggilan balik.
_ShutdownCoordinator (void)
hentikan koordinator yang tidak tersedia dalam panggilan balik.
_ShutdownServer (void)
hentikan server yang tidak tersedia dalam panggilan balik.

Fungsi statis yang dilindungi

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
panggilan balik dari Weave Exchange ketika permintaan sinkronisasi waktu tiba
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
panggilan balik dari Weave Timer ketika kami melewati penghalang setelah boot yang tidak dapat diandalkan
IsOperationalState ( ClientState aState)
bool
Tentukan apakah keadaan yang diberikan operasional.
_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

status yang digunakan untuk fitur sinkronisasi otomatis.

mIsUrgentDiscoveryTertunda

bool mIsUrgentDiscoveryPending

mNominalDiscoveryPeriod_msec

int32_t mNominalDiscoveryPeriod_msec

mShortestDiscoveryPeriod_msec

int32_t mShortestDiscoveryPeriod_msec

mSyncPeriod_msec

int32_t mSyncPeriod_msec

mAktifKontak

Contact * mActiveContact

konteks komunikasi.

mExchangeContext

ExchangeContext * mExchangeContext

mUnadjTimestampLastSent_usec

timesync_t mUnadjTimestampLastSent_usec

EnterState_Discover

void EnterState_Discover(
  void
)

fungsi transisi keadaan ini bersifat internal dan tidak dapat mengembalikan kode kesalahan karena keadaan sebelumnya tidak memiliki cara untuk menanganinya.

kegagalan apa pun pada akhirnya akan menghasilkan transisi status lain (bisa jadi timeout) jika bahkan pengatur waktu gagal, kami kehabisan trik dan bisa bertahan dalam beberapa status yang salah

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
)

Tipe publik

Negara Klien

 ClientState

keadaan saat ini dari Klien Sinkronisasi Waktu ini

CommState

 CommState

status komunikasi ke kontak tertentu.

Hal ini masyarakat karena Hubungi adalah di depan umum

Filter Kontributor

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

panggilan balik terjadi tepat sebelum kami menghitung koreksi waktu dari tanggapan.

lapisan aplikasi dapat menimpa aContact[i].mResponseStatus ke kResponseStatus_Invalid sehingga respons akan diabaikan dalam perhitungan

rincian
Parameter
[in] aApp
Pointer ke data lapisan aplikasi, diatur di Init.
[in] aContact
berbagai kontak dan status respons
[in] aSize
jumlah catatan dalam array aContact

OnSyncRequestReceivedHandler

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

panggilan balik untuk menunjukkan bahwa kami baru saja menerima permintaan sinkronisasi waktu.

rincian
Parameter
[in] aApp
Pointer ke data lapisan aplikasi, diatur di Init.
[in] aMsgInfo
Sebuah WeaveMessageInfo berisi informasi tentang permintaan waktu menerima sync, termasuk informasi tentang pengirim.
[in] aLikelyhood
kemungkinan tanggapan seperti yang diminta oleh pencetus
[in] aIsTimeCoordinator
benar jika simpul asal adalah Koordinator Sinkronisasi Waktu
Kembali
salah dan mesin akan mengabaikan permintaan ini

Status Tanggapan

 ResponseStatus

status respons yang disimpan ke kontak tertentu.

Hal ini masyarakat karena Hubungi adalah di depan umum

Status Server

 ServerState

keadaan saat ini dari Time Sync Server

Properti
kServerState_Idle

server siap untuk menanggapi permintaan dengan pengaturan normal

kServerState_UnreliableAfterBoot

waktu yang disediakan untuk server untuk menyinkronkan sistemnya waktu melalui beberapa cara lain hanya bermakna jika aIsAlwaysFresh benar ketika Init dipanggil

SyncFailedHandler

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

panggilan balik terjadi ketika sinkronisasi dianggap gagal, termasuk sinkronisasi otomatis.

perhatikan bahwa panggilan balik tidak terjadi jika Abort dipanggil untuk menghentikan sinkronisasi

rincian
Parameter
[in] aApp
Pointer ke data lapisan aplikasi, diatur di Init.
[in] aErrorCode
alasan kegagalan

SyncSucceededHandler

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

callback terjadi setelah sinkronisasi dianggap berhasil, termasuk sinkronisasi otomatis, tetapi sebelum hasilnya diterapkan.

Perhatikan bahwa berhasil tidak berarti kami memiliki hasil yang dapat diterapkan. Jika tidak ada respons yang diterima, aNumContributor akan disetel ke 0. lapisan aplikasi dapat menimpa aContact[i].mResponseStatus ke kResponseStatus_Invalid sehingga respons akan diabaikan dalam perhitungan

rincian
Parameter
[in] aApp
Pointer ke data lapisan aplikasi, diatur di Init.
[in] aOffsetUsec
jumlah koreksi yang digunakanc
[in] aIsReliable
adalah koreksi yang dianggap andal oleh logika bawaan
[in] aIsServer
apakah koreksi datang dari Server
[in] aNumContributor
jumlah node yang berkontribusi pada koreksi ini. 0 berarti tidak ada hasil dari operasi sinkronisasi.
Kembali
benar jika offset ini akan digunakan untuk mengatur waktu sistem. jika aNumContributor adalah 0, nilai pengembalian akan diabaikan.

TimeChangeNotificationHandler

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

panggilan balik untuk menunjukkan bahwa kami baru saja menerima Pemberitahuan Perubahan Waktu.

jika mode sinkronisasi otomatis diaktifkan, sinkronisasi waktu akan dijadwalkan segera setelah panggilan balik ini secara otomatis. jika tidak, lapisan aplikasi dapat memilih untuk memanggil rangkaian fungsi Sync untuk langsung memulai operasi sinkronisasi yang tidak dibatasi oleh aturan normal tidak-tersedia-dalam-panggilan-kembali. namun, harus dicatat bahwa panggilan balik khusus ini masih berada di atas tumpukan panggilan balik lapisan pertukaran Weave.

rincian
Parameter
[in] aApp
Pointer ke data lapisan aplikasi, diatur di Init.
[in] aNodeId
meminta ID simpul
[in] aNodeAddr
meminta alamat simpul

Atribut publik

FilterTimeCorrectionContributor

ContributorFilter FilterTimeCorrectionContributor

SinkronisasiGagal

SyncFailedHandler OnSyncFailed

OnSyncRequestDiterima

OnSyncRequestReceivedHandler OnSyncRequestReceived

jika tidak disetel, implementasi default selalu mengembalikan true

OnSyncBerhasil

SyncSucceededHandler OnSyncSucceeded

jika tidak disetel, perilaku default mengambil semua hasil, kecuali untuk koreksi server yang sangat kecil

OnTimeChangeNotificationDiterima

TimeChangeNotificationHandler OnTimeChangeNotificationReceived

mEncryptionType

uint8_t mEncryptionType

metode enkripsi untuk komunikasi lokal

mKeyId

uint16_t mKeyId

id kunci yang digunakan untuk komunikasi lokal

Atribut yang dilindungi

mApp

void * mApp

penunjuk ke data lapisan yang lebih tinggi

mClientState

ClientState mClientState

mConnectionToService

WeaveConnection * mConnectionToService

Koneksi TCP digunakan untuk berbicara dengan layanan.

mKontak

Contact mContacts[WEAVE_CONFIG_TIME_CLIENT_MAX_NUM_CONTACTS]

Kontak informasi yang dipelajari di seluruh penemuan.

sayaSelaluSegarF

bool mIsAlwaysFresh

mIsInCallback

bool mIsInCallback

benar jika kita sedang dalam panggilan balik ke lapisan yang lebih tinggi

MlastLikelihoodDikirim

int8_t mLastLikelihoodSent

mNumContributorInLastLocalSync

uint8_t mNumContributorInLastLocalSync

mPeran

TimeSyncRole mRole

Peran sebenarnya dari simpul ini.

mServerState

ServerState mServerState

mLayananKontak

Contact mServiceContact

mTimestampLastCorrectionFromServerOrNtp_usec

timesync_t mTimestampLastCorrectionFromServerOrNtp_usec

perhatikan itu harus waktu boot karena kami membutuhkan kompensasi untuk waktu tidur

mTimestampLastLocalSync_usec

timesync_t mTimestampLastLocalSync_usec

perhatikan itu harus waktu boot karena kami membutuhkan kompensasi untuk waktu tidur

Fungsi publik

Menggugurkan

WEAVE_ERROR Abort(
  void
)

memaksa mesin untuk kembali ke keadaan idle, membatalkan apa pun yang dilakukannya.

perhatikan tidak ada keberhasilan atau kegagalan sinkronisasi yang akan dipanggil. semua Weave Exchange akan ditutup. Koneksi TCP tidak akan disentuh lebih lanjut. tidak ada operasi jika kita sudah dalam keadaan idle. tidak tersedia dalam panggilan balik.

rincian
Kembali
WEAVE_NO_ERROR sukses

NonaktifkanSinkronisasiOtomatis

void DisableAutoSync(
  void
)

nonaktifkan sinkronisasi otomatis.

hanya tersedia dalam keadaan idle. tidak tersedia dalam panggilan balik.

AktifkanSinkronisasiOtomatis

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

aktifkan sinkronisasi otomatis.

hanya tersedia dalam keadaan idle. penemuan terjadi segera. tidak tersedia dalam panggilan balik.

rincian
Parameter
[in] aSyncPeriod_msec
jumlah mdtk antara sinkronisasi
[in] aNominalDiscoveryPeriod_msec
jumlah msec antara penemuan, jika tidak ada kesalahan komunikasi yang diamati
[in] aShortestDiscoveryPeriod_msec
waktu terpendek antara penemuan, dalam msec, jika kesalahan komunikasi telah diamati
Kembali
WEAVE_NO_ERROR sukses

DapatkanCapacityOfContactList

int GetCapacityOfContactList(
  void
) const 

pengambil sederhana untuk jumlah maksimum kontak yang dikonfigurasikan untuk disimpan oleh mesin ini

GetClientState

ClientState GetClientState(
  void
) const 

pengambil sederhana untuk status klien

DapatkanBerikutnyaKemungkinan

int8_t GetNextLikelihood(
  void
) const 

mengekstrak kemungkinan untuk persisten.

hasilnya hanya akan valid setelah operasi sinkronisasi selesai, dalam callback OnSyncSucceeded dan OnSyncFailed. jika tidak, itu sementara dan mungkin menjadi Kemungkinan saat ini daripada yang berikutnya untuk digunakan.

rincian
Kembali
kemungkinan respons untuk digunakan dalam permintaan berikutnya

DapatkanServerState

ServerState GetServerState(
  void
) const 

pengambil sederhana untuk status server

InitClient

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

inisialisasi klien ini.

tidak tersedia dalam panggilan balik

rincian
Parameter
[in] aApp
Pointer ke data lapisan yang lebih tinggi, digunakan dalam panggilan balik ke lapisan yang lebih tinggi.
[in] aExchangeMgr
Pointer ke objek Weave Exchange Manager di seluruh sistem
[in] aRole
dapat berupa kTimeSyncRole_Client atau kTimeSyncRole_Coordinator
[in] aEncryptionType
jenis enkripsi yang akan digunakan untuk permintaan dan tanggapan
[in] aKeyId
id kunci yang akan digunakan untuk permintaan dan tanggapan
[in] aInitialLikelyhood
kemungkinan awal yang akan digunakan untuk tahap penemuan
Kembali
WEAVE_NO_ERROR sukses

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
)

inisialisasi koordinator ini.

rincian
Parameter
[in] aExchangeMgr
Pointer ke objek Weave Exchange Manager di seluruh sistem
[in] aEncryptionType
jenis enkripsi yang akan digunakan untuk permintaan dan tanggapan
[in] aKeyId
id kunci yang akan digunakan untuk permintaan dan tanggapan
[in] aSyncPeriod_msec
jumlah mdtk antara sinkronisasi
[in] aNominalDiscoveryPeriod_msec
waktu terpendek antara penemuan, dalam msec, jika tidak ada kesalahan komunikasi yang diamati
[in] aShortestDiscoveryPeriod_msec
jumlah msec terkecil antara penemuan, jika kesalahan komunikasi telah diamati
Kembali
WEAVE_NO_ERROR sukses

InitServer

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

inisialisasi untuk peran Server harus dipanggil sebagai fungsi pertama setelah konstruksi objek jika tujuannya adalah menjadi Server Sinkronisasi Waktu.

tidak tersedia dalam panggilan balik

rincian
Parameter
[in] aApp
Pointer ke data lapisan yang lebih tinggi, digunakan dalam panggilan balik ke lapisan yang lebih tinggi.
[in] aExchangeMgr
Pointer ke objek Weave Exchange Manager di seluruh sistem
[in] aIsAlwaysFresh
dapat disetel ke true untuk menunjukkan server selalu disinkronkan kecuali untuk waktu awal yang tidak dapat diandalkan. harus disetel ke salah untuk Koordinator.
Kembali
WEAVE_NO_ERROR sukses

MulticastTimeChangeNotification

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

Dipanggil oleh lapisan yang lebih tinggi untuk pemberitahuan perubahan waktu multicast.

tidak tersedia dalam panggilan balik.

rincian
Parameter
[in] aEncryptionType
jenis enkripsi yang akan digunakan untuk pemberitahuan ini
[in] aKeyId
id kunci yang akan digunakan untuk notifikasi ini

DaftarKoreksiDariServerOrNtp

void RegisterCorrectionFromServerOrNtp(
  void
)

Dipanggil oleh lapisan yang lebih tinggi untuk menunjukkan bahwa kami baru saja menyelesaikan putaran waktu sinkronisasi dengan Server mana pun atau melalui beberapa cara yang dapat diandalkan seperti NTP.

DaftarLocalSyncOperation

void RegisterLocalSyncOperation(
  const uint8_t aNumContributor
)

Dipanggil oleh lapisan yang lebih tinggi untuk menunjukkan bahwa kami baru saja menyelesaikan putaran waktu sinkronisasi dengan Koordinator lokal lainnya.

rincian
Parameter
[in] aNumContributor
jumlah koordinator yang berkontribusi pada sinkronisasi waktu ini

Menutup

WEAVE_ERROR Shutdown(
  void
)

hentikan layanan, apa pun peran yang dimainkannya.

Fungsi ini harus dipanggil untuk mendapatkan kembali sumber daya yang dialokasikan dengan benar, sebelum panggilan lain ke salah satu fungsi init dapat dilakukan. tidak tersedia dalam panggilan balik.

rincian
Kembali
WEAVE_NO_ERROR sukses

Sinkronkan

WEAVE_ERROR Sync(
  const bool aForceDiscoverAgain
)

sinkronisasi menggunakan kontak yang ada.

operasi sinkronisasi bisa gagal jika tidak ada kontak valid yang tersedia. atur aForceDiscoverAgain ke true untuk memaksa penemuan segera. hanya tersedia dalam keadaan idle. tidak tersedia dalam panggilan balik.

rincian
Parameter
[in] aForceDiscoverAgain
benar jika semua kontak yang ada harus dibilas dan operasi penemuan dilakukan
Kembali
WEAVE_NO_ERROR sukses

SinkronkanDenganNode

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

sinkronisasi menggunakan daftar kontak yang diberikan.

daftar kontak yang ada akan memerah. hanya tersedia dalam keadaan idle. tidak tersedia dalam panggilan balik.

rincian
Parameter
[in] aNumNode
jumlah kontak dalam array aNodes
[in] aNodes
berbagai catatan kontak
Kembali
WEAVE_NO_ERROR sukses

SinkronkanDenganLayanan

WEAVE_ERROR SyncWithService(
  WeaveConnection *const aConnection
)

sinkronisasi menggunakan koneksi TCP yang diberikan dan enkripsi terkait serta id kunci.

pemanggil harus mengambil kepemilikan koneksi TCP setelah sinkronisasi selesai. tidak ada panggilan balik yang akan ditimpa untuk koneksi TCP, karena Weave Exchange baru akan dibuat dan panggilan balik diatur di atas konteks itu hanya tersedia dalam keadaan diam. tidak tersedia dalam panggilan balik.

rincian
Parameter
[in] aConnection
Sebuah pointer ke koneksi Weave
Kembali
WEAVE_NO_ERROR sukses

TimeSyncNode

 TimeSyncNode(
  void
)

Fungsi yang dilindungi

AbortOnError

void AbortOnError(
  const WEAVE_ERROR aCode
)

batalkan internal jika aCode bukan WEAVE_NO_ERROR

SinkronisasiOtomatisSekarang

void AutoSyncNow(
  void
)

fungsi internal untuk memulai sesi sinkronisasi otomatis

Panggilan BalikUntukPenyelesaianSinkronisasi

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
)

menginduksi panggilan balik ke lapisan aplikasi.

atur aIsSuccessful ke false untuk menginduksi panggilan balik kesalahan

Hapus Keadaan

void ClearState(
  void
)

HancurkanCommContext

bool DestroyCommContext(
  void
)

menutup Weave ExchangeContext

EndLocalSyncAndTryCalculateTimeFix

void EndLocalSyncAndTryCalculateTimeFix(
  void
)

EndServiceSyncAndTryCalculateTimeFix

void EndServiceSyncAndTryCalculateTimeFix(
  void
)

TemukanKontak yang Dapat Diganti

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

kembalikan slot untuk menyimpan informasi kontak

GetClientStateName

const char *const GetClientStateName(
  void
) const 

GetNextIdleKontak

Contact * GetNextIdleContact(
  void
)

dapatkan kontak valid dan idle berikutnya untuk diajak bicara

GetNumNotYetCompletedContacts

int16_t GetNumNotYetCompletedContacts(
  void
)

dapatkan nomor kontak yang valid, tetapi kami belum berbicara dengan mereka.

GetNumReliableResponses

int16_t GetNumReliableResponses(
  void
)

dapatkan jumlah tanggapan 'terpercaya' yang dikumpulkan sejauh ini.

dipanggil untuk menentukan apakah kami telah mengumpulkan cukup banyak tanggapan

InitState

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

Batalkan SemuaKontak

void InvalidateAllContacts(
  void
)

batalkan semua kontak lokal

Batalkan LayananKontak

void InvalidateServiceContact(
  void
)

batalkan kontak ke layanan

DaftarCommError

void RegisterCommError(
  Contact *const aContact
)

mendaftarkan kesalahan komunikasi pada kontak tertentu, dan mempersingkat periode penemuan otomatis jika diperlukan. Kontak dapat menjadi NULL untuk menunjukkan bahwa kami tidak memiliki siapa pun untuk diajak bicara, dan karenanya hanya mempersingkat periode penemuan otomatis

KirimSinkronisasiPermintaan

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

kirim permintaan sinkronisasi unicast ke kontak.

*rIsMessageSent akan diatur untuk menunjukkan jika pesan telah dikirim. kesalahan komunikasi seperti alamat tidak dapat dijangkau tidak dikembalikan, jadi penelepon harus memeriksa kode pengembalian dan *rIsMessageSent.

SetAllCompletedContactsToIdle

int16_t SetAllCompletedContactsToIdle(
  void
)

setel ulang semua kontak yang sudah selesai ke status siaga lagi, tetapi jangan sentuh responsnya.

ini disebut antara dua putaran komunikasi ke node yang sama

SetAllValidContactsToIdleAndInvalidateResponse

int16_t SetAllValidContactsToIdleAndInvalidateResponse(
  void
)

atur semua kontak lokal yang valid ke status siaga dan hapus respons.

ini dipanggil sebelum kita mulai menghubungi mereka satu per satu

Setel StatusKlien

void SetClientState(
  const ClientState state
)

SetupUnicastCommContext

WEAVE_ERROR SetupUnicastCommContext(
  Contact *const aContact
)

buat Weave Exchange baru untuk komunikasi unicast

KontakPemberitahuan Toko

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

simpan informasi kontak dari node yang baru saja mengirimi kami pemberitahuan perubahan waktu

Perbarui MulticastSyncResponse

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

memproses respons yang datang kembali dari permintaan multicast

PerbaruiUnicastSyncResponse

void UpdateUnicastSyncResponse(
  const TimeSyncResponse & aResponse
)

memproses respons yang datang kembali dari permintaan unicast

_InitClient

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

inisialisasi untuk peran Klien.

Dimaksudkan untuk digunakan secara internal oleh keluarga Init dari fungsi publik. Harus mengatur mClientState sebelum kembali. tidak tersedia dalam panggilan balik

rincian
Parameter
[in] aEncryptionType
jenis enkripsi yang akan digunakan untuk permintaan dan tanggapan
[in] aKeyId
id kunci yang akan digunakan untuk permintaan dan tanggapan
[in] aInitialLikelyhood
kemungkinan awal yang akan digunakan untuk tahap penemuan
Kembali
WEAVE_NO_ERROR sukses

_InitServer

WEAVE_ERROR _InitServer(
  const bool aIsAlwaysFresh
)

inisialisasi untuk peran Server.

Dimaksudkan untuk digunakan secara internal oleh keluarga Init dari fungsi publik. Harus mengatur mClientState sebelum kembali. tidak tersedia dalam panggilan balik

rincian
Parameter
[in] aIsAlwaysFresh
dapat disetel ke true untuk menunjukkan server selalu disinkronkan kecuali untuk waktu awal yang tidak dapat diandalkan. harus disetel ke salah untuk Koordinator.
Kembali
WEAVE_NO_ERROR sukses

_ShutdownClient

WEAVE_ERROR _ShutdownClient(
  void
)

hentikan klien yang tidak tersedia dalam panggilan balik.

rincian
Kembali
WEAVE_NO_ERROR sukses

_Koordinator Shutdown

WEAVE_ERROR _ShutdownCoordinator(
  void
)

hentikan koordinator yang tidak tersedia dalam panggilan balik.

rincian
Kembali
WEAVE_NO_ERROR sukses

_ShutdownServer

WEAVE_ERROR _ShutdownServer(
  void
)

hentikan server yang tidak tersedia dalam panggilan balik.

rincian
Kembali
WEAVE_NO_ERROR sukses

Fungsi statis yang dilindungi

HandleAutoDiscoveryTimeout

void HandleAutoDiscoveryTimeout(
  System::Layer *aSystemLayer,
  void *aAppState,
  System::Error aError
)

MenanganiAutoSyncTimeout

void HandleAutoSyncTimeout(
  System::Layer *aSystemLayer,
  void *aAppState,
  System::Error aError
)

MenanganiMulticastResponseTimeout

void HandleMulticastResponseTimeout(
  System::Layer *aSystemLayer,
  void *aAppState,
  System::Error aError
)

MenanganiMulticastSyncResponse

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
)

panggilan balik dari Weave Exchange ketika permintaan sinkronisasi waktu tiba

HandleTimeChangeNotification

void HandleTimeChangeNotification(
  ExchangeContext *ec,
  const IPPacketInfo *pktInfo,
  const WeaveMessageInfo *msgInfo,
  uint32_t profileId,
  uint8_t msgType,
  PacketBuffer *payload
)

MenanganiUnicastResponseTimeout

void HandleUnicastResponseTimeout(
  ExchangeContext *const ec
)

MenanganiUnicastSyncResponse

void HandleUnicastSyncResponse(
  ExchangeContext *ec,
  const IPPacketInfo *pktInfo,
  const WeaveMessageInfo *msgInfo,
  uint32_t profileId,
  uint8_t msgType,
  PacketBuffer *payload
)

MenanganiTidak Dapat DiandalkanAfterBootTimer

void HandleUnreliableAfterBootTimer(
  System::Layer *aSystemLayer,
  void *aAppState,
  System::Error aError
)

panggilan balik dari Weave Timer ketika kami melewati penghalang setelah boot yang tidak dapat diandalkan

IsOperationalState

bool IsOperationalState(
  ClientState aState
)

Tentukan apakah keadaan yang diberikan operasional.

Metode kemudahan untuk menentukan apakah ClientState menunjukkan status operasional, yaitu klien telah menyelesaikan inisialisasi dan tidak sedang dalam proses mematikan.

rincian
Parameter
[in] aState
keadaan yang akan dievaluasi
Kembali
true jika state jatuh setelah inisialisasi selesai dan sebelum shutdown dimulai, false sebaliknya.

_OnSyncBerhasil

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