nl::Weave::System::Platform::Layer

Ringkasan

Fungsi

DidInit(Layer & aLayer, void *aContext, Error aStatus)
NL_DLL_EXPORT void
Ini adalah hook Layer Sistem Weave khusus platform.
DidShutdown(Layer & aLayer, void *aContext, Error aStatus)
NL_DLL_EXPORT void
Ini adalah hook Layer Sistem Weave khusus platform.
DispatchEvent(Layer & aLayer, void *aContext, Event aEvent)
NL_DLL_EXPORT Error
Ini adalah hook pengiriman pesan / peristiwa khusus platform.
DispatchEvents(Layer & aLayer, void *aContext)
NL_DLL_EXPORT Error
Ini adalah hook pengiriman pesan / peristiwa khusus platform.
GetClock_Monotonic(void)
uint64_t
Fungsi khusus platform untuk mendapatkan waktu sistem monoton dalam mikrodetik.
GetClock_MonotonicHiRes(void)
uint64_t
Fungsi khusus platform untuk mendapatkan waktu sistem monotonik resolusi tinggi dalam mikrodetik.
GetClock_MonotonicMS(void)
uint64_t
Fungsi khusus platform untuk mendapatkan waktu sistem monoton dalam milidetik.
GetClock_RealTime(uint64_t & curTime)
Error
Fungsi khusus platform untuk mendapatkan waktu nyata (sipil) saat ini dalam format waktu Unix mikrodetik.
GetClock_RealTimeMS(uint64_t & curTimeMS)
Error
Fungsi khusus platform untuk mendapatkan waktu nyata (sipil) saat ini dalam format waktu Unix milidetik.
PostEvent(Layer & aLayer, void *aContext, Object & aTarget, EventType aType, uintptr_t aArgument)
NL_DLL_EXPORT Error
Ini adalah hook postingan pesan / peristiwa khusus platform.
SetClock_RealTime(uint64_t newCurTime)
Error
Fungsi khusus platform untuk menyetel waktu riil (sipil) saat ini.
StartTimer(Layer & aLayer, void *aContext, uint32_t aMilliseconds)
NL_DLL_EXPORT Error
Ini adalah hook pengiriman pesan / peristiwa khusus platform.
WillInit(Layer & aLayer, void *aContext)
NL_DLL_EXPORT Error
Ini adalah hook pra-inisialisasi Layer Sistem Weave khusus platform.
WillShutdown(Layer & aLayer, void *aContext)
NL_DLL_EXPORT Error
Ini adalah hook Layer Sistem Weave khusus platform.

Fungsi

DidInit

NL_DLL_EXPORT void DidInit(
  Layer & aLayer,
  void *aContext,
  Error aStatus
)

Ini adalah hook Layer Sistem Weave khusus platform.

Tindakan ini dapat diganti dengan menetapkan definisi praprosesor, WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_XTOR_FUNCTIONS.

Detail
Parameter
[in,out] aLayer
Referensi ke instance Layer Sistem Weave yang sedang diinisialisasi.
[in,out] aContext
Data konteks khusus platform yang diteruskan ke metode inisialisasi lapisan, ::Init.
[in] anError
Status keseluruhan yang ditampilkan melalui metode Layer ::Init Sistem Weave.

DidShutdown

NL_DLL_EXPORT void DidShutdown(
  Layer & aLayer,
  void *aContext,
  Error aStatus
)

Ini adalah hook Layer Sistem Weave khusus platform.

Tindakan ini dapat diganti dengan menetapkan definisi praprosesor, WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_XTOR_FUNCTIONS.

Detail
Parameter
[in,out] aLayer
Referensi ke instance Layer Sistem Weave yang sedang dihentikan.
[in,out] aContext
Data konteks khusus platform yang diteruskan ke metode inisialisasi lapisan, ::Shutdown.
[in] anError
Status keseluruhan yang ditampilkan melalui metode Layer ::Shutdown Sistem Weave.
Hasil
WEAVE_SYSTEM_NO_ERROR saat berhasil; jika tidak, error tertentu yang menunjukkan alasan kegagalan penonaktifan. Menampilkan status gagal akan membatalkan penonaktifan.

DispatchEvent

NL_DLL_EXPORT Error DispatchEvent(
  Layer & aLayer,
  void *aContext,
  Event aEvent
)

Ini adalah hook pengiriman pesan / peristiwa khusus platform.

Tindakan ini dapat diganti dengan menetapkan definisi praprosesor, WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_EVENT_FUNCTIONS.

Tindakan ini akan mengirim peristiwa yang ditentukan untuk ditangani, membatalkan marshall jenis dan argumen dari peristiwa untuk diserahkan ke Layer::HandleEvent Weave System untuk pengiriman yang sebenarnya.

Detail
Parameter
[in,out] aLayer
Referensi ke instance lapisan yang menerima pengiriman peristiwa / pesan.
[in,out] aContext
Data konteks khusus platform yang diteruskan ke metode inisialisasi lapisan, ::Init.
[in] anEvent
Objek peristiwa khusus platform yang akan dikirim untuk ditangani.
Nilai Pengembalian
#WEAVE_SYSTEM_ERROR_BAD_ARGS
Jika #aLayer atau target peristiwa adalah NULL.
#WEAVE_SYSTEM_ERROR_UNEXPECTED_EVENT
Jika jenis acara tidak dikenal.
#WEAVE_SYSTEM_ERROR_UNEXPECTED_STATE
Jika status objek Layer Sistem Weave tidak diharapkan.
WEAVE_SYSTEM_NO_ERROR
Setelah berhasil.

DispatchEvents

NL_DLL_EXPORT Error DispatchEvents(
  Layer & aLayer,
  void *aContext
)

Ini adalah hook pengiriman pesan / peristiwa khusus platform.

Tindakan ini dapat diganti dengan menetapkan definisi praprosesor, WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_EVENT_FUNCTIONS.

Hal ini akan mempengaruhi loop peristiwa, menunggu antrean yang melayani instance ini, menarik peristiwa dari antrean tersebut, lalu mengirimkannya untuk ditangani.

Detail
Parameter
[in,out] aLayer
Referensi ke instance lapisan yang menerima pengiriman peristiwa / pesan.
[in,out] aContext
Data konteks khusus platform yang diteruskan ke metode inisialisasi lapisan, ::Init.
Nilai Pengembalian
#WEAVE_SYSTEM_ERROR_BAD_ARGS
Jika #aLayer atau #aContext adalah NULL.
#WEAVE_SYSTEM_ERROR_UNEXPECTED_STATE
Jika status objek Layer Sistem Weave tidak diharapkan.
#WEAVE_SYSTEM_ERROR_UNEXPECTED_EVENT
Jika jenis acara tidak dikenal.
WEAVE_SYSTEM_NO_ERROR
Setelah berhasil.

GetClock_Monotonic

uint64_t GetClock_Monotonic(
  void
)

Fungsi khusus platform untuk mendapatkan waktu sistem monoton dalam mikrodetik.

Fungsi ini diharapkan menampilkan waktu berlalu dalam mikrodetik karena epoch arbitrer yang ditentukan platform. Implementasi platform diwajibkan untuk menampilkan nilai yang terus meningkat (yaitu tidak pernah digabungkan) di antara reboot sistem. Selain itu, sumber waktu yang mendasarinya diperlukan untuk terus berdetak selama mode tidur sistem apa pun yang tidak memerlukan mulai ulang setelah bangun.

Epoch untuk waktu yang ditampilkan oleh fungsi ini tidak harus sama dengan epoch untuk fungsi GetClock... lainnya, termasuk GetClock_MonotonicMS().

Fungsi ini diharapkan dapat menjalankan thread-safe di platform apa pun yang menggunakan threading.

Detail
Hasil
Waktu berlalu dalam mikrodetik sejak epoch arbitrer yang ditentukan platform.

GetClock_MonotonicHiRes

uint64_t GetClock_MonotonicHiRes(
  void
)

Fungsi khusus platform untuk mendapatkan waktu sistem monotonik resolusi tinggi dalam mikrodetik.

Fungsi ini diharapkan menampilkan waktu berlalu dalam mikrodetik karena epoch arbitrer yang ditentukan platform. Nilai yang dikembalikan oleh GetClock_MonotonicHiRes() harus terus meningkat (yaitu tidak pernah digabungkan). Namun, timer yang mendasarinya tidak perlu terus berdetak selama sistem tidur nyenyak.

Platform dianjurkan untuk mengimplementasikan GetClock_MonotonicHiRes() menggunakan timer resolusi tinggi yang tidak tunduk pada penyesuaian jam bertahap (slewing). Pada platform tanpa timer seperti itu, GetClock_MonotonicHiRes() dapat menampilkan nilai yang sama dengan GetClock_Monotonic().

Epoch untuk waktu yang ditampilkan oleh fungsi ini tidak harus sama dengan epoch untuk fungsi GetClock... lainnya.

Fungsi ini diharapkan dapat menjalankan thread-safe di platform apa pun yang menggunakan threading.

Detail
Hasil
Waktu berlalu dalam mikrodetik sejak epoch arbitrer yang ditentukan platform.

GetClock_MonotonicMS

uint64_t GetClock_MonotonicMS(
  void
)

Fungsi khusus platform untuk mendapatkan waktu sistem monoton dalam milidetik.

Fungsi ini diharapkan menampilkan waktu berlalu dalam milidetik sejak epoch arbitrer yang ditentukan platform. Implementasi platform diwajibkan untuk menampilkan nilai yang terus meningkat (yaitu tidak pernah digabungkan) di antara reboot sistem. Selain itu, sumber waktu yang mendasarinya diperlukan untuk terus berdetak selama mode tidur sistem apa pun yang tidak memerlukan mulai ulang setelah bangun.

Epoch untuk waktu yang ditampilkan oleh fungsi ini tidak harus sama dengan epoch untuk fungsi GetClock... lainnya, termasuk GetClock_Monotonic().

Fungsi ini diharapkan dapat menjalankan thread-safe di platform apa pun yang menggunakan threading.

Detail
Hasil
Waktu berlalu dalam milidetik sejak epoch arbitrer yang ditentukan platform.

GetClock_RealTime

Error GetClock_RealTime(
  uint64_t & curTime
)

Fungsi khusus platform untuk mendapatkan waktu nyata (sipil) saat ini dalam format waktu Unix mikrodetik.

Fungsi ini diharapkan akan menampilkan gagasan platform lokal tentang real time saat ini, yang dinyatakan sebagai nilai waktu Unix yang diskalakan ke mikrodetik. Jam yang mendasarinya diperlukan untuk berdetak dengan kecepatan setidaknya setidaknya satu detik penuh (nilai 1.000.000), tetapi dapat berdetak lebih cepat.

Pada platform yang dapat melacak secara real time, GetClock_RealTime() harus menampilkan error WEAVE_SYSTEM_ERROR_REAL_TIME_NOT_SYNCED setiap kali sistem tidak disinkronkan dengan real time.

Platform yang tidak dapat melacak secara real time tidak boleh menerapkan fungsi GetClock_RealTime(), sehingga memaksa kegagalan waktu link dari fitur yang bergantung pada akses ke waktu nyata. Atau, platform tersebut dapat menyediakan implementasi GetClock_RealTime() yang menampilkan error WEAVE_SYSTEM_ERROR_NOT_SUPPORTED.

Fungsi ini diharapkan dapat menjalankan thread-safe di platform apa pun yang menggunakan threading.

Detail
Parameter
[out] curTime
Waktu saat ini, dinyatakan sebagai waktu Unix yang diskalakan ke mikrodetik.
Nilai Pengembalian
WEAVE_SYSTEM_NO_ERROR
Jika metode ini berhasil.
#WEAVE_SYSTEM_ERROR_REAL_TIME_NOT_SYNCED
Jika platform dapat melacak secara real time, tetapi saat ini tidak disinkronkan.
#WEAVE_SYSTEM_ERROR_NOT_SUPPORTED
Apakah platform tidak dapat melakukan pelacakan secara real time.

GetClock_RealTimeMS

Error GetClock_RealTimeMS(
  uint64_t & curTimeMS
)

Fungsi khusus platform untuk mendapatkan waktu nyata (sipil) saat ini dalam format waktu Unix milidetik.

Fungsi ini diharapkan menghasilkan gagasan platform lokal tentang real time saat ini, yang dinyatakan sebagai nilai waktu Unix yang diskalakan ke milidetik.

Lihat dokumentasi GetClock_RealTime() untuk detail tentang perilaku yang diharapkan.

Detail
Parameter
[out] curTime
Waktu saat ini, dinyatakan sebagai waktu Unix yang diskalakan ke milidetik.
Nilai Pengembalian
WEAVE_SYSTEM_NO_ERROR
Jika metode ini berhasil.
#WEAVE_SYSTEM_ERROR_REAL_TIME_NOT_SYNCED
Jika platform dapat melacak secara real time, tetapi saat ini tidak disinkronkan.
#WEAVE_SYSTEM_ERROR_NOT_SUPPORTED
Apakah platform tidak dapat melakukan pelacakan secara real time.

PostEvent

NL_DLL_EXPORT Error PostEvent(
  Layer & aLayer,
  void *aContext,
  Object & aTarget,
  EventType aType,
  uintptr_t aArgument
)

Ini adalah hook postingan pesan / peristiwa khusus platform.

Tindakan ini dapat diganti dengan menetapkan definisi praprosesor, WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_EVENT_FUNCTIONS.

Tindakan ini akan memposting peristiwa / pesan dari jenis yang ditentukan beserta argumen yang diberikan ke peristiwa khusus platform / antrean pesan dari instance ini.

Detail
Parameter
[in,out] aLayer
Penunjuk ke instance lapisan tempat peristiwa / pesan diposting.
[in,out] aContext
Data konteks khusus platform yang diteruskan ke metode inisialisasi lapisan, ::Init.
[in,out] aTarget
Pointer ke objek Layer Sistem Weave yang membuat permintaan postingan.
[in] aType
Jenis acara yang akan diposting.
[in,out] anArg
Argumen yang terkait dengan peristiwa yang akan diposting.
Hasil
WEAVE_SYSTEM_NO_ERROR saat berhasil; jika tidak, error spesifik yang menunjukkan alasan kegagalan inisialisasi.

SetClock_RealTime

Error SetClock_RealTime(
  uint64_t newCurTime
)

Fungsi khusus platform untuk menyetel waktu riil (sipil) saat ini.

Weave memanggil fungsi ini untuk menyetel konsep platform lokal tentang real time saat ini. Waktu baru saat ini dinyatakan sebagai nilai waktu Unix yang diskalakan ke mikrodetik.

Setelah ditetapkan, jam platform dasar diharapkan melacak waktu nyata dengan perincian setidaknya seluruh detik.

Pada platform yang mendukung pelacakan waktu nyata, fungsi SetClock_RealTime() harus mengembalikan kesalahan WEAVE_SYSTEM_ERROR_ACCESS_DENIED jika aplikasi panggilan tidak memiliki hak istimewa untuk mengatur waktu saat ini.

Platform yang tidak dapat melacak secara real time, atau tidak menawarkan kemampuan untuk mengatur real time, tidak boleh menerapkan fungsi SetClock_RealTime(), sehingga memaksa kegagalan waktu link dari fitur yang bergantung pada pengaturan real time. Atau, platform tersebut mungkin menyediakan implementasi SetClock_RealTime() yang menampilkan error WEAVE_SYSTEM_ERROR_NOT_SUPPORTED.

Fungsi ini diharapkan dapat menjalankan thread-safe di platform apa pun yang menggunakan threading.

Detail
Parameter
[in] newCurTime
Waktu baru saat ini, dinyatakan sebagai waktu Unix yang diskalakan ke mikrodetik.
Nilai Pengembalian
WEAVE_SYSTEM_NO_ERROR
Jika metode ini berhasil.
#WEAVE_SYSTEM_ERROR_NOT_SUPPORTED
Apakah platform tidak dapat melakukan pelacakan secara real time.
#WEAVE_SYSTEM_ERROR_ACCESS_DENIED
Jika aplikasi panggilan tidak memiliki hak istimewa untuk menyetel waktu saat ini.

StartTimer

NL_DLL_EXPORT Error StartTimer(
  Layer & aLayer,
  void *aContext,
  uint32_t aMilliseconds
)

Ini adalah hook pengiriman pesan / peristiwa khusus platform.

Tindakan ini dapat diganti dengan menetapkan definisi praprosesor, WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_EVENT_FUNCTIONS.

Detail
Parameter
[in,out] aLayer
Referensi ke instance lapisan yang menerima pengiriman peristiwa / pesan.
[in,out] aContext
Data konteks khusus platform yang diteruskan ke metode inisialisasi lapisan, ::Init.
[in] aMilliseconds
Jumlah milidetik yang harus disetel untuk timer.
Nilai Pengembalian
WEAVE_SYSTEM_NO_ERROR
Selalu berhasil kecuali diganti.

WillInit

NL_DLL_EXPORT Error WillInit(
  Layer & aLayer,
  void *aContext
)

Ini adalah hook pra-inisialisasi Layer Sistem Weave khusus platform.

Tindakan ini dapat diganti dengan menetapkan definisi praprosesor, WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_XTOR_FUNCTIONS.

Detail
Parameter
[in,out] aLayer
Referensi ke instance Layer Sistem Weave yang sedang diinisialisasi.
[in,out] aContext
Data konteks khusus platform yang diteruskan ke metode inisialisasi lapisan, ::Init.
Hasil
WEAVE_SYSTEM_NO_ERROR saat berhasil; jika tidak, error spesifik yang menunjukkan alasan kegagalan inisialisasi. Menampilkan status gagal akan membatalkan inisialisasi.

WillShutdown

NL_DLL_EXPORT Error WillShutdown(
  Layer & aLayer,
  void *aContext
)

Ini adalah hook Layer Sistem Weave khusus platform.

Tindakan ini dapat diganti dengan menetapkan definisi praprosesor, WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_XTOR_FUNCTIONS.

Detail
Parameter
[in,out] aLayer
Pointer ke instance Layer Sistem Weave yang sedang dinonaktifkan.
[in,out] aContext
Data konteks khusus platform yang diteruskan ke metode inisialisasi lapisan, ::Shutdown.
Hasil
WEAVE_SYSTEM_NO_ERROR saat berhasil; jika tidak, error tertentu yang menunjukkan alasan kegagalan penonaktifan. Menampilkan status gagal akan membatalkan penonaktifan.