nl:: Weave:: Sistema:: Plataforma: Capa
Resumen
Funciones |
|
---|---|
DidInit(Layer & aLayer, void *aContext, Error aStatus)
|
NL_DLL_EXPORT void
Este es un hook de 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 del sistema de capas 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 mensaje o evento específico de la plataforma.
|
DispatchEvents(Layer & aLayer, void *aContext)
|
NL_DLL_EXPORT Error
Este es un hook de envío de mensaje o evento específico de la plataforma.
|
GetClock_Monotonic(void)
|
uint64_t
Función específica de la plataforma para obtener la hora monotónica del sistema en microsegundos.
|
GetClock_MonotonicHiRes(void)
|
uint64_t
Función específica de la plataforma para obtener el tiempo 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 del sistema monótono 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 tiempo Unix de microsegundos.
|
GetClock_RealTimeMS(uint64_t & curTimeMS)
|
Error
Función específica de la plataforma para obtener la hora real (civil) actual en milisegundos de formato de tiempo Unix.
|
PostEvent(Layer & aLayer, void *aContext, Object & aTarget, EventType aType, uintptr_t aArgument)
|
NL_DLL_EXPORT Error
Este es un hook posterior al mensaje o evento específico de la plataforma.
|
SetClock_RealTime(uint64_t newCurTime)
|
Error
Función específica de la plataforma para configurar la hora real (civil) actual.
|
StartTimer(Layer & aLayer, void *aContext, uint32_t aMilliseconds)
|
NL_DLL_EXPORT Error
Este es un hook de envío de mensaje o evento 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 del sistema de capas Weave específico de la plataforma.
|
Funciones
YesInit
NL_DLL_EXPORT void DidInit( Layer & aLayer, void *aContext, Error aStatus )
Este es un hook de capa del sistema de Weave específico de la plataforma.
Esto se puede anular al evaluar la definición del preprocesador, WEAVE_System_CONFIG_PLATFORM_PROVIDES_XTOR_FUNCTIONS.
Detalles | |||||||
---|---|---|---|---|---|---|---|
Parámetros |
|
Se dio de baja
NL_DLL_EXPORT void DidShutdown( Layer & aLayer, void *aContext, Error aStatus )
Este es un gancho previo al cierre del sistema de capas Weave específico de la plataforma.
Esto se puede anular al evaluar la definición del preprocesador, WEAVE_System_CONFIG_PLATFORM_PROVIDES_XTOR_FUNCTIONS.
Detalles | |||||||
---|---|---|---|---|---|---|---|
Parámetros |
|
||||||
Qué muestra |
WEAVE_System_NO_ERROR si se ejecuta correctamente; de lo contrario, es un error específico que indica el motivo del error de cierre. Si se muestra un estado que no es correcto, se cancelará el cierre.
|
DispatchEvent
NL_DLL_EXPORT Error DispatchEvent( Layer & aLayer, void *aContext, Event aEvent )
Este es un hook de envío de mensaje o evento específico de la plataforma.
Es posible que esto se anule anulando la definición del preprocesador WEAVE_System_CONFIG_PLATFORM_PROVIDES_EVENT_FUNCTIONS.
Esto envía el evento especificado para su administración y desagrupa el tipo y los argumentos del evento para transferirlos a la capa System::HandleEvent del sistema de Weave para el envío real.
Detalles | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parámetros |
|
||||||||
Valores que se muestran |
|
Eventos de despacho
NL_DLL_EXPORT Error DispatchEvents( Layer & aLayer, void *aContext )
Este es un hook de envío de mensaje o evento específico de la plataforma.
Es posible que esto se anule anulando la definición del preprocesador WEAVE_System_CONFIG_PLATFORM_PROVIDES_EVENT_FUNCTIONS.
Esto afecta a un bucle de eventos, a la espera de una cola que brinde el servicio a esta instancia, extrayendo los eventos de esa cola y, luego, los despacha para su control.
Detalles | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parámetros |
|
||||||||
Valores que se muestran |
|
GetClock_Monotonic
uint64_t GetClock_Monotonic( void )
Función específica de la plataforma para obtener la hora monotónica del sistema en microsegundos.
Se espera que esta función muestre el tiempo transcurrido en microsegundos desde un ciclo arbitrario definido por la plataforma. Las implementaciones de plataformas están obligadas a mostrar un valor que aumenta cada vez más (es decir, nunca se une) entre los reinicios del sistema. Además, se requiere que la fuente de tiempo subyacente marque de forma continua durante los modos de suspensión del sistema que no implican un reinicio después de la activación.
La época de retorno que muestra esta función no debe ser la misma que la de cualquier otra función GetClock..., incluida GetClock_MonotonicMS().
Se espera que esta función sea segura para los subprocesos en cualquier plataforma que los use.
Detalles | |
---|---|
Qué 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 el tiempo 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 arbitrario definido por la plataforma. Los valores que muestra GetClock_MonotonicHiRes() deben ser crecientes (es decir, nunca se unen). Sin embargo, no se requiere que el temporizador subyacente marque continuamente durante los estados de suspensión profunda del sistema.
Se recomienda usar la plataforma para implementar GetClock_MonotonicHiRes() con un temporizador de alta resolución que no esté sujeto a los ajustes graduales del reloj (sleving). En plataformas sin ese temporizador, GetClock_MonotonicHiRes() puede mostrar el mismo valor que GetClock_Monotonic().
No es necesario que el ciclo de tiempo que muestra esta función sea el mismo que el de cualquier otra función GetClock....
Se espera que esta función sea segura para los subprocesos en cualquier plataforma que los use.
Detalles | |
---|---|
Qué 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 del sistema monótono 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 plataformas están obligadas a mostrar un valor que aumenta cada vez más (es decir, nunca se une) entre los reinicios del sistema. Además, se requiere que la fuente de tiempo subyacente marque de forma continua durante los modos de suspensión del sistema que no implican un reinicio después de la activación.
La época de retorno que muestra esta función no debe ser la misma que la de cualquier otra función GetClock..., incluida GetClock_Monotonic().
Se espera que esta función sea segura para los subprocesos en cualquier plataforma que los use.
Detalles | |
---|---|
Qué muestra |
Tiempo transcurrido en milisegundos desde un ciclo de ciclo 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 tiempo Unix de microsegundos.
Se espera que esta función muestre la noción de la plataforma local sobre el tiempo real actual, expresada como un valor de tiempo Unix escalado a microsegundos. El reloj subyacente debe funcionar a una velocidad de al menos segundos enteros (valores de 1,000,000), pero puede ser más rápido.
En las plataformas que pueden realizar el seguimiento en tiempo real, GetClock_RealTime() debe mostrar el error WEAVE_System_ERROR_REAL_TIME_NOT_SYNCED cada vez que el sistema no se sincroniza con datos en tiempo real.
Las plataformas que no pueden realizar el seguimiento del tiempo real no deben implementar la función GetClock_RealTime(). De esta manera, se fuerzan las fallas en tiempo de vinculación de funciones que dependen del acceso a tiempo real. Como alternativa, estas plataformas pueden proporcionar una implementación de GetClock_RealTime() que muestra el error WEAVE_System_ERROR_NOT_SUPPORTED.
Se espera que esta función sea segura para los subprocesos en cualquier plataforma que los use.
Detalles | |||||||
---|---|---|---|---|---|---|---|
Parámetros |
|
||||||
Valores que se muestran |
|
GetClock_RealTimeMS
Error GetClock_RealTimeMS( uint64_t & curTimeMS )
Función específica de la plataforma para obtener la hora real (civil) actual en milisegundos de formato de tiempo Unix.
Se espera que esta función muestre la noción de la plataforma local sobre el 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 que se muestran |
|
PostEvento
NL_DLL_EXPORT Error PostEvent( Layer & aLayer, void *aContext, Object & aTarget, EventType aType, uintptr_t aArgument )
Este es un hook posterior al mensaje o evento específico de la plataforma.
Es posible que esto se anule anulando la definición del preprocesador WEAVE_System_CONFIG_PLATFORM_PROVIDES_EVENT_FUNCTIONS.
Esto publica un evento o un mensaje del tipo especificado con el argumento proporcionado a la cola de mensajes o eventos específicos de esta plataforma.
Detalles | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Parámetros |
|
||||||||||
Qué muestra |
WEAVE_System_NO_ERROR si se ejecuta correctamente; de lo contrario, es un error específico que indica el motivo de la falla de inicialización.
|
Establecer el reloj en tiempo real
Error SetClock_RealTime( uint64_t newCurTime )
Función específica de la plataforma para configurar la hora real (civil) actual.
Weave llama a esta función para configurar la noción de la plataforma local sobre el tiempo real actual. La nueva hora actual se expresa como un valor de tiempo de Unix escalado a microsegundos.
Una vez configurado, se espera que el reloj de la plataforma subyacente realice un seguimiento 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 el seguimiento del tiempo real o que no ofrecen la posibilidad de establecerlo en tiempo real no deberían implementar la función SetClock_RealTime(). De esta manera, se fuerzan las fallas en tiempo de vínculo 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 muestre el error WEAVE_System_ERROR_NOT_SUPPORTED.
Se espera que esta función sea segura para los subprocesos en cualquier plataforma que los use.
Detalles | |||||||
---|---|---|---|---|---|---|---|
Parámetros |
|
||||||
Valores que se muestran |
|
Temporizador de inicio
NL_DLL_EXPORT Error StartTimer( Layer & aLayer, void *aContext, uint32_t aMilliseconds )
Este es un hook de envío de mensaje o evento específico de la plataforma.
Es posible que esto se anule anulando la definición del preprocesador WEAVE_System_CONFIG_PLATFORM_PROVIDES_EVENT_FUNCTIONS.
Detalles | |||||||
---|---|---|---|---|---|---|---|
Parámetros |
|
||||||
Valores que se muestran |
|
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 al evaluar la definición del preprocesador, WEAVE_System_CONFIG_PLATFORM_PROVIDES_XTOR_FUNCTIONS.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
||||
Qué muestra |
WEAVE_System_NO_ERROR si se ejecuta correctamente; de lo contrario, es un error específico que indica el motivo de la falla de inicialización. Si se muestra un estado que no es correcto, se anulará la inicialización.
|
WillShutdown
NL_DLL_EXPORT Error WillShutdown( Layer & aLayer, void *aContext )
Este es un gancho previo al cierre del sistema de capas Weave específico de la plataforma.
Esto se puede anular al evaluar la definición del preprocesador, WEAVE_System_CONFIG_PLATFORM_PROVIDES_XTOR_FUNCTIONS.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
||||
Qué muestra |
WEAVE_System_NO_ERROR si se ejecuta correctamente; de lo contrario, es un error específico que indica el motivo del error de cierre. Si se muestra un estado que no es correcto, se cancelará el cierre.
|