nl::Weave::Profiles::DataManagement_Current::CommandSender

#include <src/lib/profiles/data-management/Current/CommandSender.h>

Résumé

Remarque:Cette classe encapsule les détails du protocole d'envoi de commandes, simplifiant ainsi les mécanismes impliqués dans les applications. L'application fournit un PaquetBuffer contenant la charge utile de la commande, ainsi qu'un ensemble facultatif d'arguments qui modifient le contenu de l'en-tête de la commande ainsi que le comportement de la commande. L'utilité de ce wrapper pour le traitement des commandes est en effet limitée, principalement en raison de la complexité/flexibilité de la validation de la sécurité et de la sérialisation/désérialisation des données.

Les détails de la validation des commandes sont encore à déterminer

Cette classe aide également les applications à déterminer si les données d'un TraitDataSink associé ont rattrapé les effets secondaires de la commande (en fonction de la version fournie dans la réponse de la commande). L'application est responsable de la gestion du stockage de cet objet.

Reliure tressé

Un objet de cette classe peut être initialisé avec une liaison Weave, qui servira de liaison par défaut à utiliser pour envoyer des commandes. L'utilisateur peut également fournir une Liaison à chaque appel de SendCommand(), qui remplace la liaison par défaut. Il n'est pas nécessaire de fournir une liaison par défaut. Toutefois, toute liaison fournie à CommandSender doit déjà être initialisée.

EventCallback

L'utilisateur doit définir une fonction de ce type s'il souhaite être informé des événements qui se produisent après l'envoi de la commande (voir la section "Événements de l'API" ci-dessous). Cette valeur peut être NULL si l'utilisateur ne se soucie pas de ce qui se passe après l'envoi de la commande.

Événements de l'API

Voici les événements qui peuvent se produire après l'envoi d'une commande:

CommunicationError

Une erreur s'est produite lors de la formation ou de l'envoi de la commande Command, ou en attendant une réponse. Les erreurs clés ou la fermeture inattendue d'une connexion sont des exemples d'erreurs qui peuvent se produire en attendant une réponse. Le motif de l'erreur sera contenu dans l'argument InEventParam du gestionnaire EventCallback.

InProgressReceived

Le destinataire peut envoyer un message "en cours" qui signifie que la commande Command (Commande) a été reçue, mais n'est pas encore terminée. Une fois l'opération terminée, le destinataire enverra une réponse ou un rapport d'état. Il n'est pas nécessaire d'envoyer un message "En cours".

StatusReportReceived

La réception d'un StatusReport implique qu'une erreur s'est produite lors du traitement de la commande Command. Le StatusReport est accessible via InEventParam.

ResponseReceived

La réception d'une réponse implique que le destinataire de la commande Command a bien géré la commande Command. La réponse peut contenir ou non une charge utile. Si l'application souhaite conserver la mémoire tampon des paquets, elle peut appeler ExchangeContext::AddRef() pour augmenter le nombre de références.

Types publics

EventCallback)(void *const aAppState, EventType aEvent, const InEventParam &aInParam, OutEventParam &aOutEventParam) typedef
void(*
EventType enum

Attributs publics

mAppState = NULL
void *
mSyncronizedTraitState = NULL

Fonctions statiques publiques

DefaultEventHandler(void *aAppState, EventType aEvent, const InEventParam & aInParam, OutEventParam & aOutParam)
void

Fonctions publiques

Close(bool aAbortNow)
void
Init(nl::Weave::Binding *aBinding, const EventCallback aEventCallback, void *const aAppState)
SendCommand(nl::Weave::PacketBuffer *aPayload, nl::Weave::Binding *aBinding, ResourceIdentifier & aResourceId, uint32_t aProfileId, uint32_t aCommandType)
SendCommand(nl::Weave::PacketBuffer *aPayload, nl::Weave::Binding *aBinding, SendParams & aSendParams)
SetSynchronizedTraitState(SynchronizedTraitState *aTraitState)
void

Structs

nl::Weave::Profiles::DataManagement_Current::CommandSender::InEventParam

Données renvoyées à l'expéditeur par le destinataire de la commande personnalisée.

nl::Weave::Profiles::DataManagement_Current::CommandSender::OutEventParam

Données renvoyées à un objet CommandSender à partir d'une fonction EventCallback.

nl::Weave::Profiles::DataManagement_Current::CommandSender::SendParams

Encapsule les arguments à transmettre à SendCommand().

nl::Weave::Profiles::DataManagement_Current::CommandSender::SynchronizedTraitState

Types publics

EventCallback

void(* EventCallback)(void *const aAppState, EventType aEvent, const InEventParam &aInParam, OutEventParam &aOutEventParam)

EventType

 EventType

Attributs publics

mAppState

void * mAppState = NULL

mSyncronizedTraitState

SynchronizedTraitState * mSyncronizedTraitState = NULL

Fonctions statiques publiques

DefaultEventHandler

void DefaultEventHandler(
  void *aAppState,
  EventType aEvent,
  const InEventParam & aInParam,
  OutEventParam & aOutParam
)

Fonctions publiques

Fermer

void Close(
  bool aAbortNow
)

Init

WEAVE_ERROR Init(
  nl::Weave::Binding *aBinding,
  const EventCallback aEventCallback,
  void *const aAppState
)

SendCommand

WEAVE_ERROR SendCommand(
  nl::Weave::PacketBuffer *aPayload,
  nl::Weave::Binding *aBinding,
  ResourceIdentifier & aResourceId,
  uint32_t aProfileId,
  uint32_t aCommandType
)

SendCommand

WEAVE_ERROR SendCommand(
  nl::Weave::PacketBuffer *aPayload,
  nl::Weave::Binding *aBinding,
  SendParams & aSendParams
)

SetSynchronizedTraitState

void SetSynchronizedTraitState(
  SynchronizedTraitState *aTraitState
)