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 を表明することでオーバーライドできます。
これにより、イベント ループが発生し、このインスタンスにサービスを提供するキューを待機して、そのキューからイベントを pull し、処理のためにイベントをディスパッチします。
詳細 | |||||||||
---|---|---|---|---|---|---|---|---|---|
パラメータ |
|
||||||||
戻り値 |
|
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。それ以外の場合は、シャットダウンに失敗した理由を示す特定のエラー。失敗ステータスを返すと、シャットダウンは中止されます。
|