nl::Weave::Profiles::Time::SingleSourceTimeSyncClient

Resumo

Tipos públicos

ClientState{
  kClientState_Idle,
  kClientState_Sync_1,
  kClientState_Sync_2
}
enum
estado atual deste cliente de sincronização de horário
SyncCompletionHandler)(void *const aApp, const WEAVE_ERROR aErrorCode, const timesync_t aCorrectedSystemTime) typedef
void(*
Callback depois que as duas tentativas de sincronização de horário forem concluídas.
TimeChangeNotificationHandler)(void *const aApp, ExchangeContext *aEC) typedef
void(*
Callback para indicar que acabamos de receber uma notificação de mudança de horário.

Tipos protegidos

@324 enum

Atributos públicos

OnTimeChangeNotificationReceived

Atributos protegidos

mApp
void *
mBinding
mClientState
mExchangeContext
mExchangeMgr
mFlightTime_usec
int32_t
usado para armazenar o horário de um voo só de ida.
mIsInCallback
bool
mOnSyncCompleted
mRegisterSyncResult_usec
timesync_t
usado para armazenar Carimbo de data/hora quando um resultado é registrado
mRemoteTimestamp_usec
timesync_t
usado para armazenar o horário do sistema do nó remoto, quando a mensagem de resposta estava prestes a ser enviada
mUnadjTimestampLastSent_usec
timesync_t

Funções públicas

Abort(void)
void
Cancelar operação de sincronização do horário atual.
GetClientState(void) const
Recupere o estado atual desse cliente.
Init(void *const aApp, WeaveExchangeManager *const aExchangeMgr)
Inicialize este cliente.
Sync(Binding *const aBinding, SyncCompletionHandler OnSyncCompleted)
Sincroniza usando a Binding especificada e faz um callback usando o ponteiro fornecido.

Funções protegidas

EnterSync2(void)
void
FinalProcessing(void)
void
GetClientStateName(void) const
const char *
InvalidateRegisteredResult(void)
void
Invalidar as informações registradas para a correção de horas.
IsRegisteredResultValid(void)
bool
Verifique se as informações registradas para a correção de horário são válidas.
OnResponseTimeout(void)
void
OnSyncResponse(uint32_t aProfileId, uint8_t aMsgType, PacketBuffer *aPayload)
void
ProceedToNextState(void)
void
RegisterSyncResultIfNewOrBetter(const timesync_t aNow_usec, const timesync_t aRemoteTimestamp_usec, const int32_t aFlightTime_usec)
void
SendSyncRequest(void)
SetClientState(const ClientState state)
void
_AbortWithCallback(const WEAVE_ERROR aErrorCode)
void

Funções estáticas protegidas

HandleResponseTimeout(ExchangeContext *aEC)
void
HandleSyncResponse(ExchangeContext *aEC, const IPPacketInfo *aPktInfo, const WeaveMessageInfo *aMsgInfo, uint32_t aProfileId, uint8_t aMsgType, PacketBuffer *aPayload)
void
HandleTimeChangeNotification(ExchangeContext *aEC, const IPPacketInfo *aPktInfo, const WeaveMessageInfo *aMsgInfo, uint32_t aProfileId, uint8_t aMsgType, PacketBuffer *aPayload)
void

Tipos públicos

ClientState

 ClientState

estado atual deste cliente de sincronização de horário

Propriedades
kClientState_Idle

Inicializado, aguardando a notificação de mudança de horário, mas nenhuma operação de sincronização de horário real está acontecendo.

kClientState_Sync_1

Estamos trabalhando na primeira tentativa de sincronização.

kClientState_Sync_2

Estamos trabalhando na segunda tentativa de sincronização.

SyncCompletionHandler

void(* SyncCompletionHandler)(void *const aApp, const WEAVE_ERROR aErrorCode, const timesync_t aCorrectedSystemTime)

Callback depois que as duas tentativas de sincronização de horário forem concluídas.

Se aErrorCode for WEAVE_NO_ERROR, pelo menos uma tentativa foi bem-sucedida. Caso contrário, as duas falhas em aErrorCode indicarão a falha mais recente.

Detalhes
Parâmetros
[in] aApp
Um ponteiro para os dados da camada do app, definido em Init.
[in] aErrorCode
WEAVE_NO_ERROR se pelo menos uma operação de sincronização for bem-sucedida
[in] aCorrectedSystemTime
Válido apenas se aErrorCode for WEAVE_NO_ERROR

TimeChangeNotificationHandler

void(* TimeChangeNotificationHandler)(void *const aApp, ExchangeContext *aEC)

Callback para indicar que acabamos de receber uma notificação de mudança de horário.

Defina como NULL em Init. Se não for definido, a notificação de mudança de horário será ignorada. A camada do app tem permissão para chamar o cancelamento e a sincronização nesse callback.

Detalhes
Parâmetros
[in] aApp
Um ponteiro para os dados da camada do app, definido em Init.
[in] aEC
O contexto do Exchange usado para esta mensagem recebida, que pode ser usado para validar a autenticidade dela

Tipos protegidos

@324

 @324

Atributos públicos

OnTimeChangeNotificationReceived

TimeChangeNotificationHandler OnTimeChangeNotificationReceived

Atributos protegidos

mApp

void * mApp

mBinding

Binding * mBinding

mClientState

ClientState mClientState

mExchangeContext

ExchangeContext * mExchangeContext

mExchangeMgr

WeaveExchangeManager * mExchangeMgr

mFlightTime_usec

int32_t mFlightTime_usec

usado para armazenar o horário de um voo só de ida.

mIsInCallback

bool mIsInCallback

mOnSyncCompleted

SyncCompletionHandler mOnSyncCompleted

mRegisterSyncResult_usec

timesync_t mRegisterSyncResult_usec

usado para armazenar Carimbo de data/hora quando um resultado é registrado

mRemoteTimestamp_usec

timesync_t mRemoteTimestamp_usec

usado para armazenar o horário do sistema do nó remoto, quando a mensagem de resposta estava prestes a ser enviada

mUnadjTimestampLastSent_usec

timesync_t mUnadjTimestampLastSent_usec

Funções públicas

Cancelar

void Abort(
  void
)

Cancelar operação de sincronização do horário atual.

Vinculação da versão. Cancelar troca ativa. Volta para o estado inativo.

GetClientState

ClientState GetClientState(
  void
) const 

Recupere o estado atual desse cliente.

Detalhes
Retorna
estado atual

Init

WEAVE_ERROR Init(
  void *const aApp,
  WeaveExchangeManager *const aExchangeMgr
)

Inicialize este cliente.

Precisa ser chamado antes que outras funções possam ser usadas. Zero/NULL inicializa todos os dados internos e se registram com a Notificação de mudança de horário.

Detalhes
Parâmetros
[in] aApp
Um ponteiro para dados de camada superior, usado em callbacks para a camada superior.
[in] aExchangeMgr
Um ponteiro para o Gerenciador do Exchange, que seria usado no registro do gerenciador de mensagens de Notificação de mudança de horário.
Retorna
WEAVE_NO_ERROR caso tenha êxito

Sincronização

WEAVE_ERROR Sync(
  Binding *const aBinding,
  SyncCompletionHandler OnSyncCompleted
)

Sincroniza usando a Binding especificada e faz um callback usando o ponteiro fornecido.

Se houver uma operação de sincronização de horário em andamento, ela será cancelada implicitamente sem a realização do callback. Não disponível no callback OnSyncConcluído, mas permitido em OnTimeChangeNotificationReceived . Em caso de erro, Abort seria chamado implicitamente antes de retornar dessa função.

Detalhes
Parâmetros
[in] aBinding
Vinculação a ser usada para entrar em contato com o servidor de horário.
[in] OnSyncCompleted
Função de callback a ser usada após a conclusão das operações de sincronização de horário
Retorna
WEAVE_NO_ERROR em caso de sucesso

Funções protegidas

EnterSync2

void EnterSync2(
  void
)

FinalProcessing

void FinalProcessing(
  void
)

GetClientStateName

const char * GetClientStateName(
  void
) const 

InvalidateRegisteredResult

void InvalidateRegisteredResult(
  void
)

Invalidar as informações registradas para a correção de horas.

IsRegisteredResultValid

bool IsRegisteredResultValid(
  void
)

Verifique se as informações registradas para a correção de horário são válidas.

OnResponseTimeout

void OnResponseTimeout(
  void
)

OnSyncResponse

void OnSyncResponse(
  uint32_t aProfileId,
  uint8_t aMsgType,
  PacketBuffer *aPayload
)

ProceedToNextState

void ProceedToNextState(
  void
)

RegisterSyncResultIfNewOrBetter

void RegisterSyncResultIfNewOrBetter(
  const timesync_t aNow_usec,
  const timesync_t aRemoteTimestamp_usec,
  const int32_t aFlightTime_usec
)

SendSyncRequest

WEAVE_ERROR SendSyncRequest(
  void
)

SetClientState

void SetClientState(
  const ClientState state
)

_AbortWithCallback

void _AbortWithCallback(
  const WEAVE_ERROR aErrorCode
)

Funções estáticas protegidas

HandleResponseTimeout

void HandleResponseTimeout(
  ExchangeContext *aEC
)

HandleSyncResponse

void HandleSyncResponse(
  ExchangeContext *aEC,
  const IPPacketInfo *aPktInfo,
  const WeaveMessageInfo *aMsgInfo,
  uint32_t aProfileId,
  uint8_t aMsgType,
  PacketBuffer *aPayload
)

HandleTimeChangeNotification

void HandleTimeChangeNotification(
  ExchangeContext *aEC,
  const IPPacketInfo *aPktInfo,
  const WeaveMessageInfo *aMsgInfo,
  uint32_t aProfileId,
  uint8_t aMsgType,
  PacketBuffer *aPayload
)