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
[in,out] aLayer
Uma referência à instância de Layer do sistema do Weave que está sendo inicializada.
[in,out] aContext
Dados de contexto específicos da plataforma transmitidos ao método de inicialização da camada, ::Init.
[in] anError
O status geral retornado pelo método Layer ::Init do sistema Weave.

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
[in,out] aLayer
Uma referência à instância de Layer do sistema do Weave que está sendo encerrada.
[in,out] aContext
Dados de contexto específicos da plataforma transmitidos ao método de inicialização da camada, ::Shutdown.
[in] anError
O status geral retornado pelo método Layer ::Shutdown do sistema Weave.
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
[in,out] aLayer
Uma referência à instância da camada para a qual eventos / mensagens estão sendo enviados.
[in,out] aContext
Dados de contexto específicos da plataforma transmitidos ao método de inicialização da camada, ::Init.
[in] anEvent
O objeto de evento específico da plataforma a ser enviado para tratamento.
Valores de retorno
#WEAVE_SYSTEM_ERROR_BAD_ARGS
Se #aLayer ou o destino do evento for NULL.
#WEAVE_SYSTEM_ERROR_UNEXPECTED_EVENT
Se o tipo de evento não for reconhecido.
#WEAVE_SYSTEM_ERROR_UNEXPECTED_STATE
Se o estado do objeto Layer do sistema Weave for inesperado.
WEAVE_SYSTEM_NO_ERROR
Se a operação for bem-sucedida.

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
[in,out] aLayer
Uma referência à instância da camada para a qual eventos / mensagens estão sendo enviados.
[in,out] aContext
Dados de contexto específicos da plataforma transmitidos ao método de inicialização da camada, ::Init.
Valores de retorno
#WEAVE_SYSTEM_ERROR_BAD_ARGS
Se #aLayer ou #aContext for NULL.
#WEAVE_SYSTEM_ERROR_UNEXPECTED_STATE
Se o estado do objeto Layer do sistema Weave for inesperado.
#WEAVE_SYSTEM_ERROR_UNEXPECTED_EVENT
Se um tipo de evento não for reconhecido.
WEAVE_SYSTEM_NO_ERROR
Se a operação for bem-sucedida.

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
[out] curTime
A hora atual, expressa como o horário Unix dimensionado para microssegundos.
Valores de retorno
WEAVE_SYSTEM_NO_ERROR
Se o método for bem-sucedido.
#WEAVE_SYSTEM_ERROR_REAL_TIME_NOT_SYNCED
Se a plataforma é capaz de rastrear em tempo real, mas está dessincronizada no momento.
#WEAVE_SYSTEM_ERROR_NOT_SUPPORTED
Se a plataforma não for capaz de rastrear em tempo real.

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
[out] curTime
A hora atual, expressa como o horário Unix dimensionado para milissegundos.
Valores de retorno
WEAVE_SYSTEM_NO_ERROR
Se o método for bem-sucedido.
#WEAVE_SYSTEM_ERROR_REAL_TIME_NOT_SYNCED
Se a plataforma é capaz de rastrear em tempo real, mas está dessincronizada no momento.
#WEAVE_SYSTEM_ERROR_NOT_SUPPORTED
Se a plataforma não for capaz de rastrear em tempo real.

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
[in,out] aLayer
Um ponteiro para a instância da camada na qual o evento / mensagem está sendo postado.
[in,out] aContext
Dados de contexto específicos da plataforma transmitidos ao método de inicialização da camada, ::Init.
[in,out] aTarget
Um ponteiro para o objeto Layer do sistema Weave que faz a solicitação post.
[in] aType
O tipo de evento a ser postado.
[in,out] anArg
O argumento associado ao evento a ser postado.
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
[in] newCurTime
O novo horário atual, expresso como horário Unix dimensionado para microssegundos.
Valores de retorno
WEAVE_SYSTEM_NO_ERROR
Se o método for bem-sucedido.
#WEAVE_SYSTEM_ERROR_NOT_SUPPORTED
Se a plataforma não for capaz de rastrear em tempo real.
#WEAVE_SYSTEM_ERROR_ACCESS_DENIED
Se o aplicativo de chamada não tiver o privilégio para definir a hora atual.

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
[in,out] aLayer
Uma referência à instância da camada para a qual eventos / mensagens estão sendo enviados.
[in,out] aContext
Dados de contexto específicos da plataforma transmitidos ao método de inicialização da camada, ::Init.
[in] aMilliseconds
O número de milissegundos a serem definidos para o timer.
Valores de retorno
WEAVE_SYSTEM_NO_ERROR
Sempre é bem-sucedido, a menos que seja substituído.

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
[in,out] aLayer
Uma referência à instância de Layer do sistema do Weave que está sendo inicializada.
[in,out] aContext
Dados de contexto específicos da plataforma transmitidos ao método de inicialização da camada, ::Init.
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
[in,out] aLayer
Um ponteiro para a instância de Layer do sistema do Weave que está sendo encerrada.
[in,out] aContext
Dados de contexto específicos da plataforma transmitidos ao método de inicialização da camada, ::Shutdown.
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.