nl:: Weave:: System:: Platform:: Layer
Resumo
remotas |
|
---|---|
DidInit(Layer & aLayer, void *aContext, Error aStatus)
|
NL_DLL_EXPORT void
Este é um gancho de pós-inicialização específico da plataforma Weave System Layer.
|
DidShutdown(Layer & aLayer, void *aContext, Error aStatus)
|
NL_DLL_EXPORT void
Este é um gancho de pré-encerramento da Layer do sistema Weave específico da plataforma.
|
DispatchEvent(Layer & aLayer, void *aContext, Event aEvent)
|
NL_DLL_EXPORT Error
Este é um gancho de envio de evento / mensagem específico da plataforma.
|
DispatchEvents(Layer & aLayer, void *aContext)
|
NL_DLL_EXPORT Error
Este é um gancho de envio de evento / mensagem específico da plataforma.
|
GetClock_Monotonic(void)
|
uint64_t
Função específica da plataforma para receber o horário monotônico do sistema em microssegundos.
|
GetClock_MonotonicHiRes(void)
|
uint64_t
Função específica da plataforma para conseguir o horário monotônico do sistema de alta resolução em microssegundos.
|
GetClock_MonotonicMS(void)
|
uint64_t
Função específica da plataforma para obter o horário monotônico do sistema em milissegundos.
|
GetClock_RealTime(uint64_t & curTime)
|
Error
Função específica da plataforma para conseguir o horário real (civil) atual no formato Unix de microssegundos.
|
GetClock_RealTimeMS(uint64_t & curTimeMS)
|
Error
Função específica da plataforma para conseguir o horário real (civil) atual no formato Unix de milissegundos.
|
PostEvent(Layer & aLayer, void *aContext, Object & aTarget, EventType aType, uintptr_t aArgument)
|
NL_DLL_EXPORT Error
Esse é um gancho de postagem de mensagem / evento específico da plataforma.
|
SetClock_RealTime(uint64_t newCurTime)
|
Error
Função específica da plataforma para definir o tempo real (civil) atual.
|
StartTimer(Layer & aLayer, void *aContext, uint32_t aMilliseconds)
|
NL_DLL_EXPORT Error
Este é um gancho de envio de evento / mensagem específico da plataforma.
|
WillInit(Layer & aLayer, void *aContext)
|
NL_DLL_EXPORT Error
Este é um gancho de pré-inicialização da Layer do sistema Weave específico da plataforma.
|
WillShutdown(Layer & aLayer, void *aContext)
|
NL_DLL_EXPORT Error
Este é um gancho de pré-encerramento da Layer do sistema Weave específico da plataforma.
|
remotas
DidInit
NL_DLL_EXPORT void DidInit( Layer & aLayer, void *aContext, Error aStatus )
Este é um gancho de pós-inicialização específico da plataforma Weave System Layer.
Isso pode ser substituído afirmando a definição de pré-processador, WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_XTOR_FUNCTIONS.
Detalhes | |||||||
---|---|---|---|---|---|---|---|
Parâmetros |
|
DidShutdown
NL_DLL_EXPORT void DidShutdown( Layer & aLayer, void *aContext, Error aStatus )
Este é um gancho de pré-encerramento da Layer do sistema Weave específico da plataforma.
Isso pode ser substituído afirmando a definição de pré-processador, WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_XTOR_FUNCTIONS.
Detalhes | |||||||
---|---|---|---|---|---|---|---|
Parâmetros |
|
||||||
Retorna |
WEAVE_SYSTEM_NO_ERROR em caso de sucesso. Caso contrário, um erro específico que indica o motivo da falha no encerramento. Se o status não for bem-sucedido, o encerramento será cancelado.
|
DispatchEvent
NL_DLL_EXPORT Error DispatchEvent( Layer & aLayer, void *aContext, Event aEvent )
Este é um gancho de envio de evento / mensagem específico da plataforma.
Isso pode ser substituído afirmando a definição de pré-processador, WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_EVENT_FUNCTIONS.
Ele envia o evento especificado para processamento, desmarcando o tipo e os argumentos do evento para entrega ao Layer::HandleEvent do sistema Weave para o envio real.
Detalhes | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parâmetros |
|
||||||||
Valores de retorno |
|
DispatchEvents
NL_DLL_EXPORT Error DispatchEvents( Layer & aLayer, void *aContext )
Este é um gancho de envio de evento / mensagem específico da plataforma.
Isso pode ser substituído afirmando a definição de pré-processador, WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_EVENT_FUNCTIONS.
Isso afeta um loop de eventos, aguardando uma fila que atende a essa instância, extraindo eventos dessa fila e despachando-os para processamento.
Detalhes | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parâmetros |
|
||||||||
Valores de retorno |
|
GetClock_Monotonic
uint64_t GetClock_Monotonic( void )
Função específica da plataforma para receber o horário monotônico do sistema em microssegundos.
Espera-se que essa função retorne o tempo decorrido em microssegundos desde um período arbitrário e definido pela plataforma. As implementações da plataforma são obrigadas a retornar um valor que está sempre aumentando (ou seja, nunca encapsula) entre as reinicializações do sistema. Além disso, a fonte de tempo subjacente precisa ser ativada continuamente durante os modos de sono do sistema que não exigem uma reinicialização após a ativação.
A época do tempo retornado por essa função não precisa ser a mesma de qualquer outra função GetClock..., incluindo GetClock_MonotonicMS().
Espera-se que essa função seja thread-safe em qualquer plataforma que use threading.
Detalhes | |
---|---|
Retorna |
Tempo decorrido em microssegundos desde um período arbitrário definido pela plataforma.
|
GetClock_MonotonicHiRes
uint64_t GetClock_MonotonicHiRes( void )
Função específica da plataforma para conseguir o horário monotônico do sistema de alta resolução em microssegundos.
Espera-se que essa função retorne o tempo decorrido em microssegundos desde um período arbitrário e definido pela plataforma. Os valores retornados por GetClock_MonotonicHiRes() precisam ser sempre crescentes (ou seja, nunca quebrar). No entanto, o timer não precisa ser ativado continuamente durante os estados de suspensão profunda do sistema.
A plataforma é incentivada a implementar GetClock_MonotonicHiRes() usando um temporizador de alta resolução que não esteja sujeito a ajustes graduais do relógio (slewing). Em plataformas sem esse timer, GetClock_MonotonicHiRes() pode retornar o mesmo valor que GetClock_Monotonic().
A época do tempo retornado por essa função não precisa ser a mesma de qualquer outra função GetClock...
Espera-se que essa função seja thread-safe em qualquer plataforma que use threading.
Detalhes | |
---|---|
Retorna |
Tempo decorrido em microssegundos desde um período arbitrário definido pela plataforma.
|
GetClock_MonotonicMS
uint64_t GetClock_MonotonicMS( void )
Função específica da plataforma para obter o horário monotônico do sistema em milissegundos.
Espera-se que essa função retorne o tempo decorrido em milissegundos desde uma época arbitrária definida pela plataforma. As implementações da plataforma são obrigadas a retornar um valor que está sempre aumentando (ou seja, nunca encapsula) entre as reinicializações do sistema. Além disso, a fonte de tempo subjacente precisa ser ativada continuamente durante os modos de sono do sistema que não exigem uma reinicialização após a ativação.
A época do tempo retornado por essa função não precisa ser igual à de outras funções GetClock..., incluindo GetClock_Monotonic().
Espera-se que essa função seja thread-safe em qualquer plataforma que use threading.
Detalhes | |
---|---|
Retorna |
Tempo decorrido em milissegundos desde um período arbitrário definido pela plataforma.
|
GetClock_RealTime
Error GetClock_RealTime( uint64_t & curTime )
Função específica da plataforma para conseguir o horário real (civil) atual no formato Unix de microssegundos.
Essa função precisa retornar a noção de tempo real atual da plataforma local, expressa como um valor de tempo Unix dimensionado em microssegundos. O relógio subjacente precisa ter uma frequência de pelo menos segundos inteiros (valores de 1.000.000), mas pode marcar mais rápido.
Nessas plataformas capazes de acompanhar em tempo real, GetClock_RealTime() deve retornar o erro WEAVE_SYSTEM_ERROR_REAL_TIME_NOT_SYNCED sempre que o sistema não estiver sincronizado com o tempo real.
As plataformas incapazes de acompanhar em tempo real não devem implementar a função GetClock_RealTime(), forçando, assim, falhas de tempo de link de recursos que dependem de acesso a tempo real. Como alternativa, essas plataformas podem fornecer uma implementação de GetClock_RealTime() que retorne o erro WEAVE_SYSTEM_ERROR_NOT_SUPPORTED.
Espera-se que essa função seja thread-safe em qualquer plataforma que use threading.
Detalhes | |||||||
---|---|---|---|---|---|---|---|
Parâmetros |
|
||||||
Valores de retorno |
|
GetClock_RealTimeMS
Error GetClock_RealTimeMS( uint64_t & curTimeMS )
Função específica da plataforma para conseguir o horário real (civil) atual no formato Unix de milissegundos.
Essa função precisa retornar a noção de tempo real atual da plataforma local, expressa como um valor de tempo Unix dimensionado para milissegundos.
Consulte a documentação de GetClock_RealTime() para obter detalhes sobre o comportamento esperado.
Detalhes | |||||||
---|---|---|---|---|---|---|---|
Parâmetros |
|
||||||
Valores de retorno |
|
PostEvent
NL_DLL_EXPORT Error PostEvent( Layer & aLayer, void *aContext, Object & aTarget, EventType aType, uintptr_t aArgument )
Esse é um gancho de postagem de mensagem / evento específico da plataforma.
Isso pode ser substituído afirmando a definição de pré-processador, WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_EVENT_FUNCTIONS.
Isso publica um evento / uma mensagem do tipo especificado com o argumento fornecido na fila de eventos / mensagens específica da plataforma dessa instância.
Detalhes | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Parâmetros |
|
||||||||||
Retorna |
WEAVE_SYSTEM_NO_ERROR em caso de sucesso. Caso contrário, um erro específico que indica o motivo da falha na inicialização.
|
SetClock_RealTime
Error SetClock_RealTime( uint64_t newCurTime )
Função específica da plataforma para definir o tempo real (civil) atual.
O Weave chama essa função para definir a noção de tempo real atual da plataforma local. O novo horário atual é expresso como um valor do horário Unix dimensionado em microssegundos.
Depois de definido, espera-se que o relógio da plataforma subjacente acompanhe em tempo real com uma granularidade de pelo menos segundos inteiros.
Em plataformas compatíveis com o rastreamento em tempo real, a função SetClock_RealTime() precisará retornar o erro WEAVE_SYSTEM_ERROR_ACCESS_DENIED se o aplicativo que fez a chamada não tiver o privilégio de definir a hora atual.
Plataformas que são incapazes de acompanhar em tempo real ou que não oferecem a capacidade de definir tempo real não devem implementar a função SetClock_RealTime(), o que força as falhas de tempo de link de recursos que dependem da definição de tempo real. Como alternativa, essas plataformas podem fornecer uma implementação de SetClock_RealTime() que retorne o erro WEAVE_SYSTEM_ERROR_NOT_SUPPORTED.
Espera-se que essa função seja thread-safe em qualquer plataforma que use threading.
Detalhes | |||||||
---|---|---|---|---|---|---|---|
Parâmetros |
|
||||||
Valores de retorno |
|
StartTimer
NL_DLL_EXPORT Error StartTimer( Layer & aLayer, void *aContext, uint32_t aMilliseconds )
Este é um gancho de envio de evento / mensagem específico da plataforma.
Isso pode ser substituído afirmando a definição de pré-processador, WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_EVENT_FUNCTIONS.
Detalhes | |||||||
---|---|---|---|---|---|---|---|
Parâmetros |
|
||||||
Valores de retorno |
|
WillInit
NL_DLL_EXPORT Error WillInit( Layer & aLayer, void *aContext )
Este é um gancho de pré-inicialização da Layer do sistema Weave específico da plataforma.
Isso pode ser substituído afirmando a definição de pré-processador, WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_XTOR_FUNCTIONS.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
||||
Retorna |
WEAVE_SYSTEM_NO_ERROR em caso de sucesso. Caso contrário, um erro específico que indica o motivo da falha na inicialização. Se o status não for bem-sucedido, a inicialização será cancelada.
|
WillShutdown
NL_DLL_EXPORT Error WillShutdown( Layer & aLayer, void *aContext )
Este é um gancho de pré-encerramento da Layer do sistema Weave específico da plataforma.
Isso pode ser substituído afirmando a definição de pré-processador, WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_XTOR_FUNCTIONS.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
||||
Retorna |
WEAVE_SYSTEM_NO_ERROR em caso de sucesso. Caso contrário, um erro específico que indica o motivo da falha no encerramento. Se o status não for bem-sucedido, o encerramento será cancelado.
|