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 afin de simplifier les mécanismes liés aux applications. L'application fournit un PacketBuffer 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 la gestion des commandes est en effet limitée, principalement en raison de la complexité/la 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 restent à déterminer

Cette classe permet également aux applications de déterminer si les données d'un récepteur 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 se charge de gérer le stockage de cet objet.

Liaison Weave

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 Binding à chaque appel de SendCommand(), qui remplacera la Binding par défaut. Il n'est pas nécessaire de fournir une Binding par défaut, mais 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). Elle 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

Les événements suivants sont les résultats possibles après l'envoi d'une commande Command:

CommunicationError

Une erreur s'est produite lors de la création ou de l'envoi de la commande Command, ou lors de l'attente d'une réponse. Des exemples d'erreurs qui peuvent se produire en attendant une réponse sont les erreurs clés ou la fermeture inattendue d'une connexion. 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 bien é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. Envoi d'un message "en cours" message n'est pas obligatoire.

StatusReportReceived

La réception d'un rapport d'état implique une erreur lors du traitement de la commande. Le StatusReport est accessible via l'élément InEventParam.

ResponseReceived

La réception d'une réponse implique que le destinataire Command a bien géré la commande Command. La réponse peut contenir une charge utile ou non. Si l'application souhaite conserver le tampon de 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 énum

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
)