nl:: Weave:: System:: Platform:: Layer
Resumo
Funções |
|
---|---|
DidInit(Layer & aLayer, void *aContext, Error aStatus)
|
NL_DLL_EXPORT void
Este é um gancho de camada de pós-inicialização do sistema Weave específico da plataforma.
|
DidShutdown(Layer & aLayer, void *aContext, Error aStatus)
|
NL_DLL_EXPORT void
Este é um gancho de pré-encerramento da Camada 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 obter o tempo monotônico de alta resolução do sistema em microssegundos.
|
GetClock_MonotonicMS(void)
|
uint64_t
Função específica da plataforma para receber o tempo monotônico do sistema em milissegundos.
|
GetClock_RealTime(uint64_t & curTime)
|
Error
Função específica da plataforma para obter a hora real (civil) atual em formato de hora Unix de microssegundos.
|
GetClock_RealTimeMS(uint64_t & curTimeMS)
|
Error
Função específica da plataforma para receber o horário real (civil) atual no formato de tempo Unix de milissegundos.
|
PostEvent(Layer & aLayer, void *aContext, Object & aTarget, EventType aType, uintptr_t aArgument)
|
NL_DLL_EXPORT Error
Este é um gancho de mensagem / evento específico da plataforma.
|
SetClock_RealTime(uint64_t newCurTime)
|
Error
Função específica da plataforma para definir o horário 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 camada do sistema Weave específico da plataforma.
|
WillShutdown(Layer & aLayer, void *aContext)
|
NL_DLL_EXPORT Error
Este é um gancho de pré-encerramento da Camada do sistema Weave específico da plataforma.
|
Funções
DidInit
NL_DLL_EXPORT void DidInit( Layer & aLayer, void *aContext, Error aStatus )
Este é um gancho de camada de pós-inicialização do sistema Weave específico da plataforma.
Isso pode ser substituído pela definição da definição do 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 Camada do sistema Weave específico da plataforma.
Isso pode ser substituído pela definição da definição do pré-processador, WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_XTOR_FUNCTIONS.
Detalhes | |||||||
---|---|---|---|---|---|---|---|
Parâmetros |
|
||||||
Retornos |
WEAVE_SYSTEM_NO_ERROR se tiver sucesso; caso contrário, um erro específico indicando o motivo da falha no encerramento. Se você retornar um status de falha, 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 pela definição da definição do pré-processador, WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_EVENT_FUNCTIONS.
Isso envia o evento especificado para o processamento, desmarcando o tipo e os argumentos do evento para entrega ao sistema Weave Layer::HandleEvent 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 pela definição da definição do 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, em seguida, enviando-os para manipulação.
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 uma época arbitrária definida pela plataforma. As implementações da plataforma são obrigadas a retornar um valor que esteja sempre aumentando (ou seja, nunca encapsulando) entre as reinicializações do sistema. Além disso, a fonte de tempo subjacente precisa ser ativada continuamente durante todos os modos de suspensão do sistema que não envolvam reinicialização após a ativação.
A época para o tempo retornada 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 segura para linhas de execução em qualquer plataforma que use linhas de execução.
Detalhes | |
---|---|
Retornos |
Tempo decorrido em microssegundos desde uma época arbitrária definida pela plataforma.
|
GetClock_MonotonicHiRes
uint64_t GetClock_MonotonicHiRes( void )
Função específica da plataforma para obter o tempo monotônico de alta resolução do sistema em microssegundos.
Espera-se que essa função retorne o tempo decorrido em microssegundos desde uma época arbitrária definida pela plataforma. Os valores retornados por GetClock_MonotonicHiRes() precisam estar sempre crescentes (ou seja, nunca encapsular). No entanto, o timer não precisa ser ativado continuamente durante os estados de suspensão profunda do sistema.
As plataformas são incentivadas a implementar GetClock_MonotonicHiRes() usando um cronômetro de alta resolução, que não esteja sujeito a ajustes graduais de relógio (as alterações). Em plataformas sem esse cronômetro, GetClock_MonotonicHiRes() pode retornar o mesmo valor que GetClock_Monotonic().
O período para tempo retornado por essa função não precisa ser o mesmo de nenhuma das outras funções GetClock....
Espera-se que essa função seja segura para linhas de execução em qualquer plataforma que use linhas de execução.
Detalhes | |
---|---|
Retornos |
Tempo decorrido em microssegundos desde uma época arbitrária definida pela plataforma.
|
GetClock_MonotonicMS
uint64_t GetClock_MonotonicMS( void )
Função específica da plataforma para receber o tempo monotônico do sistema em milissegundos.
Espera-se que essa função retorne o tempo decorrido em milissegundos desde um período arbitrário definido pela plataforma. As implementações da plataforma são obrigadas a retornar um valor que esteja sempre aumentando (ou seja, nunca encapsulando) entre as reinicializações do sistema. Além disso, a fonte de tempo subjacente precisa ser ativada continuamente durante todos os modos de suspensão do sistema que não envolvam reinicialização após a ativação.
O período para o tempo retornado por essa função não precisa ser o mesmo de nenhuma das outras funções GetClock..., incluindo GetClock_Monotonic().
Espera-se que essa função seja segura para linhas de execução em qualquer plataforma que use linhas de execução.
Detalhes | |
---|---|
Retornos |
Tempo decorrido em milissegundos desde uma época arbitrária definida pela plataforma.
|
GetClock_RealTime
Error GetClock_RealTime( uint64_t & curTime )
Função específica da plataforma para obter a hora real (civil) atual em formato de hora Unix de microssegundos.
Espera-se que essa função retorne a noção atual da plataforma local sobre o tempo real, expressa como um valor de tempo Unix dimensionado para microssegundos. O relógio subjacente precisa correr a uma velocidade de pelo menos segundos inteiros (valores de 1.000.000), mas pode correr mais rápido.
Nas plataformas capazes de rastrear 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 que são incapazes de acompanhar em tempo real não devem implementar a função GetClock_RealTime(), forçando, assim, falhas no tempo de link dos recursos que dependem do acesso em tempo real. Alternativamente, essas plataformas podem fornecer uma implementação de GetClock_RealTime() que retorna o erro WEAVE_SYSTEM_ERROR_NOT_SUPPORTED.
Espera-se que essa função seja segura para linhas de execução em qualquer plataforma que use linhas de execução.
Detalhes | |||||||
---|---|---|---|---|---|---|---|
Parâmetros |
|
||||||
Valores de retorno |
|
GetClock_RealTimeMS
Error GetClock_RealTimeMS( uint64_t & curTimeMS )
Função específica da plataforma para receber o horário real (civil) atual no formato de tempo Unix de milissegundos.
Espera-se que essa função retorne a noção atual da plataforma local sobre o tempo real, 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 )
Este é um gancho de mensagem / evento específico da plataforma.
Isso pode ser substituído pela definição da definição do pré-processador, WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_EVENT_FUNCTIONS.
Publica um evento / mensagem do tipo especificado com o argumento fornecido na fila de eventos / mensagens específica da plataforma desta instância.
Detalhes | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Parâmetros |
|
||||||||||
Retornos |
WEAVE_SYSTEM_NO_ERROR se tiver sucesso; caso contrário, um erro específico indicando o motivo da falha na inicialização.
|
SetClock_RealTime
Error SetClock_RealTime( uint64_t newCurTime )
Função específica da plataforma para definir o horário real (civil) atual.
O Weave chama essa função para definir a noção atual da plataforma local sobre o tempo real. O novo horário atual é expresso como um valor de hora Unix dimensionado para microssegundos.
Depois de definido, o relógio da plataforma subjacente rastreará o tempo real com uma granularidade de pelo menos segundos inteiros.
Em plataformas compatíveis com rastreamento em tempo real, a função SetClock_RealTime() deve retornar o erro WEAVE_SYSTEM_ERROR_ACCESS_DENIED se o aplicativo que faz a chamada não tiver o privilégio para definir a hora atual.
Plataformas que são incapazes de rastrear em tempo real ou que não oferecem a capacidade de definir tempo real não devem implementar a função SetClock_RealTime(), forçando, assim, falhas no tempo de link dos recursos que dependem dessa definição. De forma alternativa, essas plataformas podem fornecer uma implementação de SetClock_RealTime() que retorna o erro WEAVE_SYSTEM_ERROR_NOT_SUPPORTED.
Espera-se que essa função seja segura para linhas de execução em qualquer plataforma que use linhas de execução.
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 pela definição da definição do 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 camada do sistema Weave específico da plataforma.
Isso pode ser substituído pela definição da definição do pré-processador, WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_XTOR_FUNCTIONS.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
||||
Retornos |
WEAVE_SYSTEM_NO_ERROR se tiver sucesso; caso contrário, um erro específico indicando o motivo da falha na inicialização. Retornar um status de falha cancela a inicialização.
|
WillShutdown
NL_DLL_EXPORT Error WillShutdown( Layer & aLayer, void *aContext )
Este é um gancho de pré-encerramento da Camada do sistema Weave específico da plataforma.
Isso pode ser substituído pela definição da definição do pré-processador, WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_XTOR_FUNCTIONS.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
||||
Retornos |
WEAVE_SYSTEM_NO_ERROR se tiver sucesso; caso contrário, um erro específico indicando o motivo da falha no encerramento. Se você retornar um status de falha, o encerramento será cancelado.
|