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