O Google tem o compromisso de promover a igualdade racial para as comunidades negras. Saiba como.

nl :: Tecer:: Perfis :: DataManagement_Current :: SubscriptionClient

Resumo

Tipos públicos

@130 enum
EventCallback )(void *const aAppState, EventID aEvent, const InEventParam &aInParam, OutEventParam &aOutParam) typedef
void(*
Retorno de chamada para passar eventos de inscrição para o aplicativo.
EventID {
kEvent_OnSubscriptionTerminated = 1,
kEvent_OnExchangeStart = 2,
kEvent_OnSubscribeRequestPrepareNeeded = 3,
kEvent_OnSubscriptionEstablished = 4,
kEvent_OnNotificationRequest = 5,
kEvent_OnNotificationProcessed = 6,
kEvent_OnEventStreamReceived = 7,
kEvent_OnSubscriptionActivity = 8,
kEvent_OnUpdateComplete = 9,
kEvent_OnNoMorePendingUpdates = 10
}
enum
ResubscribePolicyCallback )(void *const aAppState, ResubscribeParam &aInParam, uint32_t &aOutIntervalMsec) typedef
void(*
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
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
[in] aAppState
Ponteiro estado app definido durante a inicialização do SubscriptionClient .
[in] aEvent
Indica qual evento está acontecendo
[in] aInParam
Struct com detalhes adicionais sobre o evento
[out] aOutParam
Informações repassadas pelo aplicativo

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, mEC é válido e pode ser ajustado para configurações de tempo limite. A aplicação não deve tocar outros campos no cliente e não deve fechar o ExchangeContext .

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á Terminated . Se nenhuma nova tentativa será tentada, o estado do cliente fará a transição para Initialized quando o manipulador de evento retorna. Caso contrário, o Estado fará a transição para ResubscribeHoldoff e uma tentativa será feita para restabelecer a assinatura após o tempo de espera-off.

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:

Erro de código Significado
WEAVE_ERROR_INVALID_MESSAGE_TYPE Uma mensagem não reconhecida é recebida.
WEAVE_ERROR_TIMEOUT Uma confirmação não é recebida ou uma verificação de atividade falha.
WEAVE_ERROR_INCORRECT_STATE As mensagens são recebidas em um estado inesperado.
WEAVE_ERROR_STATUS_REPORT_RECEIVED Um relatório de status é recebido.
WEAVE_ERROR_INVALID_ARGUMENT Os campos de solicitação de inscrição são inválidos.

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
[in] aAppState
Ponteiro estado app definido durante a inicialização do SubscriptionClient .
[in] aInParam
Struct com detalhes adicionais sobre a nova tentativa
[out] aOutIntervalMsec
Tempo em milissegundos de espera antes da próxima tentativa

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
[in] aCallback
Retorno de chamada opcional para buscar a quantidade de tempo de espera antes de tentar novamente após uma falha. Se for NULL, use uma política padrão.

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
[in] aForce
Se verdadeiro, faz com que a atualização seja enviada imediatamente, mesmo que uma nova tentativa tenha sido agendada no futuro. Este parâmetro é considerado falso por padrão.
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
)