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 un certain détail de la gestion des commandes. La décision a été prise de masquer les détails d'ExchangeContext et de la validation de l'authentificateur, tout en laissant la gestion de PacketBuffers à la couche d'application. 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

Pour ajuster le délai de retransmission du message "En cours", "Rapport d'état" et "Réponse", la couche d'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 comporte les trois choix suivants:

1) Obtenir le contexte Exchange via GetExchangeContext et l'évaluer/l'ajuster 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 la fonction BindingPool::NewResponderBindingFromExchangeContext.

Dans les deux (2) et (3), la couche d'application peut appliquer le paramètre de sécurité/chronologie via Binding::ConfigureExistingExchangeContext. La liaison n'est jamais utilisée pour générer de nouveaux contextes d'échange pour les commandes personnalisées. Il n'a donc pas besoin d'être stocké dans cet identifiant.

Le tampon du paquet de requête n'est pas non plus stocké dans ce handle, car son utilisation n'est pas évidente. 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 du paquet du même rappel avec lequel elle reçoit ce handle de commande. S'il décide de gérer cette commande de manière asynchrone, il devra stocker à la fois le handle de commande et le tampon des paquets.

Types publics

CommandFlags{
  kCommandFlag_MustBeVersionValid = 0x0001,
  kCommandFlag_InitiationTimeValid = 0x0002,
  kCommandFlag_ActionTimeValid = 0x0004,
  kCommandFlag_ExpiryTimeValid = 0x0008,
  kCommandFlag_IsOneWay = 0x0010
}
enum
L'indicateur Command (Commande).
CommandFlags typedef
L'indicateur Command (Commande).

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

L'indicateur Command (Commande).

Propriétés
kCommandFlag_ActionTimeValid

Définissez la date et l'heure de validité de l'action.

kCommandFlag_ExpiryTimeValid

Définissez la date d'expiration de l'annonce.

kCommandFlag_InitiationTimeValid

Définissez cette valeur lorsque l'heure d'initialisation est valide.

kCommandFlag_IsOneWay

Définissez ce paramètre lorsque la commande est à sens unique.

kCommandFlag_MustBeVersionValid

Définissez ce paramètre lorsque le champ de version est valide.

CommandFlags

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

L'indicateur Command (Commande).

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
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
)