nl::Weave::Profiles::ReferencedTLVData

#include <src/lib/profiles/common/WeaveMessage.h>

De même, nous devons être en mesure de représenter un grand ancien blob de données TLV.

Résumé

Héritage

Hérite de: nl::Weave::Profiles::RetainedPacketBuffer

Constructeurs et destructeurs

ReferencedTLVData(void)
-------------- définitions des données TLV --------------

Types publics

TLVWriteCallback)(TLV::TLVWriter &aWriter, void *aAppState) typedef
void(*

Attributs publics

theData
uint8_t *
theLength
uint16_t
theMaxLength
uint16_t

Fonctions publiques

free(void)
void
Libérez un objet ReferencedTLVData (en d'autres termes, annulez sa définition).
init(System::PacketBuffer *aBuffer)
Initialisez l'objet ReferencedTLVData en fonction d'un PacketBuffer.
init(MessageIterator & i)
Initialisez un objet ReferencedTLVData à partir d'un MessageIterator.
init(uint16_t aLength, uint16_t aMaxLength, uint8_t *aByteString)
Initialisez un ReferencedTLVObject à partir d'une chaîne d'octets.
init(TLVWriteCallback aWriteCallback, void *anAppState)
Initialisez un objet RefererencedTLVData en fonction d'une fonction de rappel.
isEmpty(void)
bool
Vérifiez si un objet ReferencedTLVData contient du contenu.
isFree(void)
bool
Vérifiez si un objet ReferencedTLVData est "free" (sans frais), c'est-à-dire
operator==(const ReferencedTLVData &) const
bool
Comparez un objet ReferencedTLVData à un autre pour vérifier l'égalité.
pack(System::PacketBuffer *buff)
Empaquetez un objet ReferencedTLVData directement dans un PacketBuffer.
pack(MessageIterator & i, uint32_t maxLen)
packedLength(void)
uint16_t
Renvoie la longueur des données en supposant que l'objet a été compressé dans un tampon.

Fonctions statiques publiques

parse(System::PacketBuffer *buff, ReferencedTLVData & aTarget)
Analyser un objet ReferencedTLVData à partir d'un PacketBuffer fourni.
parse(MessageIterator & i, ReferencedTLVData & aTarget)
Analyser un objet ReferencedTLVData à partir d'un MessageIterator fourni

Types publics

TLVWriteCallback

void(* TLVWriteCallback)(TLV::TLVWriter &aWriter, void *aAppState)

Attributs publics

theData

uint8_t * theData

theLength

uint16_t theLength

theMaxLength

uint16_t theMaxLength

Fonctions publiques

ReferencedTLVData

 ReferencedTLVData(
  void
)

-------------- définitions des données TLV --------------

Constructeur sans argument pour les données TLV. Fournit un objet libre/non initialisé qui doit être soumis à l'une des méthodes init() définies ici pour être utile.

sans frais

void free(
  void
)

Libérez un objet ReferencedTLVData (en d'autres termes, annulez sa définition).

init

WEAVE_ERROR init(
  System::PacketBuffer *aBuffer
)

Initialisez l'objet ReferencedTLVData en fonction d'un PacketBuffer.

Initialisez un objet ReferencedTLVData à partir d'un tampon rempli de TLV. Cela suppose que le tampon contient UNIQUEMENT TLV.

Détails
Paramètres
[in] aBuffer
Tampon de messages dans lequel se trouve le TLV.
Valeurs de retour
WEAVE_NO_ERROR
Sans condition

init

WEAVE_ERROR init(
  MessageIterator & i
)

Initialisez un objet ReferencedTLVData à partir d'un MessageIterator.

Initialisez un objet ReferencedTLVData à partir d'un MessageIterator. Dans le cas présent, le TLV correspond à la dernière partie du tampon et nous transmettons un itérateur de message qui pointe vers celui-ci.

Détails
Paramètres
[in] i
Itérateur de message pointant vers TLV à extraire.
Valeurs de retour
WEAVE_NO_ERROR
Sans condition

init

WEAVE_ERROR init(
  uint16_t aLength,
  uint16_t aMaxLength,
  uint8_t *aByteString
)

Initialisez un ReferencedTLVObject à partir d'une chaîne d'octets.

Initialisez l'objet ReferencedTLVData avec une chaîne d'octets contenant TLV. Cet initialiseur est celui que nous utilisons en l'absence de PacketrBuffer, car nous en créons un pour l'empaqueter et l'envoyer.

Détails
Paramètres
[in] aLength
La longueur des données TLV
[in] aMaxLength
Longueur totale du tampon
[in] aByteString
Un pointeur vers les données de chaîne
Valeurs de retour
WEAVE_NO_ERROR
Sans condition

init

WEAVE_ERROR init(
  TLVWriteCallback aWriteCallback,
  void *anAppState
)

Initialisez un objet RefererencedTLVData en fonction d'une fonction de rappel.

Initialisez un objet ReferencedTLVData. Au lieu de fournir explicitement les données, cette version fournit une fonction, un rappel d'écriture et un objet de référence, qui lui sera transmis, ainsi qu'un objet TLVWriter, lorsque les données référencées sont censées être empaquetées et envoyées. La signature de ce rappel est la suivante:

typedef void (*TLVWriteCallback)(TLV::TLVWriter &aWriter, void *aAppState);

Détails
Paramètres
[in] aWriteCallback
la fonction à appeler lorsqu'il est temps d'écrire un TLV.
[in] anAppState
un objet d'état de l'application à transmettre au rappel avec le rédacteur.
Valeurs de retour
WEAVE_NO_ERROR
Pour la réussite.
WEAVE_ERROR_INVALID_ARGUMENT
Si le rappel d'écriture n'est pas fourni.

isEmpty

bool isEmpty(
  void
)

Vérifiez si un objet ReferencedTLVData contient du contenu.

Un tel objet peut "présenter" quelque chose de deux façons. Soit il peut avoir une longueur de 0, soit il n'y a pas de rappel d'écriture.

Détails
Renvoie
"true" si l'ensemble de données a une longueur de 0 ou s'il n'y a pas de rappel d'écriture en main. Sinon, la valeur "false" est renvoyée.

isFree

bool isFree(
  void
)

Vérifiez si un objet ReferencedTLVData est "free" (sans frais), c'est-à-dire

non défini.

Détails
Renvoie
"true" si l'objet n'est pas défini, "false" dans le cas contraire.

opérateur==

bool operator==(
  const ReferencedTLVData &
) const 

Comparez un objet ReferencedTLVData à un autre pour vérifier l'égalité.

Notez que cela n'a vraiment de sens que dans le cas de deux objets contenant des données réelles sauvegardées par un tampon ou une chaîne.

Détails
Paramètres
[in] Another
un objet à comparer
Valeurs de retour
true
Les objets sont égaux.
false
Les chaînes d'objets ne sont pas égales.

pack

WEAVE_ERROR pack(
  System::PacketBuffer *buff
)

Empaquetez un objet ReferencedTLVData directement dans un PacketBuffer.

Détails
Paramètres
[in] buff
à remplir.
Renvoie
WEAVE_ERROR reflétant la réussite de l'appel du pack sous-jacent.

pack

WEAVE_ERROR pack(
  MessageIterator & i,
  uint32_t maxLen
)

packedLength

uint16_t packedLength(
  void
)

Renvoie la longueur des données en supposant que l'objet a été compressé dans un tampon.

Détails
Renvoie
la longueur entière des données regroupées.

Fonctions statiques publiques

parse

WEAVE_ERROR parse(
  System::PacketBuffer *buff,
  ReferencedTLVData & aTarget
)

Analyser un objet ReferencedTLVData à partir d'un PacketBuffer fourni.

Analyser un objet ReferencedTLVData à partir d'un tampon d'intégration (en supposant qu'il ne contient que TLV).

Détails
Paramètres
[in] buff
dans le tampon à lire.
[out] aTarget
un objet ReferencedTLVData pour "remplir" le résultat.
Renvoie
WEAVE_ERROR reflétant la réussite de l'appel d'analyse sous-jacent.

parse

WEAVE_ERROR parse(
  MessageIterator & i,
  ReferencedTLVData & aTarget
)

Analyser un objet ReferencedTLVData à partir d'un MessageIterator fourni

Analyser un objet ReferenceTLVData à partir d'un objet MessageIterator qui pointe vers la partie TLV d'un message

Notez qu'aucun véritable "analyse" n'est effectué ici, car le TLV est laissé dans le tampon et n'est pas du tout manipulé. Cette méthode se contente principalement de configurer la structure ReferencedTLVData pour une utilisation ultérieure.

Détails
Paramètres
[in] i
Itérateur pour le message en cours d'analyse
[out] aTarget
Un emplacement où placer le résultat de l'analyse.
Valeurs de retour
WEAVE_NO_ERROR
Sans condition