nl:: Weave:: System:: Platform:: Layer
Ringkasan
Fungsi |
|
---|---|
DidInit(Layer & aLayer, void *aContext, Error aStatus)
|
NL_DLL_EXPORT void
Ini adalah hook pasca inisialisasi Lapisan Sistem Weave khusus platform.
|
DidShutdown(Layer & aLayer, void *aContext, Error aStatus)
|
NL_DLL_EXPORT void
Ini adalah hook pra-penonaktifan Lapisan Sistem Weave khusus platform.
|
DispatchEvent(Layer & aLayer, void *aContext, Event aEvent)
|
NL_DLL_EXPORT Error
Ini adalah hook pengiriman peristiwa / pesan khusus platform.
|
DispatchEvents(Layer & aLayer, void *aContext)
|
NL_DLL_EXPORT Error
Ini adalah hook pengiriman peristiwa / pesan 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 monoton beresolusi 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 riil (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 nyata (sipil) saat ini.
|
StartTimer(Layer & aLayer, void *aContext, uint32_t aMilliseconds)
|
NL_DLL_EXPORT Error
Ini adalah hook pengiriman peristiwa / pesan khusus platform.
|
WillInit(Layer & aLayer, void *aContext)
|
NL_DLL_EXPORT Error
Ini adalah hook pra-inisialisasi Lapisan Sistem Weave khusus platform.
|
WillShutdown(Layer & aLayer, void *aContext)
|
NL_DLL_EXPORT Error
Ini adalah hook pra-penonaktifan Lapisan Sistem Weave khusus platform.
|
Fungsi
DidInit
NL_DLL_EXPORT void DidInit( Layer & aLayer, void *aContext, Error aStatus )
Ini adalah hook pasca inisialisasi Lapisan Sistem Weave khusus platform.
Ini dapat diganti dengan menyatakan definisi praprosesor, WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_XTOR_FUNCTIONS.
Detail | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
DidShutdown
NL_DLL_EXPORT void DidShutdown( Layer & aLayer, void *aContext, Error aStatus )
Ini adalah hook pra-penonaktifan Lapisan Sistem Weave khusus platform.
Ini dapat diganti dengan menyatakan definisi praprosesor, WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_XTOR_FUNCTIONS.
Detail | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
||||||
Hasil |
WEAVE_SYSTEM_NO_ERROR saat berhasil; jika tidak, error tertentu yang menunjukkan alasan kegagalan shutdown. Jika status gagal ditampilkan, penonaktifan akan dibatalkan.
|
DispatchEvent
NL_DLL_EXPORT Error DispatchEvent( Layer & aLayer, void *aContext, Event aEvent )
Ini adalah hook pengiriman peristiwa / pesan khusus platform.
Ini dapat diganti dengan menyatakan definisi praprosesor, WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_EVENT_FUNCTIONS.
Tindakan ini mengirim peristiwa yang ditentukan untuk menangani, unmarshalshaling jenis dan argumen dari peristiwa untuk diserahkan ke Layer::HandleEvent Sistem Weave, untuk pengiriman yang sebenarnya.
Detail | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parameter |
|
||||||||
Nilai yang Ditampilkan |
|
DispatchEvents
NL_DLL_EXPORT Error DispatchEvents( Layer & aLayer, void *aContext )
Ini adalah hook pengiriman peristiwa / pesan khusus platform.
Ini dapat diganti dengan menyatakan definisi praprosesor, WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_EVENT_FUNCTIONS.
Hal ini memengaruhi loop peristiwa, yang menunggu antrean yang melayani instance ini, menarik peristiwa dari antrean tersebut, lalu mengirimkannya untuk ditangani.
Detail | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parameter |
|
||||||||
Nilai yang Ditampilkan |
|
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 proses mulai ulang sistem. Selain itu, sumber waktu yang mendasarinya diperlukan untuk terus bekerja selama mode tidur sistem yang tidak memerlukan mulai ulang saat bangun.
Epoch untuk waktu yang ditampilkan oleh fungsi ini tidak harus sama dengan fungsi GetClock... lainnya, termasuk GetClock_MonotonicMS().
Fungsi ini diharapkan aman untuk thread pada 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 monoton beresolusi tinggi dalam mikrodetik.
Fungsi ini diharapkan menampilkan waktu berlalu dalam mikrodetik karena epoch arbitrer yang ditentukan platform. Nilai yang ditampilkan oleh GetClock_MonotonicHiRes() harus terus meningkat (yaitu tidak pernah digabungkan). Namun, timer yang mendasarinya tidak diperlukan untuk terus bekerja selama status tidur nyenyak sistem.
Platform dianjurkan untuk menerapkan GetClock_MonotonicHiRes() menggunakan timer resolusi tinggi yang tidak mengalami penyesuaian jam secara 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 fungsi GetClock... lainnya.
Fungsi ini diharapkan aman untuk thread pada 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 oleh platform. Implementasi platform diwajibkan untuk menampilkan nilai yang terus meningkat (yaitu tidak pernah digabungkan) di antara proses mulai ulang sistem. Selain itu, sumber waktu yang mendasarinya diperlukan untuk terus bekerja selama mode tidur sistem yang tidak memerlukan mulai ulang saat bangun.
Epoch untuk waktu yang ditampilkan oleh fungsi ini tidak harus sama dengan epoch fungsi GetClock... lainnya, termasuk GetClock_Monotonic().
Fungsi ini diharapkan aman untuk thread pada platform apa pun yang menggunakan threading.
Detail | |
---|---|
Hasil |
Waktu berlalu dalam milidetik sejak epoch arbitrer yang ditentukan oleh platform.
|
GetClock_RealTime
Error GetClock_RealTime( uint64_t & curTime )
Fungsi khusus platform untuk mendapatkan waktu riil (sipil) saat ini dalam format waktu Unix mikrodetik.
Fungsi ini diharapkan akan mengembalikan gagasan platform lokal tentang real time saat ini, yang dinyatakan sebagai nilai waktu Unix yang diskalakan ke mikrodetik. Jam yang mendasarinya diperlukan untuk berdetak pada kecepatan setidaknya seluruh detik (nilai 1.000.000), tetapi mungkin berdetak lebih cepat.
Pada platform yang mampu melacak waktu nyata, GetClock_RealTime() harus mengembalikan kesalahan WEAVE_SYSTEM_ERROR_REAL_TIME_NOT_SYNCED setiap kali sistem tidak disinkronkan dengan waktu nyata.
Platform yang tidak mampu melacak real time sebaiknya tidak menerapkan fungsi GetClock_RealTime(), sehingga memaksa kegagalan link-time fitur yang bergantung pada akses ke real time. Atau, platform tersebut dapat menyediakan implementasi GetClock_RealTime() yang menampilkan error WEAVE_SYSTEM_ERROR_NOT_SUPPORTED.
Fungsi ini diharapkan aman untuk thread pada platform apa pun yang menggunakan threading.
Detail | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
||||||
Nilai yang Ditampilkan |
|
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 menampilkan gagasan platform lokal tentang real time saat ini, yang dinyatakan sebagai nilai waktu Unix yang diskalakan ke milidetik.
Lihat dokumentasi GetClock_RealTime() untuk mengetahui detail tentang perilaku yang diharapkan.
Detail | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
||||||
Nilai yang Ditampilkan |
|
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.
Ini dapat diganti dengan menyatakan definisi praprosesor, WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_EVENT_FUNCTIONS.
Tindakan ini akan memposting peristiwa / pesan dari jenis yang ditentukan dengan argumen yang diberikan ke peristiwa khusus platform / antrean pesan instance ini.
Detail | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Parameter |
|
||||||||||
Hasil |
WEAVE_SYSTEM_NO_ERROR saat berhasil; jika tidak, error tertentu yang menunjukkan alasan kegagalan inisialisasi.
|
SetClock_RealTime
Error SetClock_RealTime( uint64_t newCurTime )
Fungsi khusus platform untuk menyetel waktu nyata (sipil) saat ini.
Weave memanggil fungsi ini untuk menetapkan gagasan platform lokal tentang real time saat ini. Waktu saat ini baru dinyatakan sebagai nilai waktu Unix yang diskalakan ke mikrodetik.
Setelah ditetapkan, jam platform yang mendasarinya diharapkan untuk melacak waktu nyata dengan tingkat perincian setidaknya seluruh detik.
Pada platform yang mendukung pelacakan real time, fungsi SetClock_RealTime() harus menampilkan error WEAVE_SYSTEM_ERROR_ACCESS_DENIED jika aplikasi panggilan tidak memiliki hak istimewa untuk menetapkan waktu saat ini.
Platform yang tidak mampu melacak real time, atau tidak menawarkan kemampuan untuk menetapkan real time, sebaiknya tidak menerapkan fungsi SetClock_RealTime(), sehingga memaksa kegagalan link-time fitur yang bergantung pada setelan real time. Atau, platform tersebut dapat menyediakan implementasi SetClock_RealTime() yang menampilkan error WEAVE_SYSTEM_ERROR_NOT_SUPPORTED.
Fungsi ini diharapkan aman untuk thread pada platform apa pun yang menggunakan threading.
Detail | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
||||||
Nilai yang Ditampilkan |
|
StartTimer
NL_DLL_EXPORT Error StartTimer( Layer & aLayer, void *aContext, uint32_t aMilliseconds )
Ini adalah hook pengiriman peristiwa / pesan khusus platform.
Ini dapat diganti dengan menyatakan definisi praprosesor, WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_EVENT_FUNCTIONS.
Detail | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
||||||
Nilai yang Ditampilkan |
|
WillInit
NL_DLL_EXPORT Error WillInit( Layer & aLayer, void *aContext )
Ini adalah hook pra-inisialisasi Lapisan Sistem Weave khusus platform.
Ini dapat diganti dengan menyatakan definisi praprosesor, WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_XTOR_FUNCTIONS.
Detail | |||||
---|---|---|---|---|---|
Parameter |
|
||||
Hasil |
WEAVE_SYSTEM_NO_ERROR saat berhasil; jika tidak, error tertentu yang menunjukkan alasan kegagalan inisialisasi. Menampilkan status gagal yang gagal akan membatalkan inisialisasi.
|
WillShutdown
NL_DLL_EXPORT Error WillShutdown( Layer & aLayer, void *aContext )
Ini adalah hook pra-penonaktifan Lapisan Sistem Weave khusus platform.
Ini dapat diganti dengan menyatakan definisi praprosesor, WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_XTOR_FUNCTIONS.
Detail | |||||
---|---|---|---|---|---|
Parameter |
|
||||
Hasil |
WEAVE_SYSTEM_NO_ERROR saat berhasil; jika tidak, error tertentu yang menunjukkan alasan kegagalan shutdown. Jika status gagal ditampilkan, penonaktifan akan dibatalkan.
|