nl::Weave::Profiles::ReferencedTLVData

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

De même, nous devons être en mesure de représenter un 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, c'est-à-dire qu'il n'est pas défini.
init(System::PacketBuffer *aBuffer)
Initialisez l'objet ReferencedTLVData en fonction d'un objet PacketBuffer.
init(MessageIterator & i)
Initialisez un objet ReferencedTLVData en fonction d'un élément MessageIterator.
init(uint16_t aLength, uint16_t aMaxLength, uint8_t *aByteString)
Initialiser un objet ReferencedTLVObject en fonction d'une chaîne d'octets.
init(TLVWriteCallback aWriteCallback, void *anAppState)
Initialiser un objet RefererencedTLVData en fonction d'une fonction de rappel.
isEmpty(void)
bool
Vérifiez si un objet ReferencedTLVData contient quoi que ce soit.
isFree(void)
bool
Vérifiez si un objet ReferencedTLVData est "sans frais", c'est-à-dire si
operator==(const ReferencedTLVData &) const
bool
Comparez un objet ReferencedTLVData à un autre objet pour voir si les valeurs sont égales.
pack(System::PacketBuffer *buff)
Empaquetez un objet ReferencedTLVData directement dans un PacketBuffer.
pack(MessageIterator & i, uint32_t maxLen)
packedLength(void)
uint16_t
Renvoyez la longueur des données en supposant que l'objet a été empaqueté 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 objet 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.

gratuit

void free(
  void
)

Libérez un objet ReferencedTLVData, c'est-à-dire qu'il n'est pas défini.

init

WEAVE_ERROR init(
  System::PacketBuffer *aBuffer
)

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

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

Détails
Paramètres
[in] aBuffer
Un tampon de message dans lequel se trouve la TLV.
Valeurs renvoyées
WEAVE_NO_ERROR
Sans condition

init

WEAVE_ERROR init(
  MessageIterator & i
)

Initialisez un objet ReferencedTLVData en fonction d'un élément MessageIterator.

Initialisez un objet ReferencedTLVData en fonction d'un élément MessageIterator. Dans ce cas, la valeur TLV correspond à la dernière partie du tampon, et nous transmettons un itérateur de message qui pointe vers cette dernière.

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

init

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

Initialiser un objet ReferencedTLVObject en fonction 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 à empaqueter et à envoyer.

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

init

WEAVE_ERROR init(
  TLVWriteCallback aWriteCallback,
  void *anAppState
)

Initialiser 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, le rappel d'écriture et un objet de référence, qui lui est transmis, avec 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 une valeur TLV.
[in] anAppState
un objet d'état de l'application à transmettre au rappel avec le rédacteur.
Valeurs renvoyées
WEAVE_NO_ERROR
En cas de réussite.
WEAVE_ERROR_INVALID_ARGUMENT
Si le rappel d'écriture n'est pas fourni.

est vide

bool isEmpty(
  void
)

Vérifiez si un objet ReferencedTLVData contient quoi que ce soit.

Un tel objet pourrait "avoir" de deux façons quelque chose. Soit il ne pouvait avoir aucune longueur, soit il ne pouvait pas avoir de rappel en é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, "false" dans le cas contraire.

isFree

bool isFree(
  void
)

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

non défini.

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

opérateur==

bool operator==(
  const ReferencedTLVData &
) const 

Comparez un objet ReferencedTLVData à un autre objet pour voir si les valeurs sont égales.

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

Détails
Paramètres
[in] Another
un objet à comparer
Valeurs renvoyées
true
Les objets sont égaux.
false
Les chaînes des 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
le tampon à remplir.
Renvoie
Une erreur WEAVE_ERROR reflétant la réussite de l'appel de pack sous-jacent

pack

WEAVE_ERROR pack(
  MessageIterator & i,
  uint32_t maxLen
)

packedLength

uint16_t packedLength(
  void
)

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

Détails
Renvoie
la longueur entière des données empaqueté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 d'un tampon Inet (en supposant qu'il ne contient que TLV).

Détails
Paramètres
[in] buff
le tampon à lire.
[out] aTarget
un objet ReferencedTLVData pour "remplir" ; avec le résultat.
Renvoie
Une erreur 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 objet MessageIterator fourni.

Analyser un objet ReferenceTLVData à partir d'un objet MessageIterator supposé pointer vers la partie TLV d'un message

Notez qu'aucune "analyse" réelle est effectuée ici, car la valeur TLV est conservée dans la mémoire tampon et n'a pas été manipulée. Cette méthode configure principalement la structure ReferencedTLVData pour une utilisation ultérieure.

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