nl::Weave::Profiles::Time::TimeSyncNode

Resumo

Herança

Herda de: nl::Weave::Profiles::Time::_TimeSyncNodeBase

Construtores e destrutores

TimeSyncNode(void)
mBootTimeForNextAutoDiscovery_usec
timesync_t
mIsAutoSyncEnabled
bool
estados usados para o recurso de sincronização automática.
mIsUrgentDiscoveryPending
bool
mNominalDiscoveryPeriod_msec
int32_t
mShortestDiscoveryPeriod_msec
int32_t
mSyncPeriod_msec
int32_t
mActiveContact
contexto da comunicação.
mExchangeContext
mUnadjTimestampLastSent_usec
timesync_t
EnterState_Discover(void)
void
Essas funções de transição de estado são internas e não podem retornar o código de erro, porque o estado anterior não teria como lidar com elas.
EnterState_ServiceSync_1(void)
void
EnterState_ServiceSync_2(void)
void
EnterState_Sync_1(void)
void
EnterState_Sync_2(void)
void

Tipos públicos

ClientState enum
estado atual deste cliente de sincronização de horário
CommState enum
o status da comunicação com um determinado contato.
ContributorFilter)(void *const aApp, Contact aContact[], const int aSize) typedef
void(*
callback acontece logo antes de calcularmos a correção de horário a partir das respostas.
OnSyncRequestReceivedHandler)(void *const aApp, const WeaveMessageInfo *aMsgInfo, const uint8_t aLikelyhood, const bool aIsTimeCoordinator) typedef
bool(*
callback para indicar que acabamos de receber uma solicitação de sincronização de horário.
ResponseStatus enum
status da resposta armazenada para um determinado contato.
ServerState{
  kServerState_UnreliableAfterBoot,
  kServerState_Idle
}
enum
estado atual deste servidor de sincronização de horário
SyncFailedHandler)(void *const aApp, const WEAVE_ERROR aErrorCode) typedef
void(*
ocorre quando a sincronização é considerada uma falha, incluindo a sincronização automática.
SyncSucceededHandler)(void *const aApp, const timesync_t aOffsetUsec, const bool aIsReliable, const bool aIsServer, const uint8_t aNumContributor) typedef
bool(*
ocorre depois que a sincronização é considerada bem-sucedida, incluindo a sincronização automática, mas antes que o resultado seja aplicado.
TimeChangeNotificationHandler)(void *const aApp, const uint64_t aNodeId, const IPAddress &aNodeAddr) typedef
void(*
callback para indicar que acabamos de receber uma notificação de mudança de horário.

Atributos públicos

FilterTimeCorrectionContributor
OnSyncFailed
OnSyncRequestReceived
se não for definido, a implementação padrão sempre retornará "true"
OnSyncSucceeded
se não for definido, o comportamento padrão receberá todos os resultados, exceto correções muito pequenas do servidor
OnTimeChangeNotificationReceived
mEncryptionType
uint8_t
método de criptografia para comunicação local
mKeyId
uint16_t
ID da chave usado para comunicação local

Atributos protegidos

mApp
void *
ponteiro para dados de camada superior
mClientState
mConnectionToService
Conexão TCP usada para se comunicar com o serviço.
mContacts[WEAVE_CONFIG_TIME_CLIENT_MAX_NUM_CONTACTS]
Informações de contato aprendidas durante a descoberta.
mIsAlwaysFresh
bool
mIsInCallback
bool
verdadeiro se estivermos em uma chamada de retorno para uma camada superior
mLastLikelihoodSent
int8_t
mNumContributorInLastLocalSync
uint8_t
mRole
TimeSyncRole
Papel real deste nó.
mServerState
mServiceContact
mTimestampLastCorrectionFromServerOrNtp_usec
timesync_t
É necessário que seja o tempo de inicialização, porque precisamos de compensação pelo tempo de suspensão.
mTimestampLastLocalSync_usec
timesync_t
É necessário que seja o tempo de inicialização, porque precisamos de compensação pelo tempo de suspensão.

Funções públicas

Abort(void)
força o motor a voltar ao estado inativo, cancelando tudo o que estiver fazendo.
DisableAutoSync(void)
void
desativar a sincronização automática.
EnableAutoSync(const int32_t aSyncPeriod_msec, const int32_t aNominalDiscoveryPeriod_msec, const int32_t aShortestDiscoveryPeriod_msec)
ativar a sincronização automática.
GetCapacityOfContactList(void) const
int
getter simples para o número máximo de contatos que este mecanismo está configurado para armazenar
GetClientState(void) const
getter simples para o estado do cliente
GetNextLikelihood(void) const
int8_t
extrair a probabilidade de persistente.
GetServerState(void) const
getter simples para o estado do servidor
InitClient(void *const aApp, WeaveExchangeManager *aExchangeMgr, const uint8_t aEncryptionType, const uint16_t aKeyId, const int8_t aInitialLikelyhood)
inicializar este cliente.
InitCoordinator(nl::Weave::WeaveExchangeManager *aExchangeMgr, const uint8_t aEncryptionType, const uint16_t aKeyId, const int32_t aSyncPeriod_msec, const int32_t aNominalDiscoveryPeriod_msec, const int32_t aShortestDiscoveryPeriod_msec)
inicializar este coordenador.
InitServer(void *const aApp, WeaveExchangeManager *const aExchangeMgr, const bool aIsAlwaysFresh)
inicializado para o papel de servidor deve ser chamado como a primeira função após a construção do objeto se a intenção for um servidor de sincronização de horário.
MulticastTimeChangeNotification(const uint8_t aEncryptionType, const uint16_t aKeyId) const
void
Chamado pela camada superior para a notificação de mudança de horário do multicast.
RegisterCorrectionFromServerOrNtp(void)
void
Chamado por uma camada superior para indicar que acabamos de concluir uma rodada de sincronização com qualquer servidor ou por meios confiáveis como NTP.
RegisterLocalSyncOperation(const uint8_t aNumContributor)
void
Chamado por uma camada superior para indicar que acabamos de terminar uma rodada de sincronização com outros coordenadores locais.
Shutdown(void)
interromper o serviço, não importa qual papel ele esteja desempenhando.
Sync(const bool aForceDiscoverAgain)
sincronizar usando os contatos que já existem.
SyncWithNodes(const int16_t aNumNode, const ServingNode aNodes[])
sincronizar usando a lista de contatos fornecida.
SyncWithService(WeaveConnection *const aConnection)
sincronizar usando a conexão TCP fornecida, a criptografia e o ID da chave associados.

Funções protegidas

AbortOnError(const WEAVE_ERROR aCode)
void
Cancelamento interno se aCode não for WEAVE_NO_ERROR
AutoSyncNow(void)
void
função interna para iniciar uma sessão de sincronização automática
CallbackForSyncCompletion(const bool aIsSuccessful, bool aShouldUpdate, const bool aIsCorrectionReliable, const bool aIsFromServer, const uint8_t aNumContributor, const timesync_t aSystemTimestamp_usec, const timesync_t aDiffTime_usec)
induzem o retorno de chamada à camada do aplicativo.
ClearState(void)
void
DestroyCommContext(void)
bool
fechar o ExchangeContext do Weave
EndLocalSyncAndTryCalculateTimeFix(void)
void
EndServiceSyncAndTryCalculateTimeFix(void)
void
FindReplaceableContact(const uint64_t aNodeId, const IPAddress & aNodeAddr, bool aIsTimeChangeNotification)
devolver um horário para armazenar informações de contato
GetClientStateName(void) const
const char *const
GetNextIdleContact(void)
conseguir o próximo contato válido e inativo com quem falar
GetNumNotYetCompletedContacts(void)
int16_t
obter o número de contatos válidos, mas ainda não conversamos com eles.
GetNumReliableResponses(void)
int16_t
obter o número de respostas 'confiáveis' coletadas até agora.
InitState(const TimeSyncRole aRole, void *const aApp, WeaveExchangeManager *const aExchangeMgr)
InvalidateAllContacts(void)
void
invalidar todos os contatos locais
InvalidateServiceContact(void)
void
invalida o contato para o serviço
RegisterCommError(Contact *const aContact)
void
registrar erros de comunicação em um determinado contato e reduzir o período de descoberta automática, se necessário, o aContact pode ser NULL para indicar que não temos ninguém com quem conversar e, portanto, diminuir o período de descoberta automática.
SendSyncRequest(bool *const rIsMessageSent, Contact *const aContact)
enviar solicitação de sincronização unicast para um contato.
SetAllCompletedContactsToIdle(void)
int16_t
redefina todos os contatos concluídos para o estado inativo novamente, mas sem tocar na resposta.
SetAllValidContactsToIdleAndInvalidateResponse(void)
int16_t
Define todos os contatos locais válidos para o estado inativo e limpe a resposta.
SetClientState(const ClientState state)
void
SetupUnicastCommContext(Contact *const aContact)
criar novo Weave Exchange para comunicação unicast
StoreNotifyingContact(const uint64_t aNodeId, const IPAddress & aNodeAddr)
void
armazenar as informações de contato de um nó que acabou de nos enviar uma notificação de alteração de horário
UpdateMulticastSyncResponse(const uint64_t aNodeId, const IPAddress & aNodeAddr, const TimeSyncResponse & aResponse)
void
processar uma resposta de uma solicitação multicast
UpdateUnicastSyncResponse(const TimeSyncResponse & aResponse)
void
processar uma resposta de uma solicitação unicast
_InitClient(const uint8_t aEncryptionType, const uint16_t aKeyId, const int8_t aInitialLikelyhood)
inicializar para o papel do cliente.
_InitServer(const bool aIsAlwaysFresh)
inicializar para o papel de servidor.
_ShutdownClient(void)
parar o cliente não disponível em chamadas de retorno.
_ShutdownCoordinator(void)
interrompe o coordenador que não está disponível em chamadas de retorno.
_ShutdownServer(void)
parar o servidor não disponível em chamadas de retorno.

Funções estáticas protegidas

HandleAutoDiscoveryTimeout(System::Layer *aSystemLayer, void *aAppState, System::Error aError)
void
HandleAutoSyncTimeout(System::Layer *aSystemLayer, void *aAppState, System::Error aError)
void
HandleMulticastResponseTimeout(System::Layer *aSystemLayer, void *aAppState, System::Error aError)
void
HandleMulticastSyncResponse(ExchangeContext *ec, const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo, uint32_t profileId, uint8_t msgType, PacketBuffer *payload)
void
HandleSyncRequest(ExchangeContext *ec, const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo, uint32_t profileId, uint8_t msgType, PacketBuffer *payload)
void
callback do Weave Exchange quando uma solicitação de sincronização de horário chega
HandleTimeChangeNotification(ExchangeContext *ec, const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo, uint32_t profileId, uint8_t msgType, PacketBuffer *payload)
void
HandleUnicastResponseTimeout(ExchangeContext *const ec)
void
HandleUnicastSyncResponse(ExchangeContext *ec, const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo, uint32_t profileId, uint8_t msgType, PacketBuffer *payload)
void
HandleUnreliableAfterBootTimer(System::Layer *aSystemLayer, void *aAppState, System::Error aError)
void
callback do Weave Timer quando passamos o não confiável após a barreira de inicialização
IsOperationalState(ClientState aState)
bool
Determine se o estado fornecido está operacional.
_OnSyncSucceeded(void *const aApp, const nl::Weave::Profiles::Time::timesync_t aOffsetUsec, const bool aIsReliable, const bool aIsServer, const uint8_t aNumContributor)
bool

mBootTimeForNextAutoDiscovery_usec

timesync_t mBootTimeForNextAutoDiscovery_usec

mIsAutoSyncEnabled

bool mIsAutoSyncEnabled

estados usados para o recurso de sincronização automática.

mIsUrgentDiscoveryPending

bool mIsUrgentDiscoveryPending

mNominalDiscoveryPeriod_msec

int32_t mNominalDiscoveryPeriod_msec

mShortestDiscoveryPeriod_msec

int32_t mShortestDiscoveryPeriod_msec

mSyncPeriod_msec

int32_t mSyncPeriod_msec

mActiveContact

Contact * mActiveContact

contexto da comunicação.

mExchangeContext

ExchangeContext * mExchangeContext

mUnadjTimestampLastSent_usec

timesync_t mUnadjTimestampLastSent_usec

EnterState_Discover

void EnterState_Discover(
  void
)

Essas funções de transição de estado são internas e não podem retornar o código de erro, porque o estado anterior não teria como lidar com elas.

qualquer falha resultará em outra transição de estado (pode ser o tempo limite). Se até mesmo o timer falhar, estamos sem truque e podemos travar em algum estado errado

EnterState_ServiceSync_1

void EnterState_ServiceSync_1(
  void
)

EnterState_ServiceSync_2

void EnterState_ServiceSync_2(
  void
)

EnterState_Sync_1

void EnterState_Sync_1(
  void
)

EnterState_Sync_2

void EnterState_Sync_2(
  void
)

Tipos públicos

ClientState

 ClientState

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

CommState

 CommState

o status da comunicação com um determinado contato.

Isto é público porque Contato está em público

ContributorFilter

void(* ContributorFilter)(void *const aApp, Contact aContact[], const int aSize)

callback acontece logo antes de calcularmos a correção de horário a partir das respostas.

camada de aplicativo poderia substituir aContact[i].mResponseStatus por kResponseStatus_Invalid para que a resposta fosse ignorada no cálculo

Detalhes
Parâmetros
[in] aApp
Um ponteiro para os dados da camada do app, definido em Init.
[in] aContact
matriz de contatos e status de resposta
[in] aSize
número de registros na matriz aContact

OnSyncRequestReceivedHandler

bool(* OnSyncRequestReceivedHandler)(void *const aApp, const WeaveMessageInfo *aMsgInfo, const uint8_t aLikelyhood, const bool aIsTimeCoordinator)

callback para indicar que acabamos de receber uma solicitação de sincronização de horário.

Detalhes
Parâmetros
[in] aApp
Um ponteiro para os dados da camada do app, definido em Init.
[in] aMsgInfo
Um WeaveMessageInfo contendo informações sobre a solicitação de sincronização de horário recebida, incluindo informações sobre o remetente.
[in] aLikelyhood
probabilidade de resposta conforme solicitado pelo originador
[in] aIsTimeCoordinator
verdadeiro se o nó de origem for um coordenador de sincronização de horário
Retorna
"false", e o mecanismo ignora essa solicitação.

ResponseStatus

 ResponseStatus

status da resposta armazenada para um determinado contato.

Isto é público porque Contato está em público

ServerState

 ServerState

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

Propriedades
kServerState_Idle

o servidor está pronto para responder às solicitações com configurações normais;

kServerState_UnreliableAfterBoot

tempo reservado para que o servidor sincronize o horário do sistema por algum outro meio só é significativo se aIsAlwaysFresh for verdadeiro quando Init for chamado

SyncFailedHandler

void(* SyncFailedHandler)(void *const aApp, const WEAVE_ERROR aErrorCode)

ocorre quando a sincronização é considerada uma falha, incluindo a sincronização automática.

Observe que o retorno de chamada não ocorre se a opção "Cancelar" for chamada para interromper a sincronização

Detalhes
Parâmetros
[in] aApp
Um ponteiro para os dados da camada do app, definido em Init.
[in] aErrorCode
motivo da falha

SyncSucceededHandler

bool(* SyncSucceededHandler)(void *const aApp, const timesync_t aOffsetUsec, const bool aIsReliable, const bool aIsServer, const uint8_t aNumContributor)

ocorre depois que a sincronização é considerada bem-sucedida, incluindo a sincronização automática, mas antes que o resultado seja aplicado.

A conclusão não significa que temos resultados aplicáveis. Se nenhuma resposta fosse recebida, o aNumContributor seria definido como 0. A camada do aplicativo poderia substituir umContact[i].mResponseStatus por kResponseStatus_Invalid para que essa resposta fosse ignorada no cálculo.

Detalhes
Parâmetros
[in] aApp
Um ponteiro para os dados da camada do app, definido em Init.
[in] aOffsetUsec
quantidade de correção em uso
[in] aIsReliable
é a correção considerada confiável pela lógica integrada
[in] aIsServer
a correção vem dos servidores?
[in] aNumContributor
número de nós que contribuíram para essa correção. O valor 0 significa que não há resultados da operação de sincronização.
Retorna
true se esse deslocamento deve ser usado para ajustar o horário do sistema. Caso aNumContributor seja 0, o valor de retorno é ignorado.

TimeChangeNotificationHandler

void(* TimeChangeNotificationHandler)(void *const aApp, const uint64_t aNodeId, const IPAddress &aNodeAddr)

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

se o modo de sincronização automática estiver ativado, uma sincronização de tempo será agendada logo após esse retorno de chamada automaticamente. Caso contrário, a camada do aplicativo poderá optar por chamar a família de sincronização de funções para iniciar diretamente a operação de sincronização não restrita pela regra normal de não disponível no retorno de chamada. No entanto, é preciso observar que esse retorno de chamada especial ainda está na parte superior da pilha de retornos de chamada da camada de troca do Weave.

Detalhes
Parâmetros
[in] aApp
Um ponteiro para os dados da camada do app, definido em Init.
[in] aNodeId
ID do nó solicitando
[in] aNodeAddr
endereço do nó solicitado

Atributos públicos

FilterTimeCorrectionContributor

ContributorFilter FilterTimeCorrectionContributor

OnSyncFailed

SyncFailedHandler OnSyncFailed

OnSyncRequestReceived

OnSyncRequestReceivedHandler OnSyncRequestReceived

se não for definido, a implementação padrão sempre retornará "true"

OnSyncSucceeded

SyncSucceededHandler OnSyncSucceeded

se não for definido, o comportamento padrão receberá todos os resultados, exceto correções muito pequenas do servidor

OnTimeChangeNotificationReceived

TimeChangeNotificationHandler OnTimeChangeNotificationReceived

mEncryptionType

uint8_t mEncryptionType

método de criptografia para comunicação local

mKeyId

uint16_t mKeyId

ID da chave usado para comunicação local

Atributos protegidos

mApp

void * mApp

ponteiro para dados de camada superior

mClientState

ClientState mClientState

mConnectionToService

WeaveConnection * mConnectionToService

Conexão TCP usada para se comunicar com o serviço.

mContacts

Contact mContacts[WEAVE_CONFIG_TIME_CLIENT_MAX_NUM_CONTACTS]

Informações de contato aprendidas durante a descoberta.

mIsAlwaysFresh

bool mIsAlwaysFresh

mIsInCallback

bool mIsInCallback

verdadeiro se estivermos em uma chamada de retorno para uma camada superior

mLastLikelihoodSent

int8_t mLastLikelihoodSent

mNumContributorInLastLocalSync

uint8_t mNumContributorInLastLocalSync

mRole

TimeSyncRole mRole

Papel real deste nó.

mServerState

ServerState mServerState

mServiceContact

Contact mServiceContact

mTimestampLastCorrectionFromServerOrNtp_usec

timesync_t mTimestampLastCorrectionFromServerOrNtp_usec

É necessário que seja o tempo de inicialização, porque precisamos de compensação pelo tempo de suspensão.

mTimestampLastLocalSync_usec

timesync_t mTimestampLastLocalSync_usec

É necessário que seja o tempo de inicialização, porque precisamos de compensação pelo tempo de suspensão.

Funções públicas

Cancelar

WEAVE_ERROR Abort(
  void
)

força o motor a voltar ao estado inativo, cancelando tudo o que estiver fazendo.

note que nenhum sucesso ou falha de sincronização será chamado. Todas as trocas do Weave serão fechadas. As conexões TCP não são afetadas. Nenhuma operação é necessária se já estivermos no estado inativo. Não está disponível em chamadas de retorno.

Detalhes
Retorna
WEAVE_NO_ERROR caso tenha êxito

DisableAutoSync

void DisableAutoSync(
  void
)

desativar a sincronização automática.

Disponível apenas em estado inativo. Não disponível em callbacks.

EnableAutoSync

WEAVE_ERROR EnableAutoSync(
  const int32_t aSyncPeriod_msec,
  const int32_t aNominalDiscoveryPeriod_msec,
  const int32_t aShortestDiscoveryPeriod_msec
)

ativar a sincronização automática.

Disponível apenas em estado inativo. A descoberta ocorre imediatamente. Não está disponível em callbacks.

Detalhes
Parâmetros
[in] aSyncPeriod_msec
número de ms entre a sincronização
[in] aNominalDiscoveryPeriod_msec
número de ms entre a descoberta, se nenhum erro de comunicação for observado
[in] aShortestDiscoveryPeriod_msec
o menor tempo entre a descoberta, em ms, se tiver sido observado um erro de comunicação
Retorna
WEAVE_NO_ERROR caso tenha êxito

GetCapacityOfContactList

int GetCapacityOfContactList(
  void
) const 

getter simples para o número máximo de contatos que este mecanismo está configurado para armazenar

GetClientState

ClientState GetClientState(
  void
) const 

getter simples para o estado do cliente

GetNextLikelihood

int8_t GetNextLikelihood(
  void
) const 

extrair a probabilidade de persistente.

o resultado só seria válido após a conclusão da operação de sincronização, dentro de callbacks de OnSyncSucceeded e OnSyncFailed. Caso contrário, ele é temporário e pode ser a probabilidade atual em vez da próxima a ser usada.

Detalhes
Retorna
probabilidade de uso da resposta na próxima solicitação

GetServerState

ServerState GetServerState(
  void
) const 

getter simples para o estado do servidor

InitClient

WEAVE_ERROR InitClient(
  void *const aApp,
  WeaveExchangeManager *aExchangeMgr,
  const uint8_t aEncryptionType,
  const uint16_t aKeyId,
  const int8_t aInitialLikelyhood
)

inicializar este cliente.

indisponível em callbacks

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 objeto do Weave Exchange Manager em todo o sistema.
[in] aRole
Pode ser kTimeSyncRole_Client ou kTimeSyncRole_Coordinator
[in] aEncryptionType
o tipo de criptografia a ser usado para solicitações e respostas.
[in] aKeyId
o ID da chave a ser usado para solicitações e respostas
[in] aInitialLikelyhood
probabilidade inicial de uso para o estágio de descoberta
Retorna
WEAVE_NO_ERROR caso tenha êxito

InitCoordinator

WEAVE_ERROR InitCoordinator(
  nl::Weave::WeaveExchangeManager *aExchangeMgr,
  const uint8_t aEncryptionType,
  const uint16_t aKeyId,
  const int32_t aSyncPeriod_msec,
  const int32_t aNominalDiscoveryPeriod_msec,
  const int32_t aShortestDiscoveryPeriod_msec
)

inicializar este coordenador.

Detalhes
Parâmetros
[in] aExchangeMgr
Um ponteiro para o objeto do Weave Exchange Manager em todo o sistema.
[in] aEncryptionType
o tipo de criptografia a ser usado para solicitações e respostas.
[in] aKeyId
o ID da chave a ser usado para solicitações e respostas
[in] aSyncPeriod_msec
número de ms entre a sincronização
[in] aNominalDiscoveryPeriod_msec
o menor tempo entre a descoberta, em ms, se nenhum erro de comunicação for observado
[in] aShortestDiscoveryPeriod_msec
menor número de ms entre a descoberta, se tiver sido observado um erro de comunicação
Retorna
WEAVE_NO_ERROR caso tenha êxito

InitServer

WEAVE_ERROR InitServer(
  void *const aApp,
  WeaveExchangeManager *const aExchangeMgr,
  const bool aIsAlwaysFresh
)

inicializado para o papel de servidor deve ser chamado como a primeira função após a construção do objeto se a intenção for um servidor de sincronização de horário.

indisponível em callbacks

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 objeto do Weave Exchange Manager em todo o sistema.
[in] aIsAlwaysFresh
pode ser definido como verdadeiro para indicar que o servidor está sempre sincronizado, exceto pelo tempo inicial não confiável. Deve ser definido como falso para o coordenador.
Retorna
WEAVE_NO_ERROR caso tenha êxito

MulticastTimeChangeNotification

void MulticastTimeChangeNotification(
  const uint8_t aEncryptionType,
  const uint16_t aKeyId
) const 

Chamado pela camada superior para a notificação de mudança de horário do multicast.

não está disponível em callbacks.

Detalhes
Parâmetros
[in] aEncryptionType
tipo de criptografia a ser usado para esta notificação
[in] aKeyId
o ID da chave a ser usado para esta notificação

RegisterCorrectionFromServerOrNtp

void RegisterCorrectionFromServerOrNtp(
  void
)

Chamado por uma camada superior para indicar que acabamos de concluir uma rodada de sincronização com qualquer servidor ou por meios confiáveis como NTP.

RegisterLocalSyncOperation

void RegisterLocalSyncOperation(
  const uint8_t aNumContributor
)

Chamado por uma camada superior para indicar que acabamos de terminar uma rodada de sincronização com outros coordenadores locais.

Detalhes
Parâmetros
[in] aNumContributor
o número de coordenadores que contribuiu para essa sincronização de tempo

Desligamento

WEAVE_ERROR Shutdown(
  void
)

interromper o serviço, não importa qual papel ele esteja desempenhando.

Essa função deve ser chamada para recuperar adequadamente os recursos alocados antes que outra chamada para qualquer uma das funções init possa ser feita. Não está disponível em retornos de chamada.

Detalhes
Retorna
WEAVE_NO_ERROR caso tenha êxito

Sincronização

WEAVE_ERROR Sync(
  const bool aForceDiscoverAgain
)

sincronizar usando os contatos que já existem.

a operação de sincronização poderá falhar se não houver contatos válidos disponíveis. Defina aForceDiscoverAgain como true para forçar a descoberta imediatamente. Disponível apenas em estado inativo. não disponível em callbacks.

Detalhes
Parâmetros
[in] aForceDiscoverAgain
verdadeiro se todos os contatos existentes forem apagados e a operação de descoberta será executada
Retorna
WEAVE_NO_ERROR caso tenha êxito

SyncWithNodes

WEAVE_ERROR SyncWithNodes(
  const int16_t aNumNode,
  const ServingNode aNodes[]
)

sincronizar usando a lista de contatos fornecida.

lista de contatos existente seria limpa. Disponível apenas em estado inativo. Não disponível em callbacks.

Detalhes
Parâmetros
[in] aNumNode
número de contato nos aNodes da matriz
[in] aNodes
matriz de registros de contato
Retorna
WEAVE_NO_ERROR caso tenha êxito

SyncWithService

WEAVE_ERROR SyncWithService(
  WeaveConnection *const aConnection
)

sincronizar usando a conexão TCP fornecida, a criptografia e o ID da chave associados.

O autor da chamada precisa assumir a propriedade da conexão TCP após o término da sincronização. Nenhum callback seria substituído para a conexão TCP, porque um novo Weave Exchange seria criado e os callbacks definidos sobre esse contexto só ficavam disponíveis em estado inativo. Não disponíveis em callbacks.

Detalhes
Parâmetros
[in] aConnection
Um ponteiro para a conexão do Weave
Retorna
WEAVE_NO_ERROR caso tenha êxito

TimeSyncNode

 TimeSyncNode(
  void
)

Funções protegidas

AbortOnError

void AbortOnError(
  const WEAVE_ERROR aCode
)

Cancelamento interno se aCode não for WEAVE_NO_ERROR

AutoSyncNow

void AutoSyncNow(
  void
)

função interna para iniciar uma sessão de sincronização automática

CallbackForSyncCompletion

WEAVE_ERROR CallbackForSyncCompletion(
  const bool aIsSuccessful,
  bool aShouldUpdate,
  const bool aIsCorrectionReliable,
  const bool aIsFromServer,
  const uint8_t aNumContributor,
  const timesync_t aSystemTimestamp_usec,
  const timesync_t aDiffTime_usec
)

induzem o retorno de chamada à camada do aplicativo.

defina aIsSuccess como false para induzir o retorno de chamada de erro

ClearState

void ClearState(
  void
)

DestroyCommContext

bool DestroyCommContext(
  void
)

fechar o ExchangeContext do Weave

EndLocalSyncAndTryCalculateTimeFix

void EndLocalSyncAndTryCalculateTimeFix(
  void
)

EndServiceSyncAndTryCalculateTimeFix

void EndServiceSyncAndTryCalculateTimeFix(
  void
)

FindReplaceableContact

Contact * FindReplaceableContact(
  const uint64_t aNodeId,
  const IPAddress & aNodeAddr,
  bool aIsTimeChangeNotification
)

devolver um horário para armazenar informações de contato

GetClientStateName

const char *const GetClientStateName(
  void
) const 

GetNextIdleContact

Contact * GetNextIdleContact(
  void
)

conseguir o próximo contato válido e inativo com quem falar

GetNumNotYetCompletedContacts

int16_t GetNumNotYetCompletedContacts(
  void
)

obter o número de contatos válidos, mas ainda não conversamos com eles.

GetNumReliableResponses

int16_t GetNumReliableResponses(
  void
)

obter o número de respostas 'confiáveis' coletadas até agora.

chamados para determinar se coletamos um número suficiente de respostas

InitState

WEAVE_ERROR InitState(
  const TimeSyncRole aRole,
  void *const aApp,
  WeaveExchangeManager *const aExchangeMgr
)

InvalidateAllContacts

void InvalidateAllContacts(
  void
)

invalidar todos os contatos locais

InvalidateServiceContact

void InvalidateServiceContact(
  void
)

invalida o contato para o serviço

RegisterCommError

void RegisterCommError(
  Contact *const aContact
)

registrar erros de comunicação em um determinado contato e reduzir o período de descoberta automática, se necessário, o aContact pode ser NULL para indicar que não temos ninguém com quem conversar e, portanto, diminuir o período de descoberta automática.

SendSyncRequest

WEAVE_ERROR SendSyncRequest(
  bool *const rIsMessageSent,
  Contact *const aContact
)

enviar solicitação de sincronização unicast para um contato.

*rIsMessageSent será configurado para indicar se a mensagem foi enviada. Erros de comunicação, como endereço inacessível, não são retornados. Por isso, o autor da chamada deve verificar o código de retorno e o código *rIsMessageSent.

SetAllCompletedContactsToIdle

int16_t SetAllCompletedContactsToIdle(
  void
)

redefina todos os contatos concluídos para o estado inativo novamente, mas sem tocar na resposta.

Isso é chamado entre duas rodadas de comunicação com o mesmo nó

SetAllValidContactsToIdleAndInvalidateResponse

int16_t SetAllValidContactsToIdleAndInvalidateResponse(
  void
)

Define todos os contatos locais válidos para o estado inativo e limpe a resposta.

chamado antes de começarmos a contatá-los um por um.

SetClientState

void SetClientState(
  const ClientState state
)

SetupUnicastCommContext

WEAVE_ERROR SetupUnicastCommContext(
  Contact *const aContact
)

criar novo Weave Exchange para comunicação unicast

StoreNotifyingContact

void StoreNotifyingContact(
  const uint64_t aNodeId,
  const IPAddress & aNodeAddr
)

armazenar as informações de contato de um nó que acabou de nos enviar uma notificação de alteração de horário

UpdateMulticastSyncResponse

void UpdateMulticastSyncResponse(
  const uint64_t aNodeId,
  const IPAddress & aNodeAddr,
  const TimeSyncResponse & aResponse
)

processar uma resposta de uma solicitação multicast

UpdateUnicastSyncResponse

void UpdateUnicastSyncResponse(
  const TimeSyncResponse & aResponse
)

processar uma resposta de uma solicitação unicast

_InitClient

WEAVE_ERROR _InitClient(
  const uint8_t aEncryptionType,
  const uint16_t aKeyId,
  const int8_t aInitialLikelyhood
)

inicializar para o papel do cliente.

Destina-se a ser usado internamente pela família Init de funções públicas. É necessário definir mClientState antes do retorno. Não disponível em callbacks

Detalhes
Parâmetros
[in] aEncryptionType
o tipo de criptografia a ser usado para solicitações e respostas.
[in] aKeyId
o ID da chave a ser usado para solicitações e respostas
[in] aInitialLikelyhood
probabilidade inicial de uso para o estágio de descoberta
Retorna
WEAVE_NO_ERROR caso tenha êxito

_InitServer

WEAVE_ERROR _InitServer(
  const bool aIsAlwaysFresh
)

inicializar para o papel de servidor.

Destina-se a ser usado internamente pela família Init de funções públicas. É necessário definir mClientState antes do retorno. Não disponível em callbacks

Detalhes
Parâmetros
[in] aIsAlwaysFresh
pode ser definido como verdadeiro para indicar que o servidor está sempre sincronizado, exceto pelo tempo inicial não confiável. Deve ser definido como falso para o coordenador.
Retorna
WEAVE_NO_ERROR caso tenha êxito

_ShutdownClient

WEAVE_ERROR _ShutdownClient(
  void
)

parar o cliente não disponível em chamadas de retorno.

Detalhes
Retorna
WEAVE_NO_ERROR caso tenha êxito

_Coordenador de desligamento

WEAVE_ERROR _ShutdownCoordinator(
  void
)

interrompe o coordenador que não está disponível em chamadas de retorno.

Detalhes
Retorna
WEAVE_NO_ERROR caso tenha êxito

_Servidor de encerramento

WEAVE_ERROR _ShutdownServer(
  void
)

parar o servidor não disponível em chamadas de retorno.

Detalhes
Retorna
WEAVE_NO_ERROR caso tenha êxito

Funções estáticas protegidas

HandleAutoDiscoveryTimeout

void HandleAutoDiscoveryTimeout(
  System::Layer *aSystemLayer,
  void *aAppState,
  System::Error aError
)

HandleAutoSyncTimeout

void HandleAutoSyncTimeout(
  System::Layer *aSystemLayer,
  void *aAppState,
  System::Error aError
)

HandleMulticastResponseTimeout

void HandleMulticastResponseTimeout(
  System::Layer *aSystemLayer,
  void *aAppState,
  System::Error aError
)

HandleMulticastSyncResponse

void HandleMulticastSyncResponse(
  ExchangeContext *ec,
  const IPPacketInfo *pktInfo,
  const WeaveMessageInfo *msgInfo,
  uint32_t profileId,
  uint8_t msgType,
  PacketBuffer *payload
)

HandleSyncRequest

void HandleSyncRequest(
  ExchangeContext *ec,
  const IPPacketInfo *pktInfo,
  const WeaveMessageInfo *msgInfo,
  uint32_t profileId,
  uint8_t msgType,
  PacketBuffer *payload
)

callback do Weave Exchange quando uma solicitação de sincronização de horário chega

HandleTimeChangeNotification

void HandleTimeChangeNotification(
  ExchangeContext *ec,
  const IPPacketInfo *pktInfo,
  const WeaveMessageInfo *msgInfo,
  uint32_t profileId,
  uint8_t msgType,
  PacketBuffer *payload
)

HandleUnicastResponseTimeout

void HandleUnicastResponseTimeout(
  ExchangeContext *const ec
)

HandleUnicastSyncResponse

void HandleUnicastSyncResponse(
  ExchangeContext *ec,
  const IPPacketInfo *pktInfo,
  const WeaveMessageInfo *msgInfo,
  uint32_t profileId,
  uint8_t msgType,
  PacketBuffer *payload
)

HandleUnreliableAfterBootTimer

void HandleUnreliableAfterBootTimer(
  System::Layer *aSystemLayer,
  void *aAppState,
  System::Error aError
)

callback do Weave Timer quando passamos o não confiável após a barreira de inicialização

IsOperationalState

bool IsOperationalState(
  ClientState aState
)

Determine se o estado fornecido está operacional.

Método de conveniência para determinar se o ClientState indica um estado operacional, ou seja, o cliente concluiu a inicialização e não está no processo de encerramento.

Detalhes
Parâmetros
[in] aState
estado a ser avaliado
Retorna
verdadeiro se o estado cair após a conclusão da inicialização e antes do início do encerramento; caso contrário, será falso.

_OnSyncSucceeded

bool _OnSyncSucceeded(
  void *const aApp,
  const nl::Weave::Profiles::Time::timesync_t aOffsetUsec,
  const bool aIsReliable,
  const bool aIsServer,
  const uint8_t aNumContributor
)