nl:: Weave:: System:: Platform:: Layer
Resumen
Funciones |
|
---|---|
DidInit(Layer & aLayer, void *aContext, Error aStatus)
|
NL_DLL_EXPORT void
Este es un hook posterior a la inicialización de la capa del sistema de Weave específico de la plataforma.
|
DidShutdown(Layer & aLayer, void *aContext, Error aStatus)
|
NL_DLL_EXPORT void
Este es un gancho previo al cierre de la capa del sistema de Weave específico de la plataforma.
|
DispatchEvent(Layer & aLayer, void *aContext, Event aEvent)
|
NL_DLL_EXPORT Error
Este es un hook de envío de mensajes o eventos específico de la plataforma.
|
DispatchEvents(Layer & aLayer, void *aContext)
|
NL_DLL_EXPORT Error
Este es un hook de envío de mensajes o eventos específico de la plataforma.
|
GetClock_Monotonic(void)
|
uint64_t
Función específica de la plataforma para obtener el tiempo monótono del sistema en microsegundos.
|
GetClock_MonotonicHiRes(void)
|
uint64_t
Función específica de la plataforma para obtener la hora del sistema monotónico de alta resolución en microsegundos.
|
GetClock_MonotonicMS(void)
|
uint64_t
Función específica de la plataforma para obtener el tiempo monótono del sistema en milisegundos.
|
GetClock_RealTime(uint64_t & curTime)
|
Error
Función específica de la plataforma para obtener la hora real (civil) actual en formato de hora Unix de microsegundo.
|
GetClock_RealTimeMS(uint64_t & curTimeMS)
|
Error
Función específica de la plataforma para obtener la hora real (civil) actual en formato de tiempo Unix en milisegundos.
|
PostEvent(Layer & aLayer, void *aContext, Object & aTarget, EventType aType, uintptr_t aArgument)
|
NL_DLL_EXPORT Error
Este es un gancho posterior de un evento o mensaje específico de la plataforma.
|
SetClock_RealTime(uint64_t newCurTime)
|
Error
Función específica de la plataforma para configurar el tiempo real (civil) actual.
|
StartTimer(Layer & aLayer, void *aContext, uint32_t aMilliseconds)
|
NL_DLL_EXPORT Error
Este es un hook de envío de mensajes o eventos específico de la plataforma.
|
WillInit(Layer & aLayer, void *aContext)
|
NL_DLL_EXPORT Error
Este es un hook de inicialización previa de Layer del sistema de Weave específico de la plataforma.
|
WillShutdown(Layer & aLayer, void *aContext)
|
NL_DLL_EXPORT Error
Este es un gancho previo al cierre de la capa del sistema de Weave específico de la plataforma.
|
Funciones
DidInit
NL_DLL_EXPORT void DidInit( Layer & aLayer, void *aContext, Error aStatus )
Este es un hook posterior a la inicialización de la capa del sistema de Weave específico de la plataforma.
Esto se puede anular agregando la definición del preprocesador, WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_XTOR_FUNCTIONS.
Detalles | |||||||
---|---|---|---|---|---|---|---|
Parámetros |
|
DidShutdown
NL_DLL_EXPORT void DidShutdown( Layer & aLayer, void *aContext, Error aStatus )
Este es un gancho previo al cierre de la capa del sistema de Weave específico de la plataforma.
Esto se puede anular agregando la definición del preprocesador, WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_XTOR_FUNCTIONS.
Detalles | |||||||
---|---|---|---|---|---|---|---|
Parámetros |
|
||||||
Resultado que se muestra |
WEAVE_SYSTEM_NO_ERROR en el caso de éxito; de lo contrario, un error específico
que indica el motivo del fallo en el apagado. Si se muestra el estado No exitoso, se anulará el cierre.
|
DispatchEvent
NL_DLL_EXPORT Error DispatchEvent( Layer & aLayer, void *aContext, Event aEvent )
Este es un hook de envío de mensajes o eventos específico de la plataforma.
Esto se puede anular agregando la definición del preprocesador, WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_EVENT_FUNCTIONS.
Esto despacha el evento especificado para su control, desalineando el tipo y los argumentos del evento para la entrega a Layer::HandleEvent del sistema de Weave para el envío real.
Detalles | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parámetros |
|
||||||||
Valores de retorno |
|
DispatchEvents
NL_DLL_EXPORT Error DispatchEvents( Layer & aLayer, void *aContext )
Este es un hook de envío de mensajes o eventos específico de la plataforma.
Esto se puede anular agregando la definición del preprocesador, WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_EVENT_FUNCTIONS.
Esto afecta un bucle de eventos, a la espera de una cola que envía esta instancia, extrae eventos de esa cola y, luego, los despacha para su manejo.
Detalles | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parámetros |
|
||||||||
Valores de retorno |
|
GetClock_Monotonic
uint64_t GetClock_Monotonic( void )
Función específica de la plataforma para obtener el tiempo monótono del sistema en microsegundos.
Se espera que esta función muestre el tiempo transcurrido en microsegundos desde un ciclo de entrenamiento arbitrario definido por la plataforma. Las implementaciones de la plataforma deben mostrar un valor que crece constantemente (es decir, que nunca une) entre los reinicios del sistema. Además, la fuente de la hora subyacente debe marcarse continuamente durante cualquier modo de suspensión del sistema que no implique un reinicio al activarse.
No se requiere que el ciclo de tiempo que muestra esta función sea el mismo que para ninguna de las otras funciones GetClock..., como GetClock_MonotonicMS().
Se espera que esta función sea segura para subprocesos en cualquier plataforma que emplee subprocesos.
Detalles | |
---|---|
Resultado que se muestra |
Tiempo transcurrido en microsegundos desde un ciclo de entrenamiento arbitrario definido por la plataforma.
|
GetClock_MonotonicHiRes
uint64_t GetClock_MonotonicHiRes( void )
Función específica de la plataforma para obtener la hora del sistema monotónico de alta resolución en microsegundos.
Se espera que esta función muestre el tiempo transcurrido en microsegundos desde un ciclo de entrenamiento arbitrario definido por la plataforma. Los valores que muestra GetClock_MonotonicHiRes() deben ser cada vez mayores (es decir, nunca deben ajustarse). Sin embargo, no es necesario que el temporizador subyacente marque de forma continua durante los estados de suspensión profunda del sistema.
Se recomienda que la plataforma implemente GetClock_MonotonicHiRes() con un temporizador de alta resolución que no esté sujeto a ajustes graduales del reloj (desplazamiento). En plataformas sin este tipo de temporizador, GetClock_MonotonicHiRes() puede devolver el mismo valor que GetClock_Monotonic().
No es necesario que el ciclo de entrenamiento que muestra esta función sea el mismo que el de las otras funciones GetClock...
Se espera que esta función sea segura para subprocesos en cualquier plataforma que emplee subprocesos.
Detalles | |
---|---|
Resultado que se muestra |
Tiempo transcurrido en microsegundos desde un ciclo de entrenamiento arbitrario definido por la plataforma.
|
GetClock_MonotonicMS
uint64_t GetClock_MonotonicMS( void )
Función específica de la plataforma para obtener el tiempo monótono del sistema en milisegundos.
Se espera que esta función muestre el tiempo transcurrido en milisegundos desde un ciclo de entrenamiento arbitrario definido por la plataforma. Las implementaciones de la plataforma deben mostrar un valor que crece constantemente (es decir, que nunca une) entre los reinicios del sistema. Además, la fuente de la hora subyacente debe marcarse continuamente durante cualquier modo de suspensión del sistema que no implique un reinicio al activarse.
No es necesario que el ciclo de entrenamiento que muestra esta función sea el mismo que el de las otras funciones GetClock, como GetClock_Monotonic().
Se espera que esta función sea segura para subprocesos en cualquier plataforma que emplee subprocesos.
Detalles | |
---|---|
Resultado que se muestra |
Tiempo transcurrido en milisegundos desde un ciclo de entrenamiento arbitrario definido por la plataforma.
|
GetClock_RealTime
Error GetClock_RealTime( uint64_t & curTime )
Función específica de la plataforma para obtener la hora real (civil) actual en formato de hora Unix de microsegundo.
Se espera que esta función muestre la noción de la plataforma local de tiempo real actual, expresada como un valor de tiempo Unix escalado a microsegundos. Se requiere que el reloj subyacente funcione a una velocidad mínima de segundos enteros (valores de 1,000,000), pero puede ser más rápido.
En las plataformas que pueden realizar un seguimiento en tiempo real, GetClock_RealTime() debe mostrar el error WEAVE_SYSTEM_ERROR_REAL_TIME_NOT_SYNCED cuando el sistema no está sincronizado con el tiempo real.
Las plataformas que no pueden realizar un seguimiento en tiempo real no deben implementar la función GetClock_RealTime(), lo que fuerza que las funciones que dependen del acceso a datos en tiempo real fallen en el tiempo de vinculación. Como alternativa, estas plataformas pueden proporcionar una implementación de GetClock_RealTime() que devuelva el error WEAVE_SYSTEM_ERROR_NOT_SUPPORTED.
Se espera que esta función sea segura para subprocesos en cualquier plataforma que emplee subprocesos.
Detalles | |||||||
---|---|---|---|---|---|---|---|
Parámetros |
|
||||||
Valores de retorno |
|
GetClock_RealTimeMS
Error GetClock_RealTimeMS( uint64_t & curTimeMS )
Función específica de la plataforma para obtener la hora real (civil) actual en formato de tiempo Unix en milisegundos.
Se espera que esta función muestre la noción de la plataforma local de tiempo real actual, expresada como un valor de tiempo Unix escalado a milisegundos.
Consulta la documentación de GetClock_RealTime() para obtener detalles sobre el comportamiento esperado.
Detalles | |||||||
---|---|---|---|---|---|---|---|
Parámetros |
|
||||||
Valores de retorno |
|
PostEvent
NL_DLL_EXPORT Error PostEvent( Layer & aLayer, void *aContext, Object & aTarget, EventType aType, uintptr_t aArgument )
Este es un gancho posterior de un evento o mensaje específico de la plataforma.
Esto se puede anular agregando la definición del preprocesador, WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_EVENT_FUNCTIONS.
Esto publica un evento o mensaje del tipo especificado con el argumento proporcionado en la cola de eventos o mensajes específicos de la plataforma de la instancia.
Detalles | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Parámetros |
|
||||||||||
Resultado que se muestra |
WEAVE_SYSTEM_NO_ERROR en el caso de éxito; De lo contrario, un error específico que indique el motivo de la falla de inicialización.
|
SetClock_RealTime
Error SetClock_RealTime( uint64_t newCurTime )
Función específica de la plataforma para configurar el tiempo real (civil) actual.
Weave llama a esta función para establecer la noción de la plataforma local del tiempo real actual. La nueva hora actual se expresa como un valor de tiempo Unix escalado a microsegundos.
Una vez configurado, se espera que el reloj de la plataforma subyacente se registre en tiempo real con un nivel de detalle de, al menos, segundos enteros.
En las plataformas que admiten el seguimiento en tiempo real, la función SetClock_RealTime() debe mostrar el error WEAVE_SYSTEM_ERROR_ACCESS_DENIED si la aplicación que realiza la llamada no tiene el privilegio para establecer la hora actual.
Las plataformas que no pueden realizar un seguimiento en tiempo real, o que no ofrecen la capacidad de establecer el tiempo real, no deben implementar la función SetClock_RealTime(), lo que obliga a los errores en el tiempo de vinculación de las funciones que dependen de la configuración en tiempo real. Como alternativa, estas plataformas pueden proporcionar una implementación de SetClock_RealTime() que devuelva el error WEAVE_SYSTEM_ERROR_NOT_SUPPORTED.
Se espera que esta función sea segura para subprocesos en cualquier plataforma que emplee subprocesos.
Detalles | |||||||
---|---|---|---|---|---|---|---|
Parámetros |
|
||||||
Valores de retorno |
|
StartTimer
NL_DLL_EXPORT Error StartTimer( Layer & aLayer, void *aContext, uint32_t aMilliseconds )
Este es un hook de envío de mensajes o eventos específico de la plataforma.
Esto se puede anular agregando la definición del preprocesador, WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_EVENT_FUNCTIONS.
Detalles | |||||||
---|---|---|---|---|---|---|---|
Parámetros |
|
||||||
Valores de retorno |
|
WillInit
NL_DLL_EXPORT Error WillInit( Layer & aLayer, void *aContext )
Este es un hook de inicialización previa de Layer del sistema de Weave específico de la plataforma.
Esto se puede anular agregando la definición del preprocesador, WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_XTOR_FUNCTIONS.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
||||
Resultado que se muestra |
WEAVE_SYSTEM_NO_ERROR en el caso de éxito; De lo contrario, un error específico que indique el motivo de la falla de inicialización. Si se muestra el estado No exitoso, se anulará la inicialización.
|
WillShutdown
NL_DLL_EXPORT Error WillShutdown( Layer & aLayer, void *aContext )
Este es un gancho previo al cierre de la capa del sistema de Weave específico de la plataforma.
Esto se puede anular agregando la definición del preprocesador, WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_XTOR_FUNCTIONS.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
||||
Resultado que se muestra |
WEAVE_SYSTEM_NO_ERROR en el caso de éxito; de lo contrario, un error específico
que indica el motivo del fallo en el apagado. Si se muestra el estado No exitoso, se anulará el cierre.
|