nl:: Weave:: Perfiles:: DataManagement_Current:: SubscriptionClient
Resumen
Tipos públicos |
|
---|---|
@130
|
enum |
EventCallback)(void *const aAppState, EventID aEvent, const InEventParam &aInParam, OutEventParam &aOutParam)
|
typedefvoid(*
Es la 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 que se debe esperar 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 de milisegundos en un período en constante crecimiento, siguiendo una secuencia de fibonacci 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
Inhabilitar el mecanismo para volver a suscribirse
|
DiscardUpdates()
|
void
Indica al objeto SubscriptionClient que borre el conjunto de TraitPaths pendientes para actualizar y anule la solicitud de actualización que está en curso, si la hubiera.
|
EnableResubscribe(ResubscribePolicyCallback aCallback)
|
void
Habilita las suscripciones automáticas.
|
EndSubscription(void)
|
Finaliza la suscripción.
|
FlushUpdate()
|
Indicadores de que la aplicación terminó de mutar todos los receptores de TraitUpdatableData.
|
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 un iniciador (y no un contador) 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 TraitDataReceptor.
|
ResetResubscribe(void)
|
void
Presiona el mecanismo para volver a suscribirse.
|
SetLivenessTimeoutMsec(uint32_t val)
|
void
|
SetUpdated(TraitUpdatableDataSink *aDataSink, PropertyPathHandle aPropertyHandle, bool aIsConditional)
|
|
SuspendUpdateRetries()
|
void
Le indica a SubscriptionClient que deje de reintentar las solicitudes de actualización.
|
UnlockUpdateMutex(void)
|
void
|
Structs |
|
---|---|
nl:: |
|
nl:: |
Unión |
|
---|---|
nl:: |
|
nl:: |
Tipos públicos
@130
@130
EventCallback
void(* EventCallback)(void *const aAppState, EventID aEvent, const InEventParam &aInParam, OutEventParam &aOutParam)
Es la devolución de llamada para pasar eventos de suscripción a la aplicación.
Detalles | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parámetros |
|
ID del evento
EventID
Propiedades | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
kEvent_OnEventStreamReceived
|
Generado cuando SubscriptionEngine cuenta una transmisión de eventos dentro del mensaje NotificationRequest. En este momento, la aplicación puede llamar a EndSubscription(), AbortSubscription() o Free(). |
||||||||||||
kEvent_OnExchangeStart
|
Generado 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 todas las rutas del conjunto de actualizaciones se procesaron mediante el intercambio de tráfico y que no es necesario actualizar más. |
||||||||||||
kEvent_OnNotificationProcessed
|
Generado cuando SubscriptionEngine finaliza el procesamiento de un mensaje NotificationRequest. En este momento, la aplicación puede llamar a EndSubscription(), AbortSubscription() o Free(). |
||||||||||||
kEvent_OnNotificationRequest
|
Se genera en un receptor de una RequestRequest. 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 su solicitud. Se espera que la aplicación complete las rutas a las que desea suscribirse. |
||||||||||||
kEvent_OnSubscriptionActivity
|
Un evento que indica la actividad de la suscripción. Se genera cada vez que el cliente recibe una indicación sobre la actividad de la suscripción. Esto incluye el establecimiento de una suscripción exitosa, una recepción de una RequestRequest o la recepción de un informe de estado en respuesta al mensaje de SubscribeConfirm. |
||||||||||||
kEvent_OnSubscriptionEstablished
|
Generado tras un establecimiento exitoso de 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 intenta realizar una nueva suscripción de forma automática. 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 indica el motivo por el que se finalizó la suscripción. Es posible que la suscripción se haya cancelado por varios motivos (falta la confirmación ACK de WRM, se produjo un error en la asignación de ExchangeContext, se agotó el tiempo de espera de la respuesta, etcétera). 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 característica específica se realizó correctamente o no. |
Volver a suscribirsePolicyCallback
void(* ResubscribePolicyCallback)(void *const aAppState, ResubscribeParam &aInParam, uint32_t &aOutIntervalMsec)
Es la devolución de llamada para recuperar el intervalo que se debe esperar antes de volver a suscribirse.
En esta función, se puede anular o cancelar la postulación si decidieron abandonar la suscripción.
Detalles | |||||||
---|---|---|---|---|---|---|---|
Parámetros |
|
Funciones estáticas públicas
DefaultEventHandler.
void DefaultEventHandler( EventID aEvent, const InEventParam & aInParam, OutEventParam & aOutParam )
ValorDeVolverlaPolítica
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 un período en constante crecimiento, siguiendo una secuencia de fibonacci hasta WDM_RESUBSCRIBE_MAX_FIBONACCI_STEP_INDEX.
El tiempo de espera aleatorio después del WDM_RESUBSCRIBE_MAX_FIBONACCI_STEP_INDEX será de alrededor de una hora. Cuando el recuento de reintentos se restablezca a 0, la secuencia comenzará de nuevo.
Funciones públicas
Anular suscripción
void AbortSubscription( void )
Anula la suscripción.
Anula una suscripción de cliente.
Detén de inmediato todo el tráfico asociado con la suscripción y libera todos los recursos de comunicación subyacentes. El objeto SubscriptionClient sigue siendo válido y puede volver a usarse.
Finaliza el cliente de una suscripción sin notificar al editor y sin entregar un evento OnSubscriptionTerminated
al controlador de eventos de la aplicación. Si existe una suscripción mutua, también se cancela la contranotificación.
Cuando llamas a AbortSubscription(), el objeto SubscriptionClient
pasa al estado Terminated
. Una vez que se completa el proceso de finalización, el objeto pasa al estado Initialized
. Ambas transiciones ocurren de forma síncrona dentro de la llamada a AbortSubscription().
Después de que se muestre AbortSubscription(), se puede usar el objeto SubscriptionClient
para iniciar otra suscripción o liberarse llamando al método Free().
ClearUpdated
WEAVE_ERROR ClearUpdated( TraitUpdatableDataSink *aDataSink, PropertyPathHandle aPropertyHandle )
Inhabilitar la opción Volver a suscribirse
void DisableResubscribe( void )
Inhabilitar el mecanismo para volver a suscribirse
Esta acción anulará si hay una nueva suscripción pendiente.
Descartar actualizaciones
void DiscardUpdates()
Indica al objeto SubscriptionClient que borre el conjunto de TraitPaths pendientes para actualizar y anule la solicitud de actualización que está en curso, si la hubiera.
Este método se puede invocar desde cualquier devolución de llamada.
Habilitar Volver a suscribirse
void EnableResubscribe( ResubscribePolicyCallback aCallback )
Habilita las suscripciones automáticas.
Adjunta una devolución de llamada para especificar la próxima vez que se intente nuevamente.
Detalles | |||
---|---|---|---|
Parámetros |
|
Finalizar suscripción
WEAVE_ERROR EndSubscription( void )
Finaliza la suscripción.
Finaliza correctamente una suscripción de cliente.
Cuando se habilite la opción de tiempo de compilación WDM_ENABLE_SUBSCRIPTION_CANCEL, envía una solicitud de cancelación a la app similar para finalizar la suscripción. Los recursos asociados con la suscripción se liberan en caso de respuesta del par o tiempo de espera. Cuando la opción está inhabilitada, la llamada es equivalente a AbortSubscription().
Finaliza sin inconvenientes el extremo del cliente de una suscripción. Si se habilita la compatibilidad con la cancelación de la suscripción, se envía un mensaje de CancelCancelRequest al editor y el sistema espera una respuesta antes de cerrarla. De lo contrario, la suscripción se cancela de forma similar a AbortSubscription(). Si existe una suscripción mutua, también se cancela.
Mientras esperas una respuesta a una solicitud de CancelCancelRequest, SubscriptionClient
pasa al estado Canceling
.
Una vez que comienza el proceso de finalización, el objeto SubscriptionClient
pasa al estado Terminated
y se entrega un evento OnSubscriptionTerminated
al controlador de eventos de la aplicación. Ten en cuenta que, si no se habilita la compatibilidad con la cancelación, se puede llamar al controlador del evento de forma síncrona dentro de la llamada a EndSubscription().
Después de que se muestra el controlador de eventos de la aplicación, el objeto SubscriptionClient
pasa al estado Initialized
. En este punto, es posible que el objeto SubscriptionClient
se use para iniciar otra suscripción o que se libere mediante una llamada al método Free().
Actualizar Flush
WEAVE_ERROR FlushUpdate()
Indicadores de que la aplicación terminó de mutar todos los receptores de TraitUpdatableData.
A menos que un intercambio de actualizaciones anterior esté en curso, el cliente tomará todos los datos marcados como actualizados y los enviará al que responde en una solicitud de actualización. Se puede llamar a este método desde cualquier subproceso.
Detalles | |||
---|---|---|---|
Parámetros |
|
||
Qué muestra |
WEAVE_NO_ERROR en caso de éxito; otros códigos WEAVE_ERROR en caso de falla
|
Actualizar Flush
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 el recuento en este objeto SubscriptionClient. Según el uso correcto, esto debería permitir que el objeto se devuelva al grupo de objetos.
Libera el objeto SubscriptionClient
. Si una suscripción está activa o en curso, se cancela inmediatamente de forma similar a como se llama a AbortSubscription(). Si hay solicitudes de actualización en curso, se anulan de manera similar.
La aplicación es responsable de llamar a Free() exactamente una vez durante el ciclo de vida de un objeto SubscriptionClient
. Después de llamar a Free(), no se deben hacer más referencias al objeto.
GetBinding
Binding * GetBinding( void ) const
GetLivenessTimeoutMsec
uint32_t GetLivenessTimeoutMsec( void ) const
ID de GetPeerNode
uint64_t GetPeerNodeId( void ) const
ID de suscripción
WEAVE_ERROR GetSubscriptionId( uint64_t *const apSubscriptionId )
Indicar actividad
void IndicateActivity( void )
InitiateCounterSubscription
void InitiateCounterSubscription( const uint32_t aLivenessTimeoutSec )
InitiateSubscription
void InitiateSubscription( void )
Configura el SubscriptionClient como un iniciador (y no un contador) y activa la suscripción si no es así.
Se está cancelando
bool IsCanceling() const
Establecido
bool IsEstablished()
está establecida
bool IsEstablishedIdle()
Es gratuita
bool IsFree()
¿Está en progreso?
bool IsInProgressOrEstablished()
IsInResubscribeHoldoff
bool IsInResubscribeHoldoff()
¿Se reintenta?
bool IsRetryEnabled()
Terminado
bool IsTerminated()
IsUpdatePendingOrInProgress
bool IsUpdatePendingOrInProgress()
LockUpdateMutex
void LockUpdateMutex( void )
Se cambió OnCatalog
void OnCatalogChanged()
Se debe llamar a este método cuando se modifica el catálogo TraitDataReceptor.
Restablecer la suscripción
void ResetResubscribe( void )
Presiona el mecanismo para volver a suscribirse.
Se iniciará un reintento inmediato
SetLivenessTimeoutMsec
void SetLivenessTimeoutMsec( uint32_t val )
Se actualizó SetSet
WEAVE_ERROR SetUpdated( TraitUpdatableDataSink *aDataSink, PropertyPathHandle aPropertyHandle, bool aIsConditional )
SuspendUpdateRetries
void SuspendUpdateRetries()
Le indica a SubscriptionClient que deje de reintentar las solicitudes de actualización.
Permite que la aplicación suspenda las actualizaciones durante un tiempo sin descartar todos los metadatos. Las actualizaciones y los reintentos se reanudarán cuando se llame a FlushUpdate. Cuando se llama a la suspensión de las actualizaciones mientras una en curso está activa, no se cancela, pero en caso de que falle, no se volverá a intentar hasta que se vuelva a llamar a FlushUpdate.
DesbloquearUpdateSilenciarx
void UnlockUpdateMutex( void )