En Google, luchamos por la equidad racial de la comunidad negra. Más información

nl :: Tejido:: Perfiles: DataManagement_Current :: SuscripciónCliente

Resumen

Tipos públicos

@130 enumeración
EventCallback )(void *const aAppState, EventID aEvent, const InEventParam &aInParam, OutEventParam &aOutParam) typedef
void(*
Devolución de llamada para pasar eventos de suscripción a la aplicación.
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
}
enumeración
ResubscribePolicyCallback )(void *const aAppState, ResubscribeParam &aInParam, uint32_t &aOutIntervalMsec) typedef
void(*
Devolución de llamada para obtener el intervalo de tiempo de espera antes de la próxima nueva suscripción.

Funciones estáticas públicas

DefaultEventHandler ( EventID aEvent, const InEventParam & aInParam, OutEventParam & aOutParam)
void
DefaultResubscribePolicyCallback (void *const aAppState, ResubscribeParam & aInParam, uint32_t & aOutIntervalMsec)
void
La implementación de la política predeterminada elegirá un intervalo de tiempo aleatorio con resolución de milisegundos en una ventana cada vez mayor, siguiendo una secuencia de fibonacci hasta WDM_RESUBSCRIBE_MAX_FIBONACCI_STEP_INDEX.

Funciones publicas

AbortSubscription (void)
void
Cancelar la suscripción.
ClearUpdated ( TraitUpdatableDataSink *aDataSink, PropertyPathHandle aPropertyHandle)
DisableResubscribe (void)
void
Desactive el mecanismo de resuscripción.
DiscardUpdates ()
void
Narra la SubscriptionClient para vaciar el conjunto de TraitPaths pendientes de ser actualizada y abortar la solicitud de actualización que está en curso, en su caso.
EnableResubscribe ( ResubscribePolicyCallback aCallback)
void
Habilite las resuscripciones automáticas.
EndSubscription (void)
Finalice la suscripción.
FlushUpdate ()
Señala que la aplicación ha terminado de mutar todos los TraitUpdatableDataSinks.
FlushUpdate (bool aForce)
Free (void)
void
Liberar 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
Configurar el SubscriptionClient como un iniciador (a diferencia de un contador de abonado) y llevar la suscripción arriba si no lo es.
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 debe ser llamado cuando el TraitDataSink catálogo ha sido modificado.
ResetResubscribe (void)
void
Desactiva el mecanismo de resuscripción.
SetLivenessTimeoutMsec (uint32_t val)
void
SetUpdated ( TraitUpdatableDataSink *aDataSink, PropertyPathHandle aPropertyHandle, bool aIsConditional)
SuspendUpdateRetries ()
void
Narra la SubscriptionClient para detener las solicitudes de actualización de volver a intentar.
UnlockUpdateMutex (void)
void

Estructuras

nl :: Armadura :: Perfiles :: DataManagement_Current :: :: SubscriptionClient LastObservedEvent
nl :: Armadura :: Perfiles :: DataManagement_Current :: :: SubscriptionClient ResubscribeParam

Sindicatos

nl :: Armadura :: Perfiles :: DataManagement_Current :: :: SubscriptionClient InEventParam
nl :: Armadura :: Perfiles :: DataManagement_Current :: :: SubscriptionClient OutEventParam

Tipos públicos

@ 130

 @130

EventCallback

void(* EventCallback)(void *const aAppState, EventID aEvent, const InEventParam &aInParam, OutEventParam &aOutParam)

Devolución de llamada para pasar eventos de suscripción a la aplicación.

Detalles
Parámetros
[in] aAppState
Puntero del estado de la aplicación establece durante la inicialización del SubscriptionClient .
[in] aEvent
Indica qué evento está sucediendo
[in] aInParam
Estructura con detalles adicionales sobre el evento
[out] aOutParam
Información transmitida por la aplicación

EventID

 EventID
Propiedades
kEvent_OnEventStreamReceived

Se genera cuando el SubscriptionEngine encountes un flujo de eventos dentro del mensaje NotificationRequest.

La aplicación puede llamar EndSubscription () , AbortSubscription () , o libre () en este punto.

kEvent_OnExchangeStart

Genera después de la unión ha sido preparado y ExchangeContext se ha establecido, pero antes de los mensajes que se envían.

Esta es la última oportunidad para una aplicación para ajustar ExchangeContext configuración, mEC es válida y puede ser sintonizado para los ajustes de tiempo de espera. La aplicación no debe tocar otros campos en el cliente y no debe cerrar la ExchangeContext .

kEvent_OnNoMorePendingUpdates

Un evento que indica que todas las rutas en el conjunto de actualización han sido procesadas por el par y no es necesario actualizar más rutas.

kEvent_OnNotificationProcessed

Se genera cuando los SubscriptionEngine acabados proceesing un mensaje NotificationRequest.

La aplicación puede llamar EndSubscription () , AbortSubscription () , o libre () en este punto.

kEvent_OnNotificationRequest

Generado al recibir una NotificationRequest.

La aplicación puede llamar EndSubscription () , AbortSubscription () , o libre () en este punto.

kEvent_OnSubscribeRequestPrepareNeeded

Se envía cuando el motor está listo para enviar SubscribeRequest.

Se espera que la aplicación complete las rutas a las que desea suscribirse.

kEvent_OnSubscriptionActivity

Un evento que indica actividad de suscripción.

Se genera siempre que el cliente recibe una indicación sobre la actividad de suscripción; esto incluye el establecimiento satisfactorio de la suscripción, la recepción de una NotificationRequest o la recepción de un informe de estado en respuesta al mensaje SubscribeConfirm.

kEvent_OnSubscriptionEstablished

Generado tras el establecimiento exitoso de la suscripción.

La aplicación puede llamar EndSubscription () , AbortSubscription () , o libre () en este punto.

kEvent_OnSubscriptionTerminated

Marca el final de esta suscripción.

Los parámetros enviados a la nl :: Armadura :: Perfiles :: :: DataManagement_Current SubscriptionClient :: EventCallback indicará si un resubscribir se intentará automáticamente.

Durante la llamada controlador de eventos, será el estado del cliente Terminated . Si se intentará sin reintento, el estado del cliente pasará a Initialized cuando regrese el controlador de eventos. De lo contrario, el estado pasará a ResubscribeHoldoff y se hará para restablecer la suscripción después de que el tiempo de permanencia fuera un intento.

La aplicación puede llamar AbortSubscription () o libre () en este estado.

Los parámetros enviados también incluirán un código de error que indicará el motivo de la finalización de la suscripción.

La suscripción podría haber sido terminado por una serie de razones (WRM ACK que faltan, ExchangeContext error de asignación de tiempo de espera, la respuesta, ...) Algunos de los posibles códigos de error generados por el cliente:

Código de error Significado
WEAVE_ERROR_INVALID_MESSAGE_TYPE Se recibe un mensaje no reconocido.
WEAVE_ERROR_TIMEOUT No se recibe un acuse de recibo o falla una verificación de actividad.
WEAVE_ERROR_INCORRECT_STATE Los mensajes se reciben en un estado inesperado.
WEAVE_ERROR_STATUS_REPORT_RECEIVED Se recibe un informe de estado.
WEAVE_ERROR_INVALID_ARGUMENT Los campos de solicitud de suscripción no son válidos.

kEvent_OnUpdateComplete

Un evento que denota la finalización de la actualización.

Los parámetros del evento indicarán si la actualización de la ruta de un rasgo específico se ha realizado correctamente o no.

Volver a suscribirse Política de devolución de llamada

void(* ResubscribePolicyCallback)(void *const aAppState, ResubscribeParam &aInParam, uint32_t &aOutIntervalMsec)

Devolución de llamada para obtener el intervalo de tiempo de espera antes de la próxima nueva suscripción.

Las aplicaciones pueden abortar / liberarse en esta función si han decidido renunciar a volver a suscribirse.

Detalles
Parámetros
[in] aAppState
Puntero del estado de la aplicación establece durante la inicialización del SubscriptionClient .
[in] aInParam
Estructura con detalles adicionales sobre el reintento
[out] aOutIntervalMsec
Tiempo en milisegundos para esperar antes del próximo reintento

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

La implementación de la política predeterminada elegirá un intervalo de tiempo aleatorio con resolución de milisegundos en una ventana cada vez mayor, siguiendo una secuencia de fibonacci hasta WDM_RESUBSCRIBE_MAX_FIBONACCI_STEP_INDEX.

El promedio del tiempo de espera aleatorio después de WDM_RESUBSCRIBE_MAX_FIBONACCI_STEP_INDEX será de alrededor de una hora. Cuando el recuento de reintentos se restablece a 0, la secuencia comienza de nuevo desde el principio.

Funciones publicas

AbortSubscription

void AbortSubscription(
  void
)

Cancelar la suscripción.

Cancelar una suscripción de cliente.

Deje de aceptar inmediatamente todo el tráfico asociado con la suscripción y libere todos los recursos de comunicación subyacentes. El SubscriptionClient propio objeto sigue siendo válida y puede ser utilizado de nuevo.

Termina el cliente final de una suscripción, sin notificar al editor suscripción y sin la entrega de un OnSubscriptionTerminated caso de controlador de eventos de la aplicación. Si existe una suscripción mutua, la suscripción de contador también se cancela.

Al llamar AbortSubscription () , el SubscriptionClient objeto entra en el Terminated estado. Una vez que se complete el proceso de terminación, el objeto entra en la Initialized estado. Ambas transiciones ocurren de forma sincrónica dentro de la llamada a AbortSubscription () .

Después AbortSubscription () retorna, el SubscriptionClient objeto puede ser usado para iniciar otra suscripción, o puede ser liberado mediante una llamada al libre () método.

ClearUpdated

WEAVE_ERROR ClearUpdated(
  TraitUpdatableDataSink *aDataSink,
  PropertyPathHandle aPropertyHandle
)

DisableResubscribe

void DisableResubscribe(
  void
)

Desactive el mecanismo de resuscripción.

Esto se cancelará si hay una nueva suscripción pendiente.

DescartarActualizaciones

void DiscardUpdates()

Narra la SubscriptionClient para vaciar el conjunto de TraitPaths pendientes de ser actualizada y abortar la solicitud de actualización que está en curso, en su caso.

Este método se puede invocar desde cualquier devolución de llamada.

EnableResubscribe

void EnableResubscribe(
  ResubscribePolicyCallback aCallback
)

Habilite las resuscripciones automáticas.

Adjunte una devolución de llamada para especificar la próxima hora de reintento en caso de error.

Detalles
Parámetros
[in] aCallback
Devolución de llamada opcional para obtener la cantidad de tiempo de espera antes de volver a intentarlo después de una falla. Si es NULL, use una política predeterminada.

FinSubscription

WEAVE_ERROR EndSubscription(
  void
)

Finalice la suscripción.

Finalice correctamente una suscripción de cliente.

Cuando WDM_ENABLE_SUBSCRIPTION_CANCEL opción de tiempo de compilación está habilitada, con gracia terminar la suscripción enviando un CancelRequest a los pares. Los recursos asociados con la suscripción se liberan con la respuesta del par o en el tiempo de espera. Cuando la opción está desactivada, la llamada es equivalente a AbortSubscription () .

Termina de forma ordenada la finalización del cliente de una suscripción. Si el soporte para cancelar la suscripción está habilitado, se envía un mensaje SubscribeCancelRequest al editor de la suscripción y el sistema espera una respuesta antes de finalizar la suscripción; de lo contrario la suscripción se termina inmediatamente en una manera similar a AbortSubscription () . Si existe una suscripción mutua, la suscripción de contador también se cancela.

A la espera de una respuesta a una SubscribeCancelRequest, la SubscriptionClient entra en la Canceling estado.

Una vez que comienza el proceso de terminación, el SubscriptionClient objeto entra en el Terminated estado y un OnSubscriptionTerminated evento se entrega al gestor de eventos de la aplicación. Tenga en cuenta que, si cancelar el apoyo no está habilitado, el controlador de eventos se puede llamar de forma sincrónica dentro de la llamada a EndSubscription () .

Después de retornos de control de eventos de la aplicación, el SubscriptionClient objeto entra en el Initialized estado. En este punto el SubscriptionClient objeto puede ser usado para iniciar otra suscripción, o puede ser liberado mediante una llamada al libre () método.

FlushUpdate

WEAVE_ERROR FlushUpdate()

Señala que la aplicación ha terminado de mutar todos los TraitUpdatableDataSinks.

A menos que haya un intercambio de actualización anterior en curso, el cliente tomará todos los datos marcados como actualizados y los enviará al respondedor en una solicitud de actualización. Este método se puede llamar desde cualquier hilo.

Detalles
Parámetros
[in] aForce
Si es verdadero, hace que la actualización se envíe inmediatamente incluso si se ha programado un reintento en el futuro. Este parámetro se considera falso de forma predeterminada.
Devoluciones
WEAVE_NO_ERROR en caso de éxito; otros códigos WEAVE_ERROR en caso de falla.

FlushUpdate

WEAVE_ERROR FlushUpdate(
  bool aForce
)

Libre

void Free(
  void
)

Liberar este SubscriptionClient objeto.

Liberar a un SubscriptionClient objeto.

Las llamadas AbortSubscription () si es necesario y libera la refcount en este SubscriptionClient objeto. Con un uso correcto, esto debería permitir que el objeto se devuelva al grupo de objetos

Libera la SubscriptionClient objeto. Si una suscripción está activa o en progreso, la suscripción se termina inmediatamente de una manera similar a llamar AbortSubscription () . Si hay solicitudes de actualización en curso, se anulan de forma similar.

La aplicación es responsable de llamar gratis () exactamente una vez durante la vida de un SubscriptionClient objeto. Después gratuito () se llama, no hay más referencias deben hacerse al 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
)

Indicar Actividad

void IndicateActivity(
  void
)

InitiateCounterSubscription

void InitiateCounterSubscription(
  const uint32_t aLivenessTimeoutSec
)

Iniciar suscripción

void InitiateSubscription(
  void
)

Configurar el SubscriptionClient como un iniciador (a diferencia de un contador de abonado) y llevar la suscripción arriba si no lo es.

Está cancelando

bool IsCanceling() const 

Está establecido

bool IsEstablished()

Está Establecido Inactivo

bool IsEstablishedIdle()

Está libre

bool IsFree()

IsInProgressOrEstablished

bool IsInProgressOrEstablished()

IsInResubscribeHoldoff

bool IsInResubscribeHoldoff()

IsRetryEnabled

bool IsRetryEnabled()

Esta terminado

bool IsTerminated()

IsUpdatePendingOrInProgress

bool IsUpdatePendingOrInProgress()

LockUpdateMutex

void LockUpdateMutex(
  void
)

OnCatalogChanged

void OnCatalogChanged()

Este método debe ser llamado cuando el TraitDataSink catálogo ha sido modificado.

Restablecer

void ResetResubscribe(
  void
)

Activa el mecanismo de resuscripción.

Esto iniciará un reintento inmediato.

SetLivenessTimeoutMsec

void SetLivenessTimeoutMsec(
  uint32_t val
)

SetUpdated

WEAVE_ERROR SetUpdated(
  TraitUpdatableDataSink *aDataSink,
  PropertyPathHandle aPropertyHandle,
  bool aIsConditional
)

SuspendUpdateRetries

void SuspendUpdateRetries()

Narra la SubscriptionClient para detener las solicitudes de actualización de volver a intentar.

Permite que la aplicación suspenda las actualizaciones durante un período de tiempo sin descartar todos los metadatos. Las actualizaciones y reintentos se reanudarán cuando se llame a FlushUpdate. Cuando se llama para suspender actualizaciones mientras hay una actualización en curso, la actualización no se cancela, pero en caso de que falle, no se volverá a intentar hasta que se vuelva a llamar FlushUpdate.

DesbloquearUpdateMutex

void UnlockUpdateMutex(
  void
)