nl::Weave::Profiles::DataManagement_Current::Command

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

Résumé

Remarque:Cette classe est conçue pour masquer certains détails dans le traitement des commandes. Il a été décidé de masquer les détails d'ExchangeContext et de la validation de l'authentificateur, tout en laissant la gestion des packages de paquets à la couche d'application. 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

Pour ajuster le délai de retransmission des messages "En cours", "Rapport d'état" et de réponse, la couche application doit, d'une manière ou d'une autre, gérer l'objet ExchangeContext. La meilleure pratique reste à déterminer, mais la couche application offre les trois options suivantes:

1) Obtenez le contexte Exchange via GetExchangeContext, puis évaluez/ajustez-le directement. 2) Préallouez et configurez une liaison au démarrage, avant l'arrivée d'une commande, et configurez-la correctement. 3) Créez une liaison temporaire à l'aide de cette fonction BindingPool::NewRépondreerBindingFromExchangeContext.

Dans les versions (2) et (3), la couche d'application peut appliquer le paramètre de sécurité/temps passé via Binding::ConfigureExampleExchangeContext. La liaison n'est jamais utilisée pour générer de nouveaux contextes d'échange pour les commandes personnalisées. Il n'est donc pas nécessaire de la stocker dans ce handle.

Le tampon du paquet de requête n'est pas non plus stocké dans ce handle, car il n'est pas clairement utilisé. Cela est particulièrement vrai si la couche d'application peut gérer cette commande et envoyer une réponse directement.

La couche d'application recevrait le tampon de paquets à partir du même rappel qu'elle reçoit cette poignée de commande. S'il décide de gérer cette commande de manière asynchrone, il doit stocker à la fois la poignée de commande et le tampon de paquets.

Types publics

CommandFlags{
  kCommandFlag_MustBeVersionValid = 0x0001,
  kCommandFlag_InitiationTimeValid = 0x0002,
  kCommandFlag_ActionTimeValid = 0x0004,
  kCommandFlag_ExpiryTimeValid = 0x0008,
  kCommandFlag_IsOneWay = 0x0010
}
énum
Bits de l'indicateur Command.
CommandFlags typedef
Bits de l'indicateur Command.

Attributs publics

actionTimeMicroSecond
int64_t
commandType
uint64_t
expiryTimeMicroSecond
int64_t
initiationTimeMicroSecond
int64_t
mustBeVersion
uint64_t

Fonctions publiques

Close(void)
void
GetExchangeContext(void) const
Récupérez l'objet de contexte d'échange utilisé par cette commande entrante.
IsActionTimeValid(void) const
bool
IsExpiryTimeValid(void) const
bool
IsInitiationTimeValid(void) const
bool
IsMustBeVersionValid(void) const
bool
IsOneWay(void) const
bool
SendError(uint32_t aProfileId, uint16_t aStatusCode, WEAVE_ERROR aWeaveError)
SendInProgress(void)
SendResponse(uint32_t traitInstanceVersion, nl::Weave::System::PacketBuffer *apPayload)
ValidateAuthenticator(nl::Weave::System::PacketBuffer *aRequestBuffer)

Types publics

CommandFlags

 CommandFlags

Bits de l'indicateur Command.

Propriétés
kCommandFlag_ActionTimeValid

Définissez quand l'heure d'action est valide.

kCommandFlag_ExpiryTimeValid

Définissez la date d'expiration.

kCommandFlag_InitiationTimeValid

Définissez le moment où l'heure d'initialisation est valide.

kCommandFlag_IsOneWay

Défini lorsque la commande est à sens unique.

kCommandFlag_MustBeVersionValid

Défini lorsque le champ de version est valide.

CommandFlags

enum nl::Weave::Profiles::DataManagement_Current::Command::CommandFlags CommandFlags

Bits de l'indicateur Command.

Attributs publics

actionTimeMicroSecond

int64_t actionTimeMicroSecond

commandType

uint64_t commandType

expiryTimeMicroSecond

int64_t expiryTimeMicroSecond

initiationTimeMicroSecond

int64_t initiationTimeMicroSecond

mustBeVersion

uint64_t mustBeVersion

Fonctions publiques

Fermer

void Close(
  void
)

GetExchangeContext

nl::Weave::ExchangeContext * GetExchangeContext(
  void
) const 

Récupérez l'objet de contexte d'échange utilisé par cette commande entrante.

Détails
Renvoie
Un pointeur vers l'objet de contexte d'échange utilisé par cette commande entrante

IsActionTimeValid

bool IsActionTimeValid(
  void
) const 

IsExpiryTimeValid

bool IsExpiryTimeValid(
  void
) const 

IsInitiationTimeValid

bool IsInitiationTimeValid(
  void
) const 

IsMustBeVersionValid

bool IsMustBeVersionValid(
  void
) const 

IsOneWay

bool IsOneWay(
  void
) const 

SendError

WEAVE_ERROR SendError(
  uint32_t aProfileId,
  uint16_t aStatusCode,
  WEAVE_ERROR aWeaveError
)

SendInProgress

WEAVE_ERROR SendInProgress(
  void
)

SendResponse

WEAVE_ERROR SendResponse(
  uint32_t traitInstanceVersion,
  nl::Weave::System::PacketBuffer *apPayload
)

ValidateAuthenticator

WEAVE_ERROR ValidateAuthenticator(
  nl::Weave::System::PacketBuffer *aRequestBuffer
)