nl :: Tecer:: Perfis :: DataManagement_Current :: SubscriptionClient
Resumo
Tipos públicos | |
---|---|
@130 | enum |
EventCallback )(void *const aAppState, EventID aEvent, const InEventParam &aInParam, OutEventParam &aOutParam) | typedefvoid(* Retorno de chamada para passar eventos de inscrição para o aplicativo. |
EventID { | enum |
ResubscribePolicyCallback )(void *const aAppState, ResubscribeParam &aInParam, uint32_t &aOutIntervalMsec) | typedefvoid(* Retorno de chamada para buscar o intervalo de tempo de espera antes da próxima nova assinatura. |
Funções estáticas públicas | |
---|---|
DefaultEventHandler ( EventID aEvent, const InEventParam & aInParam, OutEventParam & aOutParam) | void |
DefaultResubscribePolicyCallback (void *const aAppState, ResubscribeParam & aInParam, uint32_t & aOutIntervalMsec) | void A implementação da política padrão escolherá um timeslot aleatório com resolução de milissegundos em uma janela sempre crescente, seguindo uma sequência de fibonacci até WDM_RESUBSCRIBE_MAX_FIBONACCI_STEP_INDEX. |
Funções públicas | |
---|---|
AbortSubscription (void) | void Aborte a assinatura. |
ClearUpdated ( TraitUpdatableDataSink *aDataSink, PropertyPathHandle aPropertyHandle) | |
DisableResubscribe (void) | void Desative o mecanismo de nova inscrição. |
DiscardUpdates () | void Diz ao SubscriptionClient para esvaziar o conjunto de TraitPaths pendentes para ser atualizado e abortar o pedido de actualização que está em andamento, se houver. |
EnableResubscribe ( ResubscribePolicyCallback aCallback) | void Habilite resubscribes automáticos. |
EndSubscription (void) | Encerre a assinatura. |
FlushUpdate () | Sinaliza que o aplicativo concluiu a mutação de todos os TraitUpdatableDataSinks. |
FlushUpdate (bool aForce) | |
Free (void) | void Libertar este SubscriptionClient objeto. |
GetBinding (void) const | Binding * |
GetLivenessTimeoutMsec (void) const | uint32_t |
GetPeerNodeId (void) const | uint64_t |
GetSubscriptionId (uint64_t *const apSubscriptionId) | |
IndicateActivity (void) | void |
InitiateCounterSubscription (const uint32_t aLivenessTimeoutSec) | void |
InitiateSubscription (void) | void Configure o SubscriptionClient como um iniciador (em oposição a um contra-assinante) e trazer a subscrição-se se não é. |
IsCanceling () const | bool |
IsEstablished () | bool |
IsEstablishedIdle () | bool |
IsFree () | bool |
IsInProgressOrEstablished () | bool |
IsInResubscribeHoldoff () | bool |
IsRetryEnabled () | bool |
IsTerminated () | bool |
IsUpdatePendingOrInProgress () | bool |
LockUpdateMutex (void) | void |
OnCatalogChanged () | void Este método deve ser chamado quando o TraitDataSink catálogo foi modificado. |
ResetResubscribe (void) | void Expulse o mecanismo de resubscribe. |
SetLivenessTimeoutMsec (uint32_t val) | void |
SetUpdated ( TraitUpdatableDataSink *aDataSink, PropertyPathHandle aPropertyHandle, bool aIsConditional) | |
SuspendUpdateRetries () | void Diz ao SubscriptionClient para parar de repetir solicitações de atualização. |
UnlockUpdateMutex (void) | void |
Structs | |
---|---|
nl :: Weave :: Profiles :: DataManagement_Current :: SubscriptionClient :: LastObservedEvent | |
nl :: Weave :: Profiles :: DataManagement_Current :: SubscriptionClient :: ResubscribeParam |
Sindicatos | |
---|---|
nl :: Weave :: Profiles :: DataManagement_Current :: SubscriptionClient :: InEventParam | |
nl :: Weave :: Profiles :: DataManagement_Current :: SubscriptionClient :: OutEventParam |
Tipos públicos
@ 130
@130
EventCallback
void(* EventCallback)(void *const aAppState, EventID aEvent, const InEventParam &aInParam, OutEventParam &aOutParam)
Retorno de chamada para passar eventos de inscrição para o aplicativo.
Detalhes | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parâmetros |
|
EventID
EventID
Propriedades | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
kEvent_OnEventStreamReceived | Gerado quando o SubscriptionEngine encountes um fluxo de eventos dentro da mensagem NotificationRequest. O aplicativo pode chamar EndSubscription () , AbortSubscription () , ou free () neste momento. | ||||||||||||
kEvent_OnExchangeStart | Gerado após a ligação foi preparado e ExchangeContext foi criado, mas antes de qualquer mensagem a ser enviada. Esta é a última chance para uma aplicação para ajustar ExchangeContext configurações, | ||||||||||||
kEvent_OnNoMorePendingUpdates | Um evento denotando que todos os caminhos no conjunto de atualização foram processados pelo par e nenhum outro caminho precisa ser atualizado. | ||||||||||||
kEvent_OnNotificationProcessed | Gerado quando os SubscriptionEngine acabamentos proceesing uma mensagem NotificationRequest. O aplicativo pode chamar EndSubscription () , AbortSubscription () , ou free () neste momento. | ||||||||||||
kEvent_OnNotificationRequest | Gerado em um recebimento de um NotificationRequest. O aplicativo pode chamar EndSubscription () , AbortSubscription () , ou free () neste momento. | ||||||||||||
kEvent_OnSubscribeRequestPrepareNeeded | Enviado quando o mecanismo está pronto para enviar o SubscribeRequest. O aplicativo deve preencher os caminhos que deseja assinar. | ||||||||||||
kEvent_OnSubscriptionActivity | Um evento que indica a atividade de inscrição. É gerado sempre que o cliente recebe uma indicação de atividade de assinatura; isso inclui o estabelecimento de assinatura com êxito, o recebimento de um NotificationRequest ou o recebimento de um relatório de status em resposta à mensagem SubscribeConfirm. | ||||||||||||
kEvent_OnSubscriptionEstablished | Gerado após o estabelecimento bem-sucedido da assinatura. O aplicativo pode chamar EndSubscription () , AbortSubscription () , ou free () neste momento. | ||||||||||||
kEvent_OnSubscriptionTerminated | Marca o fim desta assinatura. Os parâmetros enviados para o nl :: Weave :: Profiles :: DataManagement_Current :: SubscriptionClient :: EventCallback irá indicar se um resubscribe será tentada automaticamente. Durante a chamada manipulador de eventos, o estado do cliente será O aplicativo pode chamar AbortSubscription () ou free () neste estado. Os parâmetros enviados também incluirão um código de erro indicando o motivo do encerramento da assinatura. A assinatura poderia ter sido rescindido por uma série de razões (WRM ACK desaparecidas, ExchangeContext falha de alocação, tempo limite de resposta, ...) Algumas possíveis códigos de erro gerados pelo cliente:
| ||||||||||||
kEvent_OnUpdateComplete | Um evento que denota a conclusão da atualização. Os parâmetros do evento indicarão se a atualização de um caminho de característica específico foi bem-sucedida ou falhou. |
ResubscribePolicyCallback
void(* ResubscribePolicyCallback)(void *const aAppState, ResubscribeParam &aInParam, uint32_t &aOutIntervalMsec)
Retorno de chamada para buscar o intervalo de tempo de espera antes da próxima nova assinatura.
Os aplicativos podem ser cancelados / liberados nesta função se tiverem decidido desistir de se inscrever novamente.
Detalhes | |||||||
---|---|---|---|---|---|---|---|
Parâmetros |
|
Funções estáticas públicas
DefaultEventHandler
void DefaultEventHandler( EventID aEvent, const InEventParam & aInParam, OutEventParam & aOutParam )
DefaultResubscribePolicyCallback
void DefaultResubscribePolicyCallback( void *const aAppState, ResubscribeParam & aInParam, uint32_t & aOutIntervalMsec )
A implementação da política padrão escolherá um timeslot aleatório com resolução de milissegundos em uma janela sempre crescente, seguindo uma sequência de fibonacci até WDM_RESUBSCRIBE_MAX_FIBONACCI_STEP_INDEX.
A média do tempo de espera aleatório após WDM_RESUBSCRIBE_MAX_FIBONACCI_STEP_INDEX será de cerca de uma hora. Quando a contagem de novas tentativas é redefinida para 0, a sequência começa do início novamente.
Funções públicas
AbortSubscription
void AbortSubscription( void )
Aborte a assinatura.
Abortar uma assinatura do cliente.
Pare imediatamente de aceitar todo o tráfego associado à assinatura e libere todos os recursos de comunicação subjacentes. O SubscriptionClient próprio objeto permanece válida e pode ser usado novamente.
Termina o cliente final de uma assinatura, sem notificar o editor subscrição e sem entregar um OnSubscriptionTerminated
evento para manipulador de eventos do aplicativo. Se houver uma assinatura mútua, a assinatura contrária também será encerrada.
No ligando AbortSubscription () , o SubscriptionClient
objecto entra no Terminated
estado. Depois da conclusão do processo de encerramento, o objecto entra no Initialized
estado. Ambas as transições acontecem de forma síncrona dentro da chamada para AbortSubscription () .
Depois AbortSubscription () retorna, o SubscriptionClient
objeto pode ser usado para iniciar outra assinatura, ou pode ser liberado chamando o free () método.
ClearUpdated
WEAVE_ERROR ClearUpdated( TraitUpdatableDataSink *aDataSink, PropertyPathHandle aPropertyHandle )
DisableResubscribe
void DisableResubscribe( void )
Desative o mecanismo de nova inscrição.
Isso será cancelado se uma nova inscrição estiver pendente.
DiscardUpdates
void DiscardUpdates()
Diz ao SubscriptionClient para esvaziar o conjunto de TraitPaths pendentes para ser atualizado e abortar o pedido de actualização que está em andamento, se houver.
Este método pode ser invocado a partir de qualquer retorno de chamada.
EnableResubscribe
void EnableResubscribe( ResubscribePolicyCallback aCallback )
Habilite resubscribes automáticos.
Anexe um retorno de chamada para especificar o próximo tempo de repetição em caso de falha.
Detalhes | |||
---|---|---|---|
Parâmetros |
|
EndSubscription
WEAVE_ERROR EndSubscription( void )
Encerre a assinatura.
Encerrar uma assinatura de cliente de maneira elegante
Quando WDM_ENABLE_SUBSCRIPTION_CANCEL opção de compilação está habilitado, graciosamente terminar a subscrição enviando uma CancelRequest para o peer. Os recursos associados à assinatura são liberados na resposta do par ou no tempo limite. Quando esta opção está desactivada, a chamada é equivalente a AbortSubscription () .
Encerra normalmente o final do cliente de uma assinatura. Se o suporte para cancelamento de assinatura estiver habilitado, uma mensagem SubscribeCancelRequest será enviada ao editor da assinatura e o sistema aguardará uma resposta antes de encerrar a assinatura; caso contrário, a assinatura é imediatamente levantada de um modo semelhante ao AbortSubscription () . Se houver uma assinatura mútua, a assinatura contrária também será encerrada.
Enquanto se aguarda uma resposta a um SubscribeCancelRequest, o SubscriptionClient
entra no Canceling
estado.
Uma vez que o processo de encerramento começa, o SubscriptionClient
objeto entra na Terminated
estado e um OnSubscriptionTerminated
evento é entregue ao manipulador de eventos do aplicativo. Note-se que, se cancelar o apoio não está habilitado, o manipulador de eventos pode ser chamado de forma síncrona dentro da chamada para EndSubscription () .
Depois de manipulador de eventos retornos do aplicativo, o SubscriptionClient
objeto entra no Initialized
estado. Neste ponto, o SubscriptionClient
objeto pode ser usado para iniciar outra assinatura, ou pode ser liberado chamando o free () método.
FlushUpdate
WEAVE_ERROR FlushUpdate()
Sinaliza que o aplicativo concluiu a mutação de todos os TraitUpdatableDataSinks.
A menos que uma troca de atualização anterior esteja em andamento, o cliente pegará todos os dados marcados como atualizados e os enviará ao respondente em uma solicitação de atualização. Este método pode ser chamado de qualquer thread.
Detalhes | |||
---|---|---|---|
Parâmetros |
| ||
Devoluções | WEAVE_NO_ERROR em caso de sucesso; outros códigos WEAVE_ERROR em caso de falha. |
FlushUpdate
WEAVE_ERROR FlushUpdate( bool aForce )
Livre
void Free( void )
Libertar este SubscriptionClient objeto.
Libertar um SubscriptionClient
objeto.
Chama AbortSubscription () se necessário e libera o refcount neste SubscriptionClient objeto. Sob o uso correto, isso deve permitir que o objeto seja retornado ao pool de objetos
Libera o SubscriptionClient
objeto. Se uma assinatura está ativa ou em andamento, a assinatura será encerrada imediatamente de uma maneira semelhante ao chamar AbortSubscription () . Se alguma solicitação de atualização estiver em andamento, ela será abortada da mesma forma.
O aplicativo é responsável por chamar free () apenas uma vez durante a vida de um SubscriptionClient
objeto. Depois Grátis () é chamado, há outras referências devem ser feitas para o objeto.
GetBinding
Binding * GetBinding( void ) const
GetLivenessTimeoutMsec
uint32_t GetLivenessTimeoutMsec( void ) const
GetPeerNodeId
uint64_t GetPeerNodeId( void ) const
GetSubscriptionId
WEAVE_ERROR GetSubscriptionId( uint64_t *const apSubscriptionId )
IndicateActivity
void IndicateActivity( void )
InitiateCounterSubscription
void InitiateCounterSubscription( const uint32_t aLivenessTimeoutSec )
InitiateSubscription
void InitiateSubscription( void )
Configure o SubscriptionClient como um iniciador (em oposição a um contra-assinante) e trazer a subscrição-se se não é.
IsCanceling
bool IsCanceling() const
IsEstablished
bool IsEstablished()
IsEstablishedIdle
bool IsEstablishedIdle()
É grátis
bool IsFree()
IsInProgressOrEstablished
bool IsInProgressOrEstablished()
IsInResubscribeHoldoff
bool IsInResubscribeHoldoff()
IsRetryEnabled
bool IsRetryEnabled()
Está terminado
bool IsTerminated()
IsUpdatePendingOrInProgress
bool IsUpdatePendingOrInProgress()
LockUpdateMutex
void LockUpdateMutex( void )
OnCatalogChanged
void OnCatalogChanged()
Este método deve ser chamado quando o TraitDataSink catálogo foi modificado.
ResetResubscribe
void ResetResubscribe( void )
Expulse o mecanismo de resubscribe.
Isso iniciará uma nova tentativa imediata
SetLivenessTimeoutMsec
void SetLivenessTimeoutMsec( uint32_t val )
SetUpdated
WEAVE_ERROR SetUpdated( TraitUpdatableDataSink *aDataSink, PropertyPathHandle aPropertyHandle, bool aIsConditional )
SuspendUpdateRetries
void SuspendUpdateRetries()
Diz ao SubscriptionClient para parar de repetir solicitações de atualização.
Permite que o aplicativo suspenda as atualizações por um período de tempo sem descartar todos os metadados. As atualizações e novas tentativas serão retomadas quando FlushUpdate for chamado. Quando chamado para suspender atualizações enquanto uma atualização está em andamento, a atualização não é cancelada, mas caso falhe, não será tentada novamente até que FlushUpdate seja chamado novamente.
UnlockUpdateMutex
void UnlockUpdateMutex( void )