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 )
平台特定功能,用於取得單調系統時間 (以微秒為單位)。
由於任意、平台定義的 Epoch,此函式預期會傳回經過時間 (以微秒為單位)。平台實作必須傳回會在系統重新啟動之間不斷遞增 (即從未換行) 的值。此外,如有任何系統睡眠模式 (不會在醒來後重新啟動) ,基礎時間來源就必須持續保持不變。
其他 GetClock... 函式 (包括 GetClock_MonotonicMS()) 時,此函式所傳回時間的週期不必相同。
在採用執行緒的任何平台上,此函式應該符合執行緒安全規定。
詳細資料 | |
---|---|
傳回 |
從平台定義任意訓練週期以來經過的時間 (以微秒為單位)。
|
GetClock_MonotonicHiRes
uint64_t GetClock_MonotonicHiRes( void )
這個平台專屬功能,可以以微秒為單位取得高解析度單調系統時間。
由於任意、平台定義的 Epoch,此函式預期會傳回經過時間 (以微秒為單位)。GetClock_MonotonicHiRes() 傳回的值必須不斷增加 (即一律不會換行)。不過,系統「不需要」在系統處於熟睡狀態時持續遵守基礎計時器。
我們鼓勵平台使用高解析度計時器實作 GetClock_MonotonicHiRes(),而且不會逐步調整時鐘 (彈跳)。在沒有這類計時器的平台上,GetClock_MonotonicHiRes() 會傳回與 GetClock_Monotonic() 相同的值。
此函式傳回的時間週期不需要與其他 GetClock... 函式一樣。
在採用執行緒的任何平台上,此函式應該符合執行緒安全規定。
詳細資料 | |
---|---|
傳回 |
從平台定義任意訓練週期以來經過的時間 (以微秒為單位)。
|
GetClock_MonotonicMS
uint64_t GetClock_MonotonicMS( void )
平台特定函式,用於取得單調系統時間 (以毫秒為單位)。
此函式預期會傳回由平台定義的任意訓練週期所經過的時間 (以毫秒為單位)。平台實作必須傳回會在系統重新啟動之間不斷遞增 (即從未換行) 的值。此外,如有任何系統睡眠模式 (不會在醒來後重新啟動) ,基礎時間來源就必須持續保持不變。
其他 GetClock... 函式 (包括 GetClock_Monotonic()) 在內,此函式傳回的時間週期不必相同。
在採用執行緒的任何平台上,此函式應該符合執行緒安全規定。
詳細資料 | |
---|---|
傳回 |
從任意平台定義週期以來經過的時間 (以毫秒為單位)。
|
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 )
用於設定目前實際 (民用) 時間的平台專用函式。
我們呼叫這個函式,設定當地平台的目前即時觀念。新的目前時間會以 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 系統層預初始化掛鉤。
如果宣告預先處理器定義 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 成功;否則會顯示特定錯誤,指出關閉失敗的原因。傳回未成功的狀態將會取消關閉。
|