nl:: Weave:: System:: Platform:: Layer
概要
関数 |
|
---|---|
DidInit(Layer & aLayer, void *aContext, Error aStatus)
|
NL_DLL_EXPORT void
これは、プラットフォーム固有の Weave システムのレイヤ初期化後のフックです。
|
DidShutdown(Layer & aLayer, void *aContext, Error aStatus)
|
NL_DLL_EXPORT void
これはプラットフォーム固有の Weave システム レイヤのシャットダウン前フックです。
|
DispatchEvent(Layer & aLayer, void *aContext, Event aEvent)
|
NL_DLL_EXPORT Error
これはプラットフォーム固有のイベント / メッセージのディスパッチ フックです。
|
DispatchEvents(Layer & aLayer, void *aContext)
|
NL_DLL_EXPORT Error
これはプラットフォーム固有のイベント / メッセージのディスパッチ フックです。
|
GetClock_Monotonic(void)
|
uint64_t
単調なシステム時刻をマイクロ秒単位で取得するプラットフォーム固有の関数。
|
GetClock_MonotonicHiRes(void)
|
uint64_t
高解像度の単調なシステム時刻をマイクロ秒単位で取得するプラットフォーム固有の関数。
|
GetClock_MonotonicMS(void)
|
uint64_t
単調なシステム時刻をミリ秒単位で取得するためのプラットフォーム固有の関数。
|
GetClock_RealTime(uint64_t & curTime)
|
Error
現在の実時間(常用)をマイクロ秒単位の Unix 時間形式で取得するためのプラットフォーム固有の関数。
|
GetClock_RealTimeMS(uint64_t & curTimeMS)
|
Error
現在の実時間(常用)時刻をミリ秒の Unix 時間形式で取得するためのプラットフォーム固有の関数。
|
PostEvent(Layer & aLayer, void *aContext, Object & aTarget, EventType aType, uintptr_t aArgument)
|
NL_DLL_EXPORT Error
これはプラットフォーム固有のイベント / メッセージ投稿フックです。
|
SetClock_RealTime(uint64_t newCurTime)
|
Error
現在の実時間(常用)を設定するプラットフォーム固有の関数。
|
StartTimer(Layer & aLayer, void *aContext, uint32_t aMilliseconds)
|
NL_DLL_EXPORT Error
これはプラットフォーム固有のイベント / メッセージのディスパッチ フックです。
|
WillInit(Layer & aLayer, void *aContext)
|
NL_DLL_EXPORT Error
これは、プラットフォーム固有の Weave システム レイヤ事前初期化フックです。
|
WillShutdown(Layer & aLayer, void *aContext)
|
NL_DLL_EXPORT Error
これはプラットフォーム固有の Weave システム レイヤのシャットダウン前フックです。
|
関数
DidInit
NL_DLL_EXPORT void DidInit( Layer & aLayer, void *aContext, Error aStatus )
これは、プラットフォーム固有の Weave システムのレイヤ初期化後のフックです。
これは、プリプロセッサ定義 WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_XTOR_FUNCTIONS をアサートすることでオーバーライドできます。
詳細 | |||||||
---|---|---|---|---|---|---|---|
パラメータ |
|
DidShutdown
NL_DLL_EXPORT void DidShutdown( Layer & aLayer, void *aContext, Error aStatus )
これはプラットフォーム固有の Weave システム レイヤのシャットダウン前フックです。
これは、プリプロセッサ定義 WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_XTOR_FUNCTIONS をアサートすることでオーバーライドできます。
詳細 | |||||||
---|---|---|---|---|---|---|---|
パラメータ |
|
||||||
戻り値 |
成功した場合は WEAVE_SYSTEM_NO_ERROR。それ以外の場合は、シャットダウンに失敗した理由を示す特定のエラー。失敗ステータスを返すと、シャットダウンが中止されます。
|
DispatchEvent
NL_DLL_EXPORT Error DispatchEvent( Layer & aLayer, void *aContext, Event aEvent )
これはプラットフォーム固有のイベント / メッセージのディスパッチ フックです。
これは、プリプロセッサ定義 WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_EVENT_FUNCTIONS をアサートすることでオーバーライドできます。
これにより、指定されたイベントがディスパッチされ、イベントの型と引数がアンマーシャリングされ、実際のディスパッチのために Weave システムの Layer::HandleEvent に引き渡されます。
詳細 | |||||||||
---|---|---|---|---|---|---|---|---|---|
パラメータ |
|
||||||||
戻り値 |
|
DispatchEvents
NL_DLL_EXPORT Error DispatchEvents( Layer & aLayer, void *aContext )
これはプラットフォーム固有のイベント / メッセージのディスパッチ フックです。
これは、プリプロセッサ定義 WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_EVENT_FUNCTIONS をアサートすることでオーバーライドできます。
これによりイベントループが発生します。このインスタンスにサービスを提供するキューを待機して、そのキューからイベントを取得し、処理するためにディスパッチします。
詳細 | |||||||||
---|---|---|---|---|---|---|---|---|---|
パラメータ |
|
||||||||
戻り値 |
|
GetClock_Monotonic
uint64_t GetClock_Monotonic( void )
単調なシステム時刻をマイクロ秒単位で取得するプラットフォーム固有の関数。
この関数は、プラットフォームで定義された任意のエポックからの経過時間をマイクロ秒単位で返すことが想定されています。プラットフォームの実装には、システムの再起動ごとに増加し続ける値(つまり、ラップされない値)を返す義務があります。さらに、復帰時の再起動を必要としないシステム スリープモード中は、基になるタイムソースが継続的にチ ックする必要があります。
この関数によって返される時刻のエポックは、GetClock_MonotonicMS() を含め、他の GetClock... 関数と同じである必要はありません。
この関数は、スレッド化を採用しているすべてのプラットフォーム上でスレッドセーフを想定しています。
詳細 | |
---|---|
戻り値 |
プラットフォームで定義された任意のエポックからの経過時間(マイクロ秒単位)。
|
GetClock_MonotonicHiRes
uint64_t GetClock_MonotonicHiRes( void )
高解像度の単調なシステム時刻をマイクロ秒単位で取得するプラットフォーム固有の関数。
この関数は、プラットフォームで定義された任意のエポックからの経過時間をマイクロ秒単位で返すことが想定されています。GetClock_MonotonicHiRes() によって返される値は、増加し続ける(つまり、ラップされない)必要があります。ただし、システムのディープ スリープ状態の間、基礎となるタイマーが連続して動作することは不要です。
段階的なクロック調整(スルーイング)の対象でない高解像度タイマーを使用して GetClock_MonotonicHiRes() を実装することをおすすめします。このようなタイマーのないプラットフォームでは、GetClock_MonotonicHiRes() は GetClock_Monotonic() と同じ値を返すことができます。
この関数によって返される時刻のエポックは、他の GetClock... 関数と同じである必要はありません。
この関数は、スレッド化を採用しているすべてのプラットフォーム上でスレッドセーフを想定しています。
詳細 | |
---|---|
戻り値 |
プラットフォームで定義された任意のエポックからの経過時間(マイクロ秒単位)。
|
GetClock_MonotonicMS
uint64_t GetClock_MonotonicMS( void )
単調なシステム時刻をミリ秒単位で取得するためのプラットフォーム固有の関数。
この関数は、プラットフォームで定義された任意のエポックからの経過時間(ミリ秒単位)を返すことが想定されています。プラットフォームの実装には、システムの再起動ごとに増加し続ける値(つまり、ラップされない値)を返す義務があります。さらに、復帰時の再起動を必要としないシステム スリープモード中は、基になるタイムソースが継続的にチ ックする必要があります。
この関数によって返される時刻のエポックは、GetClock_Monotonic() を含め、他の GetClock... 関数と同じである必要はありません。
この関数は、スレッド化を採用しているすべてのプラットフォーム上でスレッドセーフを想定しています。
詳細 | |
---|---|
戻り値 |
プラットフォームで定義された任意のエポックからの経過時間(ミリ秒単位)。
|
GetClock_RealTime
Error GetClock_RealTime( uint64_t & curTime )
現在の実時間(常用)をマイクロ秒単位の Unix 時間形式で取得するためのプラットフォーム固有の関数。
この関数は、ローカル プラットフォームの現在のリアルタイム概念を、マイクロ秒単位の Unix 時間値として返します。基礎となる時計は少なくとも整数秒(1,000,000 の値)のレートで経過する必要がありますが、速く経過することもあります。
リアルタイム トラッキングが可能なプラットフォームでは、システムがリアルタイムと同期していない場合、GetClock_RealTime() はエラー WEAVE_SYSTEM_ERROR_REAL_TIME_NOT_SYNCED を返す必要があります。
リアルタイム トラッキングに対応していないプラットフォームでは、GetClock_RealTime() 関数を実装しないでください。これにより、リアルタイムへのアクセスに依存する機能のリンク時エラーが強制的に発生します。または、このようなプラットフォームでは、WEAVE_SYSTEM_ERROR_NOT_SUPPORTED エラーを返す GetClock_RealTime() の実装が提供されている場合があります。
この関数は、スレッド化を採用しているすべてのプラットフォーム上でスレッドセーフを想定しています。
詳細 | |||||||
---|---|---|---|---|---|---|---|
パラメータ |
|
||||||
戻り値 |
|
GetClock_RealTimeMS
Error GetClock_RealTimeMS( uint64_t & curTimeMS )
現在の実時間(常用)時刻をミリ秒の Unix 時間形式で取得するためのプラットフォーム固有の関数。
この関数は、ローカル プラットフォームの現在のリアルタイム概念を、ミリ秒にスケーリングされた Unix 時間値として返します。
予想される動作の詳細については、GetClock_RealTime() のドキュメントをご覧ください。
詳細 | |||||||
---|---|---|---|---|---|---|---|
パラメータ |
|
||||||
戻り値 |
|
PostEvent
NL_DLL_EXPORT Error PostEvent( Layer & aLayer, void *aContext, Object & aTarget, EventType aType, uintptr_t aArgument )
これはプラットフォーム固有のイベント / メッセージ投稿フックです。
これは、プリプロセッサ定義 WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_EVENT_FUNCTIONS をアサートすることでオーバーライドできます。
指定した型のイベント / メッセージを、指定した引数とともにこのインスタンスのプラットフォーム固有のイベント / メッセージ キューに送信します。
詳細 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
パラメータ |
|
||||||||||
戻り値 |
成功した場合は WEAVE_SYSTEM_NO_ERROR。それ以外の場合は、初期化の失敗の理由を示す特定のエラー。
|
SetClock_RealTime
Error SetClock_RealTime( uint64_t newCurTime )
現在の実時間(常用)を設定するプラットフォーム固有の関数。
Weave はこの関数を呼び出して、ローカル プラットフォームの現在のリアルタイムという概念を設定します。新しい現在時刻は、マイクロ秒単位にスケールされた Unix 時間値で表されます。
一度設定すると、基礎となるプラットフォーム クロックは、少なくとも整数秒の粒度でリアルタイムを追跡することが想定されます。
リアルタイムのトラッキングをサポートしているプラットフォームでは、呼び出し側のアプリケーションに現在時刻を設定する権限がない場合、SetClock_RealTime() 関数がエラー WEAVE_SYSTEM_ERROR_ACCESS_DENIED を返す必要があります。
リアルタイムのトラッキングに対応していないプラットフォーム、またはリアルタイムを設定する機能が用意されていないプラットフォームは、SetClock_RealTime() 関数を実装しないでください。これにより、リアルタイムの設定に依存する機能のリンク時エラーが強制されます。または、このようなプラットフォームでは、WEAVE_SYSTEM_ERROR_NOT_SUPPORTED エラーを返す SetClock_RealTime() の実装を提供しています。
この関数は、スレッド化を採用しているすべてのプラットフォーム上でスレッドセーフを想定しています。
詳細 | |||||||
---|---|---|---|---|---|---|---|
パラメータ |
|
||||||
戻り値 |
|
StartTimer
NL_DLL_EXPORT Error StartTimer( Layer & aLayer, void *aContext, uint32_t aMilliseconds )
これはプラットフォーム固有のイベント / メッセージのディスパッチ フックです。
これは、プリプロセッサ定義 WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_EVENT_FUNCTIONS をアサートすることでオーバーライドできます。
詳細 | |||||||
---|---|---|---|---|---|---|---|
パラメータ |
|
||||||
戻り値 |
|
WillInit
NL_DLL_EXPORT Error WillInit( Layer & aLayer, void *aContext )
これは、プラットフォーム固有の Weave システム レイヤ事前初期化フックです。
これは、プリプロセッサ定義 WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_XTOR_FUNCTIONS をアサートすることでオーバーライドできます。
詳細 | |||||
---|---|---|---|---|---|
パラメータ |
|
||||
戻り値 |
成功した場合は WEAVE_SYSTEM_NO_ERROR。それ以外の場合は、初期化の失敗の理由を示す特定のエラー。失敗ステータスを返すと、初期化が中止されます。
|
WillShutdown
NL_DLL_EXPORT Error WillShutdown( Layer & aLayer, void *aContext )
これはプラットフォーム固有の Weave システム レイヤのシャットダウン前フックです。
これは、プリプロセッサ定義 WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_XTOR_FUNCTIONS をアサートすることでオーバーライドできます。
詳細 | |||||
---|---|---|---|---|---|
パラメータ |
|
||||
戻り値 |
成功した場合は WEAVE_SYSTEM_NO_ERROR。それ以外の場合は、シャットダウンに失敗した理由を示す特定のエラー。失敗ステータスを返すと、シャットダウンが中止されます。
|