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