nl:: Weave:: System:: Platform:: Layer
摘要
函式 |
|
---|---|
DidInit(Layer & aLayer, void *aContext, Error aStatus)
|
NL_DLL_EXPORT void
這是特定平台專用的 Weave 系統 Layer 後,會在初始化後掛鉤。
|
DidShutdown(Layer & aLayer, void *aContext, Error aStatus)
|
NL_DLL_EXPORT void
這是特定平台專用的 Weave 系統 Layer 關閉前掛鉤。
|
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 系統 Layer 預先初始化掛鉤。
|
WillShutdown(Layer & aLayer, void *aContext)
|
NL_DLL_EXPORT Error
這是特定平台專用的 Weave 系統 Layer 關閉前掛鉤。
|
函式
DidInit
NL_DLL_EXPORT void DidInit( Layer & aLayer, void *aContext, Error aStatus )
這是特定平台專用的 Weave 系統 Layer 後,會在初始化後掛鉤。
宣告預先處理工具定義 WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_XTOR_FUNCTIONS,可能會覆寫這項設定。
詳細說明 | |||||||
---|---|---|---|---|---|---|---|
參數 |
|
DidShutdown
NL_DLL_EXPORT void DidShutdown( Layer & aLayer, void *aContext, Error aStatus )
這是特定平台專用的 Weave 系統 Layer 關閉前掛鉤。
宣告預先處理工具定義 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... 函式 (包括 GetClock_MonotonicMS()) 相同。
此函式應在採用執行緒的任何平台上都符合執行緒安全性。
詳細說明 | |
---|---|
傳回 |
從任意平台定義的 Epoch 紀元後經過的時間,以微秒為單位。
|
GetClock_MonotonicHiRes
uint64_t GetClock_MonotonicHiRes( void )
特定平台專用的功能,用於取得高解析度的單聲道系統時間 (以微秒為單位)。
此函式應傳回經過的時間 (以微秒為單位),自平台定義的任意週期以來。GetClock_MonotonicHiRes() 傳回的值必須不斷增加 (也就是永不換行)。然而,在系統深度睡眠狀態期間,「不」需要持續執行基礎計時器。
建議平台使用高解析度計時器實作 GetClock_MonotonicHiRes(),且該計時器不需逐步調整 (搖桿)。在沒有設定計時器的平台上,GetClock_MonotonicHiRes() 可傳回與 GetClock_Monotonic() 相同的值。
這個函式傳回的時間紀元,不一定要與其他 GetClock... 函式相同。
此函式應在採用執行緒的任何平台上都符合執行緒安全性。
詳細說明 | |
---|---|
傳回 |
從任意平台定義的 Epoch 紀元後經過的時間,以微秒為單位。
|
GetClock_MonotonicMS
uint64_t GetClock_MonotonicMS( void )
用來取得單調系統時間 (以毫秒為單位) 的平台專屬功能。
此函式應傳回經過的時間 (以毫秒為單位),從任意平台定義的 Epoch 紀元時間。平台實作作業有義務傳回在系統重新啟動間成長幅度逐漸增加的值 (即一律不換行)。此外,如有任何系統睡眠模式是處於喚醒後重新啟動的模式,就必須持續使用基準時間來源。
這個函式傳回的時間週期不必與任何其他 GetClock... 函式 (包括 GetClock_Monotonic()) 相同。
此函式應在採用執行緒的任何平台上都符合執行緒安全性。
詳細說明 | |
---|---|
傳回 |
從任意平台定義的 Epoch 紀元後經過的時間,以毫秒為單位。
|
GetClock_RealTime
Error GetClock_RealTime( uint64_t & curTime )
用來取得目前實際 (民用) 時間的平台專屬功能,採用微秒 Unix 時間格式。
這個函式應會傳回當地平台針對目前即時的概念 (以縮放成微秒的 Unix 時間值表示)。基礎時鐘必須以至少整秒 (1,000,000 的值) 為準,但速度可能更快。
在能夠即時追蹤的平台上,GetClock_RealTime() 一律必須傳回 WEAVE_SYSTEM_ERROR_REAL_TIME_NOT_SYNCED 錯誤,直到系統與即時同步為止。
無法即時追蹤的平台不應導入 GetClock_RealTime() 函式,導致需要即時存取權的功能發生連結時無法使用。此外,這類平台也可能提供 GetClock_RealTime() 的實作方式,以傳回 WEAVE_SYSTEM_ERROR_NOT_SUPPORTED 錯誤。
此函式應在採用執行緒的任何平台上都符合執行緒安全性。
詳細說明 | |||||||
---|---|---|---|---|---|---|---|
參數 |
|
||||||
傳回值 |
|
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() 函式,導致需要使用即時設定的功能發生連結時錯誤。此外,這類平台也可能提供 SetClock_RealTime() 的實作方式,以傳回 WEAVE_SYSTEM_ERROR_NOT_SUPPORTED 錯誤。
此函式應在採用執行緒的任何平台上都符合執行緒安全性。
詳細說明 | |||||||
---|---|---|---|---|---|---|---|
參數 |
|
||||||
傳回值 |
|
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 系統 Layer 預先初始化掛鉤。
宣告預先處理工具定義 WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_XTOR_FUNCTIONS,可能會覆寫這項設定。
詳細說明 | |||||
---|---|---|---|---|---|
參數 |
|
||||
傳回 |
WEAVE_SYSTEM_NO_ERROR,否則發生指出初始化失敗的特定錯誤。如果傳回未成功的狀態,系統會取消初始化作業。
|
WillShutdown
NL_DLL_EXPORT Error WillShutdown( Layer & aLayer, void *aContext )
這是特定平台專用的 Weave 系統 Layer 關閉前掛鉤。
宣告預先處理工具定義 WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_XTOR_FUNCTIONS,可能會覆寫這項設定。
詳細說明 | |||||
---|---|---|---|---|---|
參數 |
|
||||
傳回 |
WEAVE_SYSTEM_NO_ERROR;否則,這是指出關閉失敗原因的特定錯誤。如果傳回未成功的狀態,系統會取消關閉作業。
|