nl::Weave::System::Platform::camada

Resumo

Functions

DidInit(Layer & aLayer, void *aContext, Error aStatus)
NL_DLL_EXPORT void
Este é um hook de pós-inicialização do sistema específico da plataforma.
DidShutdown(Layer & aLayer, void *aContext, Error aStatus)
NL_DLL_EXPORT void
Este é um hook de pré-desligamento 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 tempo do sistema monotônico em microssegundos.
GetClock_MonotonicHiRes(void)
uint64_t
Função específica da plataforma para acessar o tempo de sistema monotônico de alta resolução em microssegundos.
GetClock_MonotonicMS(void)
uint64_t
Função específica da plataforma para receber o tempo do sistema monotônico em milissegundos.
GetClock_RealTime(uint64_t & curTime)
Error
Função específica da plataforma para ver a hora real (civil) atual em formato de tempo Unix de microssegundos.
GetClock_RealTimeMS(uint64_t & curTimeMS)
Error
Função específica da plataforma para receber o horário real (civil) atual em formato de tempo Unix em milissegundos.
PostEvent(Layer & aLayer, void *aContext, Object & aTarget, EventType aType, uintptr_t aArgument)
NL_DLL_EXPORT Error
Este é um hook de evento / mensagem de mensagem específico da plataforma.
SetClock_RealTime(uint64_t newCurTime)
Error
Função específica da plataforma para definir o horário real (civil).
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 hook de pré-inicialização do Weave do sistema Weave específico da plataforma.
WillShutdown(Layer & aLayer, void *aContext)
NL_DLL_EXPORT Error
Este é um hook de pré-desligamento da Camada do sistema Weave específico da plataforma.

Functions

DidInit

NL_DLL_EXPORT void DidInit(
  Layer & aLayer,
  void *aContext,
  Error aStatus
)

Este é um hook de pós-inicialização do sistema específico da plataforma.

Isso pode ser modificado atribuindo a definição de pré-processador WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_XTOR_FunctionS.

Detalhes
Parâmetros
[in,out] aLayer
Uma referência à instância Layer do sistema Weave que está sendo inicializada.
[in,out] aContext
Dados de contexto específicos da plataforma transmitidos para o método de inicialização da camada, ::Init.
[in] anError
O status geral que está sendo retornado pelo método Layer do sistema Weave::Init.

Desligado

NL_DLL_EXPORT void DidShutdown(
  Layer & aLayer,
  void *aContext,
  Error aStatus
)

Este é um hook de pré-desligamento da Camada do sistema Weave específico da plataforma.

Isso pode ser modificado atribuindo a definição de pré-processador WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_XTOR_FunctionS.

Detalhes
Parâmetros
[in,out] aLayer
Uma referência à instância Layer do sistema Weave sendo encerrada.
[in,out] aContext
Dados de contexto específicos da plataforma transmitidos para o método de inicialização de camada, ::Shutdown.
[in] anError
O status geral que é retornado pelo método Layer ::Shutdown do sistema Weave.
Retorna
WEAVE_SYSTEM_NO_ERROR em caso de sucesso; caso contrário, um erro específico que indica o motivo da falha de encerramento. Retornar um status sem sucesso cancelará o encerramento.

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 modificado atribuindo a definição de pré-processador WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_EVENT_FunctionS.

Isso envia o evento especificado para manipulação, cancelando o gerenciamento do tipo e dos argumentos do evento para entregar ao sistema do Weave Layer::HandleEvent para o envio real.

Detalhes
Parâmetros
[in,out] aLayer
Uma referência à instância de camada em que os eventos / mensagens estão sendo enviados.
[in,out] aContext
Dados de contexto específicos da plataforma transmitidos para o método de inicialização da camada, ::Init.
[in] anEvent
O objeto de evento específico da plataforma a ser enviado para processamento.
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
Em caso de sucesso.

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 modificado atribuindo a definição de pré-processador WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_EVENT_FunctionS.

Isso afeta um loop de evento, aguardando em uma fila que atenda essa instância, retirando eventos dessa fila e enviando-os para gerenciamento.

Detalhes
Parâmetros
[in,out] aLayer
Uma referência à instância de camada em que os eventos / mensagens estão sendo enviados.
[in,out] aContext
Dados de contexto específicos da plataforma transmitidos para o 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
Em caso de sucesso.

GetClock_Monotonic

uint64_t GetClock_Monotonic(
  void
)

Função específica da plataforma para receber o tempo do sistema monotônico em microssegundos.

Essa função deve retornar o tempo decorrido em microssegundos desde uma época arbitrária definida pela plataforma. As implementações de plataforma são obrigadas a retornar um valor que está sempre aumentando (ou seja, nunca encerra) entre reinicializações do sistema. Além disso, a fonte de tempo subjacente é necessária para a marcação contínua durante qualquer modo de suspensão do sistema que não exija uma reinicialização após o despertar.

A época do tempo retornado por essa função não precisa ser igual à de qualquer uma das outras funções 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
Retorna
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 acessar o tempo de sistema monotônico de alta resolução em microssegundos.

Essa função deve retornar o tempo decorrido em microssegundos desde uma época arbitrária definida pela plataforma. Os valores retornados por GetClock_MonotonicHiRes() precisam ser crescentes (ou seja, nunca unir). No entanto, o timer subjacente não é acionado continuamente durante os estados de suspensão profunda do sistema.

Incentivamos a implementação da plataforma GetClock_MonotonicHiRes() com um timer de alta resolução que não está sujeito a ajustes graduais de relógio. 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 igual a qualquer outra das 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
Retorna
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 do sistema monotônico em milissegundos.

Essa função deve retornar o tempo decorrido em milissegundos desde uma época arbitrária definida pela plataforma. As implementações de plataforma são obrigadas a retornar um valor que está sempre aumentando (ou seja, nunca encerra) entre reinicializações do sistema. Além disso, a fonte de tempo subjacente é necessária para a marcação contínua durante qualquer modo de suspensão do sistema que não exija uma reinicialização após o despertar.

A época do tempo retornado por essa função não precisa ser igual a 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
Retorna
Tempo decorrido em milissegundos desde uma época arbitrária e definida pela plataforma.

GetClock_RealTime

Error GetClock_RealTime(
  uint64_t & curTime
)

Função específica da plataforma para ver a hora real (civil) atual em formato de tempo Unix de microssegundos.

Essa função deve retornar a noção da plataforma local em tempo real, expressa como um valor de hora Unix em escala de microssegundos. O relógio subjacente é necessário para funcionar a uma taxa de pelo menos a segundos inteiros (valores de 1.000.000), mas pode demorar mais rapidamente.

Nas plataformas capazes de rastrear o tempo real, GetClock_RealTime() deve retornar o erro WEAVE_SYSTEM_ERROR_REAL_TIME_NOT_SYNCED sempre que o sistema estiver dessincronizado com o tempo real.

As plataformas incapazes de rastrear o tempo real não devem implementar a função GetClock_RealTime(), forçando falhas no tempo de vinculação dos recursos que dependem do acesso ao tempo real. Como alternativa, 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 um horário Unix dimensionado em 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 for capaz de rastrear em tempo real, mas não está sincronizada no momento.
#WEAVE_SYSTEM_ERROR_NOT_SUPPORTED
Se a plataforma é incapaz de acompanhar 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 em formato de tempo Unix em milissegundos.

Essa função deve retornar a noção da plataforma local em tempo real, expressa como um valor de hora Unix dimensionado em milissegundos.

Consulte a documentação do GetClock_RealTime() para ver detalhes sobre o comportamento esperado.

Detalhes
Parâmetros
[out] curTime
A hora atual, expressa como o horário Unix dimensionado em 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 for capaz de rastrear em tempo real, mas não está sincronizada no momento.
#WEAVE_SYSTEM_ERROR_NOT_SUPPORTED
Se a plataforma é incapaz de acompanhar em tempo real.

Pós-evento

NL_DLL_EXPORT Error PostEvent(
  Layer & aLayer,
  void *aContext,
  Object & aTarget,
  EventType aType,
  uintptr_t aArgument
)

Este é um hook de evento / mensagem de mensagem específico da plataforma.

Isso pode ser modificado atribuindo a definição de pré-processador WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_EVENT_FunctionS.

Isso publica um evento / mensagem do tipo especificado com o argumento fornecido na fila de eventos / mensagens específica da plataforma.

Detalhes
Parâmetros
[in,out] aLayer
Um ponteiro para a instância de camada em que o evento / mensagem está sendo postado.
[in,out] aContext
Dados de contexto específicos da plataforma transmitidos para o 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.
Retorna
WEAVE_SYSTEM_NO_ERROR no caso de sucesso; caso contrário, um erro específico que indica o motivo da falha de inicialização.

Relógio_de_relógio_real

Error SetClock_RealTime(
  uint64_t newCurTime
)

Função específica da plataforma para definir o horário real (civil).

O Weave chama essa função para definir a noção da plataforma local em tempo real. O novo horário atual é expresso como um valor de horário Unix dimensionado para microssegundos.

Depois de definido, é esperado que o relógio da plataforma subjacente rastreie em tempo real com uma granularidade de pelo menos segundos inteiros.

Em plataformas que suportam o acompanhamento em tempo real, a função SetClock_RealTime() precisa retornar o erro WEAVE_SYSTEM_ERROR_ACCESS_DENIED se o aplicativo de chamada não tiver o privilégio para definir o horário atual.

As plataformas incapazes de rastrear o horário real ou que não oferecem a capacidade de definir o tempo real não devem implementar a função SetClock_RealTime(), forçando falhas no tempo de vinculação dos recursos que dependem da configuração em tempo real. Como 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 um 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 é incapaz de acompanhar em tempo real.
#WEAVE_SYSTEM_ERROR_ACCESS_DENIED
Se o aplicativo de chamada não tiver o privilégio para definir o horário 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 modificado atribuindo a definição de pré-processador WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_EVENT_FunctionS.

Detalhes
Parâmetros
[in,out] aLayer
Uma referência à instância de camada em que os eventos / mensagens estão sendo enviados.
[in,out] aContext
Dados de contexto específicos da plataforma transmitidos para o método de inicialização da camada, ::Init.
[in] aMilliseconds
O número de milissegundos a ser definido para o temporizador.
Valores de retorno
WEAVE_SYSTEM_NO_ERROR
Sempre terá sucesso, a menos que seja modificado.

WillInit

NL_DLL_EXPORT Error WillInit(
  Layer & aLayer,
  void *aContext
)

Este é um hook de pré-inicialização do Weave do sistema Weave específico da plataforma.

Isso pode ser modificado atribuindo a definição de pré-processador WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_XTOR_FunctionS.

Detalhes
Parâmetros
[in,out] aLayer
Uma referência à instância Layer do sistema Weave que está sendo inicializada.
[in,out] aContext
Dados de contexto específicos da plataforma transmitidos para o método de inicialização da camada, ::Init.
Retorna
WEAVE_SYSTEM_NO_ERROR no caso de sucesso; caso contrário, um erro específico que indica o motivo da falha de inicialização. Se o status não for retornado, a inicialização será cancelada.

Desativação

NL_DLL_EXPORT Error WillShutdown(
  Layer & aLayer,
  void *aContext
)

Este é um hook de pré-desligamento da Camada do sistema Weave específico da plataforma.

Isso pode ser modificado atribuindo a definição de pré-processador WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_XTOR_FunctionS.

Detalhes
Parâmetros
[in,out] aLayer
Um ponteiro para a instância Layer do sistema Weave sendo encerrada.
[in,out] aContext
Dados de contexto específicos da plataforma transmitidos para o método de inicialização de camada, ::Shutdown.
Retorna
WEAVE_SYSTEM_NO_ERROR em caso de sucesso; caso contrário, um erro específico que indica o motivo da falha de encerramento. Retornar um status sem sucesso cancelará o encerramento.