nl:: Weave:: Profiles:: DataManagement_Current:: SubscriptionClient
Resumen
Tipos públicos |
|
---|---|
@130
|
enum |
EventCallback)(void *const aAppState, EventID aEvent, const InEventParam &aInParam, OutEventParam &aOutParam)
|
typedefvoid(*
Devolución de llamada para pasar eventos de suscripción a la aplicación. |
EventID{
|
enum |
ResubscribePolicyCallback)(void *const aAppState, ResubscribeParam &aInParam, uint32_t &aOutIntervalMsec)
|
typedefvoid(*
Es la devolución de llamada para recuperar el intervalo de tiempo de espera antes de volver a suscribirse. |
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 en milisegundos durante un período cada vez mayor, según una secuencia de Fibonacci de hasta WDM_REsubscribe_MAX_FIBONACCI_STEP_INDEX.
|
Funciones públicas |
|
---|---|
AbortSubscription(void)
|
void
Anula la suscripción.
|
ClearUpdated(TraitUpdatableDataSink *aDataSink, PropertyPathHandle aPropertyHandle)
|
|
DisableResubscribe(void)
|
void
Inhabilita el mecanismo para volver a suscribirse.
|
DiscardUpdates()
|
void
Le indica al SubscriptionClient que vacíe el conjunto de TraitPaths pendientes de actualización y que anule la solicitud de actualización en curso, si la hay.
|
EnableResubscribe(ResubscribePolicyCallback aCallback)
|
void
Habilita la opción para volver a suscribirse automáticamente.
|
EndSubscription(void)
|
Finaliza la suscripción.
|
FlushUpdate()
|
Indica que la aplicación terminó de mutar todos los TraitUpdatableDataSinks.
|
FlushUpdate(bool aForce)
|
|
Free(void)
|
void
Libera este objeto SubscriptionClient.
|
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
Configura el SubscriptionClient como iniciador (en lugar de un contador de suscriptores) y activa la suscripción si no es así.
|
IsCanceling() const
|
bool
|
IsEstablished()
|
bool
|
IsEstablishedIdle()
|
bool
|
IsFree()
|
bool
|
IsInProgressOrEstablished()
|
bool
|
IsInResubscribeHoldoff()
|
bool
|
IsRetryEnabled()
|
bool
|
IsTerminated()
|
bool
|
IsUpdatePendingOrInProgress()
|
bool
|
LockUpdateMutex(void)
|
void
|
OnCatalogChanged()
|
void
Se debe llamar a este método cuando se modifica el catálogo de TraitDataSink.
|
ResetResubscribe(void)
|
void
Expulsa el mecanismo para volver a suscribirse.
|
SetLivenessTimeoutMsec(uint32_t val)
|
void
|
SetUpdated(TraitUpdatableDataSink *aDataSink, PropertyPathHandle aPropertyHandle, bool aIsConditional)
|
|
SuspendUpdateRetries()
|
void
Indica al SubscriptionClient que deje de reintentar las solicitudes de actualización.
|
UnlockUpdateMutex(void)
|
void
|
Structs |
|
---|---|
nl:: |
|
nl:: |
Uniones |
|
---|---|
nl:: |
|
nl:: |
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 |
|
EventID
EventID
Propiedades | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
kEvent_OnEventStreamReceived
|
Se genera cuando SubscriptionEngine registra una transmisión de eventos en el mensaje NotificationRequest. En este momento, la aplicación puede llamar a EndSubscription(), AbortSubscription() o Free(). |
||||||||||||
kEvent_OnExchangeStart
|
Se genera después de que se prepara la vinculación y se configura ExchangeContext, pero antes de que se envíen mensajes. Esta es la última oportunidad para que una aplicación ajuste la configuración de ExchangeContext, |
||||||||||||
kEvent_OnNoMorePendingUpdates
|
Un evento que indica que la app similar procesó todas las rutas de acceso del conjunto de actualizaciones y que no es necesario actualizar más |
||||||||||||
kEvent_OnNotificationProcessed
|
Se genera cuando SubscriptionEngine termina de procesar un mensaje de NotificationRequest. En este momento, la aplicación puede llamar a EndSubscription(), AbortSubscription() o Free(). |
||||||||||||
kEvent_OnNotificationRequest
|
Se genera a partir de un recibo de una NotificationRequest. En este momento, la aplicación puede llamar a EndSubscription(), AbortSubscription() o Free(). |
||||||||||||
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 la actividad de suscripción. Se genera cada vez que el cliente recibe una indicación sobre la actividad de suscripción. esto incluye el establecimiento de una suscripción exitosa, la recepción de una NotificationRequest o la recepción de un informe de estado en respuesta al mensaje SubscribeConfirm. |
||||||||||||
kEvent_OnSubscriptionEstablished
|
Se genera cuando se establece correctamente la suscripción. En este momento, la aplicación puede llamar a EndSubscription(), AbortSubscription() o Free(). |
||||||||||||
kEvent_OnSubscriptionTerminated
|
Marca el final de esta suscripción. Los parámetros enviados a nl::Weave::Profiles::DataManagement_Current::SubscriptionClient::EventCallback indicarán si se intentará volver a suscribirse. Durante la llamada del controlador de eventos, el estado del cliente será La aplicación puede llamar a AbortSubscription() o Free() en este estado. Los parámetros enviados también incluirán un código de error que indicará el motivo por el que finalizó la suscripción. Es posible que la suscripción se haya cancelado por varios motivos (falta de ACK de WRM, error de asignación de ExchangeContext, tiempo de espera de respuesta, etcétera). Estos son algunos posibles códigos de error generados por el cliente:
|
||||||||||||
kEvent_OnUpdateComplete
|
Un evento que indica la finalización de la actualización. Los parámetros de eventos indicarán si la actualización de una ruta de acceso de trait específica se completó correctamente o si falló. |
ResubscribePolicyCallback
void(* ResubscribePolicyCallback)(void *const aAppState, ResubscribeParam &aInParam, uint32_t &aOutIntervalMsec)
Es la devolución de llamada para recuperar el intervalo de tiempo de espera antes de volver a suscribirse.
En esta función, se permite a las aplicaciones anular o liberar espacio si deciden renunciar a la opción de volver a suscribirse.
Detalles | |||||||
---|---|---|---|---|---|---|---|
Parámetros |
|
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 en milisegundos durante un período cada vez mayor, según una secuencia de Fibonacci de hasta WDM_REsubscribe_MAX_FIBONACCI_STEP_INDEX.
El promedio del tiempo de espera aleatorizado después del WDM_REsubscribe_MAX_FIBONACCI_STEP_INDEX es de aproximadamente una hora. Cuando se restablece el recuento de reintentos a 0, la secuencia vuelve a comenzar desde el principio.
Funciones públicas
AbortSubscription
void AbortSubscription( void )
Anula la suscripción.
Anular una suscripción de cliente
Deja de aceptar de inmediato todo el tráfico asociado con la suscripción y libera todos los recursos de comunicación subyacentes. El objeto SubscriptionClient seguirá siendo válido y se podrá volver a usar.
Finaliza el final del cliente de una suscripción, sin notificar al publicador de la suscripción y sin entregar un evento OnSubscriptionTerminated
al controlador de eventos de la aplicación. Si existe una suscripción mutua, la suscripción al contador también se cancela.
Cuando se llama a AbortSubscription(), el objeto SubscriptionClient
entra en el estado Terminated
. Una vez que se completa el proceso de finalización, el objeto entra al estado Initialized
. Ambas transiciones ocurren de forma síncrona en la llamada a AbortSubscription().
Después de que se muestre AbortSubscription(), se podrá usar el objeto SubscriptionClient
para iniciar otra suscripción o se podrá liberar llamando al método Free().
ClearUpdated
WEAVE_ERROR ClearUpdated( TraitUpdatableDataSink *aDataSink, PropertyPathHandle aPropertyHandle )
DisableResubscribe
void DisableResubscribe( void )
Inhabilita el mecanismo para volver a suscribirse.
Esta opción se anulará si había una solicitud pendiente para volver a suscribirse.
DiscardUpdates
void DiscardUpdates()
Le indica al SubscriptionClient que vacíe el conjunto de TraitPaths pendientes de actualización y que anule la solicitud de actualización en curso, si la hay.
Este método se puede invocar desde cualquier devolución de llamada.
EnableResubscribe
void EnableResubscribe( ResubscribePolicyCallback aCallback )
Habilita la opción para volver a suscribirse automáticamente.
Adjunta una devolución de llamada para especificar el próximo intento en caso de error.
Detalles | |||
---|---|---|---|
Parámetros |
|
EndSubscription
WEAVE_ERROR EndSubscription( void )
Finaliza la suscripción.
Finaliza correctamente una suscripción de cliente.
Cuando la opción de tiempo de compilación de WDM_ENABLE_SUBSCRIPTION_CANCEL esté habilitada, finaliza la suscripción correctamente enviando una CancelRequest a la app similar. Los recursos asociados con la suscripción se liberan en caso de respuesta del par o cuando se agota el tiempo de espera. Si la opción está inhabilitada, la llamada equivaldrá a AbortSubscription().
Finaliza de manera correcta el final de la suscripción del cliente. Si está habilitada la compatibilidad con la cancelación de la suscripción, se envía un mensaje de 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 cancela inmediatamente de manera similar a AbortSubscription(). Si existe una suscripción mutua, la suscripción al contador también se cancela.
Mientras esperas una respuesta a SubscribeCancelRequest, SubscriptionClient
pasa al estado Canceling
.
Una vez que comienza el proceso de finalización, el objeto SubscriptionClient
entra al estado Terminated
y se entrega un evento OnSubscriptionTerminated
al controlador de eventos de la aplicación. Ten en cuenta que, si la compatibilidad con la cancelación no está habilitada, el controlador de eventos se puede llamar de forma síncrona dentro de la llamada a EndSubscription().
Cuando se muestra el controlador de eventos de la aplicación, el objeto SubscriptionClient
entra en el estado Initialized
. En este punto, se puede usar el objeto SubscriptionClient
para iniciar otra suscripción o se puede liberar llamando al método Free().
FlushUpdate
WEAVE_ERROR FlushUpdate()
Indica que la aplicación terminó 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á a la persona que responde en una solicitud de actualización. Se puede llamar a este método desde cualquier subproceso.
Detalles | |||
---|---|---|---|
Parámetros |
|
||
Resultado que se muestra |
WEAVE_NO_ERROR en caso de éxito; otros códigos WEAVE_ERROR en caso de falla.
|
FlushUpdate
WEAVE_ERROR FlushUpdate( bool aForce )
Gratis
void Free( void )
Libera este objeto SubscriptionClient.
Libera un objeto SubscriptionClient
.
Llama a AbortSubscription() si es necesario y libera la referencia en este objeto SubscriptionClient. Si se usa correctamente, el objeto debería devolverse al grupo de objetos.
Libera el objeto SubscriptionClient
. Si una suscripción está activa o en curso, se cancelará inmediatamente, de manera similar a cuando se llama a AbortSubscription(). Si hay solicitudes de actualización en curso, se anulan de forma similar.
La aplicación es responsable de llamar a Free() exactamente una vez durante la vida útil de un objeto SubscriptionClient
. Una vez que se llama a Free(), no se deben realizar más referencias 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 )
IndicateActivity
void IndicateActivity( void )
InitiateCounterSubscription
void InitiateCounterSubscription( const uint32_t aLivenessTimeoutSec )
InitiateSubscription
void InitiateSubscription( void )
Configura el SubscriptionClient como iniciador (en lugar de un contador de suscriptores) y activa la suscripción si no es así.
IsCanceling
bool IsCanceling() const
IsEstablished
bool IsEstablished()
IsEstablishedIdle
bool IsEstablishedIdle()
IsFree
bool IsFree()
IsInProgressOrEstablished
bool IsInProgressOrEstablished()
IsInResubscribeHoldoff
bool IsInResubscribeHoldoff()
IsRetryEnabled
bool IsRetryEnabled()
IsTerminated
bool IsTerminated()
IsUpdatePendingOrInProgress
bool IsUpdatePendingOrInProgress()
LockUpdateMutex
void LockUpdateMutex( void )
OnCatalogChanged
void OnCatalogChanged()
Se debe llamar a este método cuando se modifica el catálogo de TraitDataSink.
ResetResubscribe
void ResetResubscribe( void )
Expulsa el mecanismo para volver a suscribirse.
Esta acción iniciará un reintento inmediato
SetLivenessTimeoutMsec
void SetLivenessTimeoutMsec( uint32_t val )
SetUpdated
WEAVE_ERROR SetUpdated( TraitUpdatableDataSink *aDataSink, PropertyPathHandle aPropertyHandle, bool aIsConditional )
SuspendUpdateRetries
void SuspendUpdateRetries()
Indica al SubscriptionClient que deje de reintentar las solicitudes de actualización.
Permite que la aplicación suspenda las actualizaciones durante un período de tiempo sin descartar todos los metadatos. Las actualizaciones y los reintentos se reanudarán cuando se llame a FlushUpdate. Cuando se llama para suspender actualizaciones mientras hay una actualización en tránsito, la actualización no se cancela, pero, en caso de que falle, no se volverá a intentar hasta que se vuelva a llamar a FlushUpdate.
UnlockUpdateMutex
void UnlockUpdateMutex( void )