En Google, luchamos por la equidad racial de la comunidad negra. Más información
Organiza tus páginas con colecciones Guarda y categoriza el contenido según tus preferencias.

nl::Weave::Perfiles::DataManagement_Current::SubscriptionClient

Resumen

Tipos públicos

@130 enum
EventCallback)(void *const aAppState, EventID aEvent, const InEventParam &aInParam, OutEventParam &aOutParam) typedef
void(*
Es la 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
}
enum
ResubscribePolicyCallback)(void *const aAppState, ResubscribeParam &aInParam, uint32_t &aOutIntervalMsec) typedef
void(*
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
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::Weave::Perfiles::DataManagement_Current::Cliente de suscripción::LastObservedEvent
nl::Weave::Perfiles::DataManagement_Current::Cliente de suscripción::Volver a suscribirse

Unión

nl::Weave::Perfiles::DataManagement_Current::Cliente de suscripción::InEventParam
nl::Weave::Perfiles::DataManagement_Current::Cliente de suscripción::OutEventParam

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
[in] aAppState
Se establece el puntero del estado de la app durante la inicialización de SubscriptionClient.
[in] aEvent
Indica qué evento está ocurriendo
[in] aInParam
Estructura con detalles adicionales sobre el evento
[out] aOutParam
Información que envía la aplicación

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; mEC es válida y se puede ajustar para la configuración del tiempo de espera. La aplicación no debe tocar otros campos del cliente ni cerrar 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á Terminated. Si no se intenta realizar ningún intento, el estado del cliente cambiará a Initialized cuando se muestre el controlador del evento. De lo contrario, el estado cambiará a ResubscribeHoldoff y se intentará restablecer la suscripción después del tiempo de suspensión.

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:

Código de error Significado
WEAVE_ERROR_INVALID_MESSAGE_TYPE Se recibe un mensaje no reconocido.
WEAVE_ERROR_TIMEOUT No se recibe una confirmación o falla la verificación de actividad.
WEAVE_ERROR_INCORRECT_STATE Los mensajes se reciben de forma inesperada.
WEAVE_ERROR_STATUS_REPORT_RECEIVED Se recibe un informe de estado.
WEAVE_ERROR_INVALID_="< Los campos de solicitud de suscripción no son válidos.

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
[in] aAppState
Se establece el puntero del estado de la app durante la inicialización de SubscriptionClient.
[in] aInParam
Estructura con detalles adicionales sobre el reintento
[out] aOutIntervalMsec
Tiempo en milisegundos que se debe esperar antes de reintentar

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
[in] aCallback
Es una devolución de llamada opcional para recuperar el tiempo de espera antes de reintentarlo después de una falla. Si NULL usa una política predeterminada.

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
[in] aForce
Si es verdadero, la actualización se envía de inmediato incluso si se programó un reintento en el futuro. Este parámetro se considera falso de forma predeterminada.
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
)