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 |
|
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 |
|
||||||
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 |
|
||||||||
Nilai Pengembalian |
|
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 |
|
||||||||
Nilai Pengembalian |
|
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 |
|
||||||
Nilai Pengembalian |
|
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 |
|
||||||
Nilai Pengembalian |
|
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 |
|
||||||||||
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 |
|
||||||
Nilai Pengembalian |
|
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 |
|
||||||
Nilai Pengembalian |
|
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 |
|
||||
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 |
|
||||
Hasil |
WEAVE_SYSTEM_NO_ERROR saat berhasil; jika tidak, error tertentu yang menunjukkan alasan kegagalan penonaktifan. Menampilkan status gagal akan membatalkan penonaktifan.
|