nl:: Weave:: System:: Platform:: Layer
摘要
函数 |
|
---|---|
DidInit(Layer & aLayer, void *aContext, Error aStatus)
|
NL_DLL_EXPORT void
这是一个特定于平台的 Weave System 层初始化后钩子。
|
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 System Layer 预初始化钩子。
|
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 System 层初始化后钩子。
通过断言预处理器定义 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 System 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 System Layer 预初始化钩子。
通过断言预处理器定义 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(如果成功);或者指明关闭失败原因的具体错误。返回不成功状态将中止关闭。
|