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
[in,out] aLayer
Referensi ke instance Layer Sistem Weave yang diinisialisasi.
[in,out] aContext
Data konteks khusus platform yang diteruskan ke metode inisialisasi lapisan, ::Init.
[in] anError
Status keseluruhan yang ditampilkan melalui metode Lapisan ::Init Sistem Weave.

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
[in,out] aLayer
Referensi ke instance Layer Sistem Weave yang sedang dimatikan.
[in,out] aContext
Data konteks khusus platform yang diteruskan ke metode inisialisasi lapisan, ::Shutdown.
[in] anError
Status keseluruhan yang ditampilkan melalui metode Lapisan Sistem Weave ::Shutdown.
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
[in,out] aLayer
Referensi ke instance lapisan yang akan dikirimi 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 yang Ditampilkan
#WEAVE_SYSTEM_ERROR_BAD_ARGS
Jika #aLayer atau target peristiwa adalah NULL.
#WEAVE_SYSTEM_ERROR_UNEXPECTED_EVENT
Jika jenis peristiwa tidak dikenal.
#WEAVE_SYSTEM_ERROR_UNEXPECTED_STATE
Jika status objek Layer Sistem Weave tidak diharapkan.
WEAVE_SYSTEM_NO_ERROR
Berhasil.

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
[in,out] aLayer
Referensi ke instance lapisan yang akan dikirimi peristiwa / pesan.
[in,out] aContext
Data konteks khusus platform yang diteruskan ke metode inisialisasi lapisan, ::Init.
Nilai yang Ditampilkan
#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 peristiwa tidak dikenal.
WEAVE_SYSTEM_NO_ERROR
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 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
[out] curTime
Waktu saat ini, dinyatakan sebagai waktu Unix yang diskalakan ke mikrodetik.
Nilai yang Ditampilkan
WEAVE_SYSTEM_NO_ERROR
Jika metode ini berhasil.
#WEAVE_SYSTEM_ERROR_REAL_TIME_NOT_SYNCED
Apakah platform dapat melacak waktu nyata, tetapi saat ini tidak disinkronkan.
#WEAVE_SYSTEM_ERROR_NOT_SUPPORTED
Jika platform tidak dapat melacak 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 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
[out] curTime
Waktu saat ini, yang dinyatakan sebagai waktu Unix yang diskalakan ke milidetik.
Nilai yang Ditampilkan
WEAVE_SYSTEM_NO_ERROR
Jika metode ini berhasil.
#WEAVE_SYSTEM_ERROR_REAL_TIME_NOT_SYNCED
Apakah platform dapat melacak waktu nyata, tetapi saat ini tidak disinkronkan.
#WEAVE_SYSTEM_ERROR_NOT_SUPPORTED
Jika platform tidak dapat melacak 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.

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
[in,out] aLayer
Pointer 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 peristiwa yang akan diposting.
[in,out] anArg
Argumen yang terkait dengan peristiwa yang akan diposting.
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
[in] newCurTime
Waktu saat ini, dinyatakan sebagai waktu Unix yang diskalakan ke mikrodetik.
Nilai yang Ditampilkan
WEAVE_SYSTEM_NO_ERROR
Jika metode ini berhasil.
#WEAVE_SYSTEM_ERROR_NOT_SUPPORTED
Jika platform tidak dapat melacak real time.
#WEAVE_SYSTEM_ERROR_ACCESS_DENIED
Jika aplikasi panggilan tidak memiliki hak istimewa untuk menetapkan waktu saat ini.

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
[in,out] aLayer
Referensi ke instance lapisan yang akan dikirimi peristiwa / pesan.
[in,out] aContext
Data konteks khusus platform yang diteruskan ke metode inisialisasi lapisan, ::Init.
[in] aMilliseconds
Jumlah milidetik yang akan disetel untuk timer.
Nilai yang Ditampilkan
WEAVE_SYSTEM_NO_ERROR
Selalu berhasil kecuali diganti.

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
[in,out] aLayer
Referensi ke instance Layer Sistem Weave yang 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 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
[in,out] aLayer
Pointer ke instance Layer Sistem Weave yang sedang dimatikan.
[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 shutdown. Jika status gagal ditampilkan, penonaktifan akan dibatalkan.