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

Resumo

Herança

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

Construtores e destruidores

TimeSyncNode(void)
mBootTimeForNextAutoDiscovery_usec
timesync_t
mIsAutoSyncEnabled
bool
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 de 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 processá-las.
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 tempo
CommState enum
status de comunicação com um determinado contato.
ContributorFilter)(void *const aApp, Contact aContact[], const int aSize) typedef
void(*
de retorno ocorre logo antes de calcularmos a correção de horário das respostas.
OnSyncRequestReceivedHandler)(void *const aApp, const WeaveMessageInfo *aMsgInfo, const uint8_t aLikelyhood, const bool aIsTimeCoordinator) typedef
bool(*
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 tempo
SyncFailedHandler)(void *const aApp, const WEAVE_ERROR aErrorCode) typedef
void(*
ocorre quando a sincronização é considerada com 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, inclusive 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(*
para indicar que acabamos de receber uma notificação de alteração de horário.

Atributos públicos

FilterTimeCorrectionContributor
OnSyncFailed
OnSyncRequestReceived
Se não for definido, a implementação padrão sempre retornará verdadeiro
OnSyncSucceeded
se ela não for definida, o comportamento padrão será usar todos os resultados, exceto as pequenas correções 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 *
apontar 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 na descoberta.
mIsAlwaysFresh
bool
mIsInCallback
bool
verdadeiro se estivermos em um callback para uma camada superior
mLastLikelihoodSent
int8_t
mNumContributorInLastLocalSync
uint8_t
mRole
TimeSyncRole
Papel real deste nó.
mServerState
mServiceContact
mTimestampLastCorrectionFromServerOrNtp_usec
timesync_t
use o tempo de inicialização, porque precisamos de compensação pelo tempo de sono
mTimestampLastLocalSync_usec
timesync_t
use o tempo de inicialização, porque precisamos de compensação pelo tempo de sono

Funções públicas

Abort(void)
forçam o motor a voltar ao estado inativo, cancelando tudo o que ele está 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 esse mecanismo está configurado para armazenar
GetClientState(void) const
getter simples para o estado do cliente
GetNextLikelihood(void) const
int8_t
para extrair a probabilidade de discos permanentes.
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)
inicializar para o papel de Servidor precisa ser chamado como a primeira função após a construção do objeto se a intenção for ser um Servidor de sincronização de tempo.
MulticastTimeChangeNotification(const uint8_t aEncryptionType, const uint16_t aKeyId) const
void
Chamado pela camada superior para notificação de alteração no horário multicast.
RegisterCorrectionFromServerOrNtp(void)
void
Chamado por uma camada superior para indicar que acabamos de concluir uma sincronização circular com qualquer servidor ou por algum meio confiável, como o NTP.
RegisterLocalSyncOperation(const uint8_t aNumContributor)
void
Chamado pela camada superior para indicar que acabamos de concluir uma rodada de sincronização com outros coordenadores locais.
Shutdown(void)
interromper o serviço, independentemente da função que ele desempenha.
Sync(const bool aForceDiscoverAgain)
sincronizar usando contatos existentes.
SyncWithNodes(const int16_t aNumNode, const ServingNode aNodes[])
sincronizar usando a lista de contatos fornecida.
SyncWithService(WeaveConnection *const aConnection)
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 callback à 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)
retornar um slot para armazenar informações de contato
GetClientStateName(void) const
const char *const
GetNextIdleContact(void)
conseguir o próximo contato válido e inativo para conversar
GetNumNotYetCompletedContacts(void)
int16_t
ver o número de contatos válidos, mas ainda não conversamos com eles.
GetNumReliableResponses(void)
int16_t
e descobrir o número de "confiáveis" respostas coletadas até o momento.
InitState(const TimeSyncRole aRole, void *const aApp, WeaveExchangeManager *const aExchangeMgr)
InvalidateAllContacts(void)
void
invalidar todos os contatos locais
InvalidateServiceContact(void)
void
invalidar 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 com quem conversar e, portanto, apenas reduzir o período de descoberta automática.
SendSyncRequest(bool *const rIsMessageSent, Contact *const aContact)
enviar uma solicitação de sincronização unicast a um contato.
SetAllCompletedContactsToIdle(void)
int16_t
redefinir todos os contatos concluídos para o estado inativo novamente, mas não toque na resposta.
SetAllValidContactsToIdleAndInvalidateResponse(void)
int16_t
Definir todos os contatos locais válidos para o estado inativo e limpar a resposta.
SetClientState(const ClientState state)
void
SetupUnicastCommContext(Contact *const aContact)
criar um 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 retornada de uma solicitação multicast
UpdateUnicastSyncResponse(const TimeSyncResponse & aResponse)
void
processar uma resposta retornada de uma solicitação unicast.
_InitClient(const uint8_t aEncryptionType, const uint16_t aKeyId, const int8_t aInitialLikelyhood)
para a função de cliente.
_InitServer(const bool aIsAlwaysFresh)
é inicializado para o papel de Servidor.
_ShutdownClient(void)
interromper o cliente não disponível em callbacks.
_ShutdownCoordinator(void)
interromper o coordenador não disponível em callbacks.
_ShutdownServer(void)
interromper o servidor não disponível em callbacks.

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
de retorno de chamada do Weave Exchange quando chega uma solicitação de sincronização de horário
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 ultrapassamos o não confiável após a barreira de inicialização
IsOperationalState(ClientState aState)
bool
Determinar 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

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 de 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 processá-las.

qualquer falha resultará em outra transição de estado (pode ser tempo limite). Se até o timer falhar, estaremos fora do truque e poderemos 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 tempo

CommState

 CommState

status de comunicação com um determinado contato.

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

ContributorFilter

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

de retorno ocorre logo antes de calcularmos a correção de horário das respostas.

camada do 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 da 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)

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 criador
[in] aIsTimeCoordinator
verdadeiro se o nó de origem for um coordenador de sincronização de horário
Retornos
"false", e o mecanismo vai ignorar essa solicitação

ResponseStatus

 ResponseStatus

status da resposta armazenada para um determinado contato.

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

ServerState

 ServerState

estado atual deste servidor de sincronização de tempo

Propriedades
kServerState_Idle

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

kServerState_UnreliableAfterBoot

tempo reservado para o servidor sincronizar a hora do sistema por algum outro meio somente significativo se aIsSempreFresh for verdadeiro quando Init for chamado

SyncFailedHandler

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

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

o retorno de chamada não acontecerá se Cancelar for chamado 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, inclusive a sincronização automática, mas antes que o resultado seja aplicado.

O sucesso não significa que temos resultados aplicáveis. Caso nenhuma resposta fosse recebida, aNumContributor seria definido como 0. A camada do 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] aOffsetUsec
quantidade de correção em uso
[in] aIsReliable
é a correção considerada confiável pela lógica integrada
[in] aIsServer
a correção foi feita pelos servidores
[in] aNumContributor
número de nós que contribuíram para essa correção. 0 significa que não há resultados da operação de sincronização.
Retornos
verdadeiro se esse ajuste deve ser usado para ajustar o horário do sistema. caso aNumContributor seja 0, o valor de retorno será ignorado.

TimeChangeNotificationHandler

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

para indicar que acabamos de receber uma notificação de alteração de horário.

se o modo de sincronização automática estiver ativado, uma sincronização de horário será agendada logo após esse retorno de chamada automaticamente. Caso contrário, a camada do aplicativo pode optar por chamar a família de funções de sincronização para iniciar diretamente a operação de sincronização não restrita pela regra normal de retorno de chamada não disponível. No entanto, deve-se observar que esse callback especial ainda está acima da pilha de callback 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ó solicitante
[in] aNodeAddr
endereço do nó solicitante

Atributos públicos

FilterTimeCorrectionContributor

ContributorFilter FilterTimeCorrectionContributor

OnSyncFailed

SyncFailedHandler OnSyncFailed

OnSyncRequestReceived

OnSyncRequestReceivedHandler OnSyncRequestReceived

Se não for definido, a implementação padrão sempre retornará verdadeiro

OnSyncSucceeded

SyncSucceededHandler OnSyncSucceeded

se ela não for definida, o comportamento padrão será usar todos os resultados, exceto as pequenas correções 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

apontar 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 na descoberta.

mIsAlwaysFresh

bool mIsAlwaysFresh

mIsInCallback

bool mIsInCallback

verdadeiro se estivermos em um callback 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

use o tempo de inicialização, porque precisamos de compensação pelo tempo de sono

mTimestampLastLocalSync_usec

timesync_t mTimestampLastLocalSync_usec

use o tempo de inicialização, porque precisamos de compensação pelo tempo de sono

Funções públicas

Cancelar

WEAVE_ERROR Abort(
  void
)

forçam o mecanismo a voltar ao estado inativo, cancelando tudo o que ele está fazendo.

nenhuma falha ou sucesso na sincronização será chamado. todas as trocas do Weave serão fechadas. As conexões TCP não seriam alteradas. nenhuma operação se já estivermos no estado inativo. não disponíveis em chamadas de retorno.

Detalhes
Retornos
WEAVE_NO_ERROR em caso de sucesso

DisableAutoSync

void DisableAutoSync(
  void
)

desativar a sincronização automática.

disponíveis apenas no estado inativo. não disponíveis em chamadas de retorno.

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íveis apenas no estado inativo. a descoberta acontece imediatamente. não disponíveis em chamadas de retorno.

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
menor tempo entre a descoberta, em ms, se um erro de comunicação tiver sido observado
Retornos
WEAVE_NO_ERROR em caso de sucesso

GetCapacityOfContactList

int GetCapacityOfContactList(
  void
) const 

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

GetClientState

ClientState GetClientState(
  void
) const 

getter simples para o estado do cliente

GetNextLikelihood

int8_t GetNextLikelihood(
  void
) const 

para extrair a probabilidade de discos permanentes.

o resultado só será válido após a conclusão da operação de sincronização, nos retornos de chamada de OnSyncSucceeded e OnSyncFailed. caso contrário, é transitório e pode ser a probabilidade atual em vez da próxima a ser usada.

Detalhes
Retornos
probabilidade de a resposta ser usada 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.

não disponível em callbacks

Detalhes
Parâmetros
[in] aApp
Um ponteiro para dados de camadas superiores, 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
tipo de criptografia a ser usado para solicitações e respostas
[in] aKeyId
ID da chave a ser usado para solicitações e respostas
[in] aInitialLikelyhood
probabilidade inicial de ser usado para o estágio de descoberta
Retornos
WEAVE_NO_ERROR em caso de sucesso

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
tipo de criptografia a ser usado para solicitações e respostas
[in] aKeyId
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
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 um erro de comunicação tiver sido observado
Retornos
WEAVE_NO_ERROR em caso de sucesso

InitServer

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

inicializar para o papel de Servidor precisa ser chamado como a primeira função após a construção do objeto se a intenção for ser um Servidor de sincronização de tempo.

não disponível em callbacks

Detalhes
Parâmetros
[in] aApp
Um ponteiro para dados de camadas superiores, 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 definida como verdadeira para indicar que o servidor está sempre sincronizado, exceto no tempo inicial não confiável. deve ser definido como falso para o coordenador.
Retornos
WEAVE_NO_ERROR em caso de sucesso

MulticastTimeChangeNotification

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

Chamado pela camada superior para notificação de alteração no horário multicast.

não disponíveis em chamadas de retorno.

Detalhes
Parâmetros
[in] aEncryptionType
tipo de criptografia a ser usado para esta notificação
[in] aKeyId
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 sincronização circular com qualquer servidor ou por algum meio confiável, como o NTP.

RegisterLocalSyncOperation

void RegisterLocalSyncOperation(
  const uint8_t aNumContributor
)

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

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

Encerramento

WEAVE_ERROR Shutdown(
  void
)

interromper o serviço, independentemente da função que ele desempenha.

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 disponíveis em chamadas de retorno.

Detalhes
Retornos
WEAVE_NO_ERROR em caso de sucesso

Sincronização

WEAVE_ERROR Sync(
  const bool aForceDiscoverAgain
)

sincronizar usando contatos existentes.

a operação de sincronização pode falhar se não houver contatos válidos disponíveis. defina aForceDiscoverAgain como verdadeiro para forçar a descoberta imediatamente. disponíveis apenas no estado inativo. não disponíveis em chamadas de retorno.

Detalhes
Parâmetros
[in] aForceDiscoverAgain
verdadeiro se todos os contatos existentes forem limpos e a operação de descoberta for executada
Retornos
WEAVE_NO_ERROR em caso de sucesso

SyncWithNodes

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

sincronizar usando a lista de contatos fornecida.

lista de contatos existente será transferida. disponíveis apenas no estado inativo. não disponíveis em chamadas de retorno.

Detalhes
Parâmetros
[in] aNumNode
número de contato nos aNodes da matriz
[in] aNodes
matriz de registros de contato
Retornos
WEAVE_NO_ERROR em caso de sucesso

SyncWithService

WEAVE_ERROR SyncWithService(
  WeaveConnection *const aConnection
)

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 pela conexão TCP, pois um novo Weave Exchange seria criado e callbacks definidos com base nesse contexto, disponíveis apenas em estado inativo. não disponíveis em chamadas de retorno.

Detalhes
Parâmetros
[in] aConnection
Um ponteiro para a conexão do Weave
Retornos
WEAVE_NO_ERROR em caso de sucesso

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 callback à camada do aplicativo.

defina aIsSuccessful como falso 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
)

retornar um slot 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 para conversar

GetNumNotYetCompletedContacts

int16_t GetNumNotYetCompletedContacts(
  void
)

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

GetNumReliableResponses

int16_t GetNumReliableResponses(
  void
)

e descobrir o número de "confiáveis" respostas coletadas até o momento.

chamado 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
)

invalidar 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 com quem conversar e, portanto, apenas reduzir o período de descoberta automática.

SendSyncRequest

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

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

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

SetAllCompletedContactsToIdle

int16_t SetAllCompletedContactsToIdle(
  void
)

redefinir todos os contatos concluídos para o estado inativo novamente, mas não toque na resposta.

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

SetAllValidContactsToIdleAndInvalidateResponse

int16_t SetAllValidContactsToIdleAndInvalidateResponse(
  void
)

Definir todos os contatos locais válidos para o estado inativo e limpar a resposta.

isso é chamado antes de começarmos a contatar um por um

SetClientState

void SetClientState(
  const ClientState state
)

SetupUnicastCommContext

WEAVE_ERROR SetupUnicastCommContext(
  Contact *const aContact
)

criar um 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 retornada de uma solicitação multicast

UpdateUnicastSyncResponse

void UpdateUnicastSyncResponse(
  const TimeSyncResponse & aResponse
)

processar uma resposta retornada de uma solicitação unicast.

_InitClient

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

para a função de cliente.

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

Detalhes
Parâmetros
[in] aEncryptionType
tipo de criptografia a ser usado para solicitações e respostas
[in] aKeyId
ID da chave a ser usado para solicitações e respostas
[in] aInitialLikelyhood
probabilidade inicial de ser usado para o estágio de descoberta
Retornos
WEAVE_NO_ERROR em caso de sucesso

_InitServer

WEAVE_ERROR _InitServer(
  const bool aIsAlwaysFresh
)

é inicializado para o papel de Servidor.

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

Detalhes
Parâmetros
[in] aIsAlwaysFresh
pode ser definida como verdadeira para indicar que o servidor está sempre sincronizado, exceto no tempo inicial não confiável. deve ser definido como falso para o coordenador.
Retornos
WEAVE_NO_ERROR em caso de sucesso

_ShutdownClient

WEAVE_ERROR _ShutdownClient(
  void
)

interromper o cliente não disponível em callbacks.

Detalhes
Retornos
WEAVE_NO_ERROR em caso de sucesso

_ShutdownCoordinator

WEAVE_ERROR _ShutdownCoordinator(
  void
)

interromper o coordenador não disponível em callbacks.

Detalhes
Retornos
WEAVE_NO_ERROR em caso de sucesso

_ShutdownServer

WEAVE_ERROR _ShutdownServer(
  void
)

interromper o servidor não disponível em callbacks.

Detalhes
Retornos
WEAVE_NO_ERROR em caso de sucesso

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
)

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

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 ultrapassamos o não confiável após a barreira de inicialização

IsOperationalState

bool IsOperationalState(
  ClientState aState
)

Determinar se o estado fornecido está operacional.

Método de conveniência para determinar se o ClientState indica o 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
Retornos
verdadeiro se o estado cair após a conclusão da inicialização e antes do início do encerramento. Caso contrário, é 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
)