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 System 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 系统层预初始化钩子。
|
WillShutdown(Layer & aLayer, void *aContext)
|
NL_DLL_EXPORT Error
这是特定于平台的 Weave System 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 System 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())的时间相同。
在任何采用线程处理的平台上,此函数都是线程安全的。
具体说明 | |
---|---|
返回值 |
自平台定义的任意纪元以来经过的时间(以微秒为单位)。
|
GetClock_MonotonicHiRes
uint64_t GetClock_MonotonicHiRes( void )
针对具体平台的函数,用于获取高分辨率单调系统时间(以微秒为单位)。
此函数应返回自平台定义的任意纪元以来的经过时间(以微秒为单位)。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() 函数,这会导致依赖于实时访问的功能强制在链接时故障。或者,此类平台可能会提供返回错误 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 System Layer 预关停钩子。
可通过断言预处理器定义 WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_XTOR_FUNCTIONS 覆盖此管理方式。
具体说明 | |||||
---|---|---|---|---|---|
参数 |
|
||||
返回值 |
WEAVE_SYSTEM_NO_ERROR(如果成功的话);否则,是一个具体错误,会说明关闭失败的原因。返回“不成功”状态将取消关停。
|