nl::Weave::TLV

Définitions relatives à l'utilisation de données encodées au format TLV Weave.

Résumé

La valeur TLV de Weave est une méthode d'encodage généralisée pour des données structurées simples. Il partage de nombreuses propriétés avec le format de sérialisation JSON couramment utilisé, tout en étant considérablement plus compact sur le réseau.

Énumérations

@71 énum
@73 énum
@74{
  AnonymousTag = kSpecialTagMarker | 0x00000000FFFFFFFFULL
}
énum
@75 énum
TLVCommonProfiles{
  kProfileIdNotSpecified = 0xFFFFFFFF
}
énum
TLVElementType énum
TLVFieldSize énum
TLVTagControl énum
TLVTagFields énum
TLVType énum
Énumération identifiant le type d'un élément TLV.

Variables

kWeaveTLVCopyChunkSize = 16
const size_t
Copie un élément TLV d'un objet lecteur dans l'éditeur.
sTagSizes = { 0, 1, 2, 4, 2, 4, 6, 8 }[]
const uint8_t

Fonctions

CommonTag(uint32_t tagNum)
uint64_t
Génère la représentation API d'une balise TLV de profil commun.
ContextTag(uint8_t tagNum)
uint64_t
Génère la représentation API du tag TLV spécifique au contexte.
GetTLVFieldSize(uint8_t type)
TLVFieldSize
IsContextTag(uint64_t tag)
bool
Renvoie la valeur "true" si la balise fournie est une balise spécifique au contexte.
IsProfileTag(uint64_t tag)
bool
Renvoie "true" si la balise fournie est une balise spécifique au profil.
IsSpecialTag(uint64_t tag)
bool
IsValidTLVType(uint8_t type)
bool
Renvoie "true" si le type TLV spécifié est valide.
ProfileIdFromTag(uint64_t tag)
uint32_t
Renvoie l'ID de profil à partir d'une balise TLV.
ProfileNumFromTag(uint64_t tag)
uint16_t
Renvoie le numéro de profil à partir d'une balise TLV.
ProfileTag(uint32_t profileId, uint32_t tagNum)
uint64_t
Génère la représentation API d'une balise TLV spécifique à un profil à partir d'un ID et d'un numéro de balise de profil.
ProfileTag(uint16_t vendorId, uint16_t profileNum, uint32_t tagNum)
uint64_t
Génère la représentation API d'une balise TLV spécifique à un profil à partir d'un ID de fournisseur, d'un numéro de profil et d'un numéro de balise.
TLVFieldSizeToBytes(TLVFieldSize fieldSize)
uint8_t
TLVTypeHasLength(uint8_t type)
bool
Renvoie la valeur "true" si le type TLV spécifié implique la présence d'un champ de longueur associé.
TLVTypeHasValue(uint8_t type)
bool
Renvoie "true" si le type TLV spécifié implique la présence d'un champ de valeur associé.
TLVTypeIsContainer(uint8_t type)
bool
Renvoie "true" si le type TLV spécifié est un conteneur.
TLVTypeIsString(uint8_t type)
bool
Renvoie "true" si le type TLV spécifié est une chaîne d'octets ou UTF8.
TagNumFromTag(uint64_t tag)
uint32_t
Renvoie le numéro d'une balise TLV.
VendorIdFromTag(uint64_t tag)
uint16_t
Renvoie l'ID du fournisseur à partir d'une balise TLV.

Classes

nl::Weave::TLV::CircularTLVReader
nl::Weave::TLV::CircularTLVWriter
nl::Weave::TLV::TLVReader

Fournit un analyseur économe en mémoire pour les données encodées au format TLV Weave.

nl::Weave::TLV::TLVUpdater

Fournit une interface Reader/Writer unifiée permettant de modifier, d'ajouter et de supprimer des éléments au format TLV.

nl::Weave::TLV::TLVWriter

Fournit un encodeur économe en mémoire pour écrire des données au format TLV Weave.

nl::Weave::TLV::WeaveCircularTLVBuffer

WeaveCircularTLVBuffer fournit un stockage circulaire pour nl::Weave::TLV::TLVWriter et nl::Weave::TLVTLVReader.

Espaces de noms

nl::Weave::TLV::Debug

Cet espace de noms comprend des types et des interfaces de débogage et de journalisation des TLV Weave.

nl::Weave::TLV::Utilities

Cet espace de noms comprend des types et des interfaces utilitaires permettant de gérer et d'utiliser les TLV Weave.

Énumérations

@71

 @71

@73

 @73

@74

 @74
Propriétés
AnonymousTag

Valeur indiquant un élément TLV sans balise (par exemple,

un élément anonyme).

@75

 @75

TLVCommonProfiles

 TLVCommonProfiles
Propriétés
kProfileIdNotSpecified

Utilisé pour indiquer l'absence d'ID de profil dans une variable ou un membre.

Cette valeur est essentiellement la même que celle définie dans WeaveProfiles.h

TLVElementType

 TLVElementType

TLVFieldSize

 TLVFieldSize

TLVTagControl

 TLVTagControl

TLVTagFields

 TLVTagFields

TLVType

 TLVType

Énumération identifiant le type d'un élément TLV.

Variables

kWeaveTLVCopyChunkSize

const size_t kWeaveTLVCopyChunkSize = 16

Copie un élément TLV d'un objet lecteur dans l'éditeur.

La méthode CopyElement() encode un nouvel élément TLV dont le type et la valeur sont issus d'un objet TLVReader. Lorsque la méthode est appelée, l'objet lecteur fourni doit être positionné sur l'élément TLV source. Le nouvel élément encodé aura le même type et le même contenu que le conteneur d'entrée, mais la balise sera définie sur l'argument spécifié. Si l'élément fourni est un conteneur TLV (structure, tableau ou chemin d'accès), l'intégralité du contenu du conteneur est copié.

Détails
Paramètres
[in] tag
Balise TLV à encoder avec le conteneur, ou AnonymousTag si le conteneur doit être encodé sans balise. Les valeurs de tag doivent être créées avec l'une des fonctions de définition de balise ProfileTag(), ContextTag() ou CommonTag().
[in] reader
Référence à un objet TLVReader identifiant un élément TLV précodé dont le type et la valeur doivent être copiés.
Valeurs renvoyées
WEAVE_NO_ERROR
Si la méthode aboutit.
WEAVE_ERROR_INCORRECT_STATE
Si le lecteur fourni n'est pas positionné sur un élément.
WEAVE_ERROR_TLV_CONTAINER_OPEN
Si un rédacteur de conteneur a été ouvert sur le rédacteur actuel, mais pas encore fermé.
WEAVE_ERROR_TLV_UNDERRUN
Si l'encodage TLV sous-jacent associé au lecteur fourni s'est terminé prématurément.
WEAVE_ERROR_INVALID_TLV_ELEMENT
Si le lecteur fourni a rencontré un type d'élément TLV non valide ou non compatible.
WEAVE_ERROR_INVALID_TLV_TAG
Si le lecteur fourni a détecté une balise TLV dans un contexte non valide, ou si la balise fournie n'est pas valide ou n'est pas appropriée dans le contexte d'écriture du nouveau conteneur.
WEAVE_ERROR_BUFFER_TOO_SMALL
Si vous écrivez la valeur, vous dépassez la limite du nombre maximal d'octets spécifié lors de l'initialisation du rédacteur.
WEAVE_ERROR_NO_MEMORY
Si une tentative d'allocation d'un tampon de sortie échoue en raison d'un manque de mémoire.
other
Autres erreurs Weave ou spécifiques à la plate-forme renvoyées par les fonctions GetNewBuffer() ou FinalizeBuffer() configurées, ou par la fonction GetNextBuffer() associée à l'objet lecteur.

sTagSizes

const uint8_t sTagSizes[] = { 0, 1, 2, 4, 2, 4, 6, 8 }

Fonctions

CommonTag

uint64_t CommonTag(
  uint32_t tagNum
)

Génère la représentation API d'une balise TLV de profil commun.

Détails
Paramètres
[in] tagNum
Numéro de tag de profil commun attribué au tag.
Renvoie
Entier de 64 bits représentant le tag.

ContextTag

uint64_t ContextTag(
  uint8_t tagNum
)

Génère la représentation API du tag TLV spécifique au contexte.

Détails
Paramètres
[in] tagNum
Numéro de balise spécifique au contexte attribué à la balise.
Renvoie
Entier de 64 bits représentant le tag.

GetTLVFieldSize

TLVFieldSize GetTLVFieldSize(
  uint8_t type
)

IsContextTag

bool IsContextTag(
  uint64_t tag
)

Renvoie la valeur "true" si la balise fournie est une balise spécifique au contexte.

IsProfileTag

bool IsProfileTag(
  uint64_t tag
)

Renvoie "true" si la balise fournie est une balise spécifique au profil.

IsSpecialTag

bool IsSpecialTag(
  uint64_t tag
)

IsValidTLVType

bool IsValidTLVType(
  uint8_t type
)

Renvoie "true" si le type TLV spécifié est valide.

Détails
Renvoie
true si le type TLV spécifié est valide ; sinon false.

ProfileIdFromTag

uint32_t ProfileIdFromTag(
  uint64_t tag
)

Renvoie l'ID de profil à partir d'une balise TLV.

Détails
Paramètres
[in] tag
Représentation dans l'API d'une balise TLV spécifique au profil.
Renvoie
ID du profil.

ProfileNumFromTag

uint16_t ProfileNumFromTag(
  uint64_t tag
)

Renvoie le numéro de profil à partir d'une balise TLV.

Détails
Paramètres
[in] tag
Représentation dans l'API d'une balise TLV spécifique au profil.
Renvoie
Numéro de profil associé.

ProfileTag

uint64_t ProfileTag(
  uint32_t profileId,
  uint32_t tagNum
)

Génère la représentation API d'une balise TLV spécifique à un profil à partir d'un ID et d'un numéro de balise de profil.

Détails
Paramètres
[in] profileId
Identifiant du profil dans lequel le tag est défini.
[in] tagNum
Numéro de tag spécifique au profil attribué à la balise.
Renvoie
Entier de 64 bits représentant le tag.

ProfileTag

uint64_t ProfileTag(
  uint16_t vendorId,
  uint16_t profileNum,
  uint32_t tagNum
)

Génère la représentation API d'une balise TLV spécifique à un profil à partir d'un ID de fournisseur, d'un numéro de profil et d'un numéro de balise.

Détails
Paramètres
[in] vendorId
Identifiant du fournisseur qui a défini la balise.
[in] profileNum
Numéro attribué par le fournisseur pour le profil dans lequel le tag est défini.
[in] tagNum
Numéro de tag spécifique au profil attribué à la balise.
Renvoie
Entier de 64 bits représentant le tag.

TLVFieldSizeToBytes

uint8_t TLVFieldSizeToBytes(
  TLVFieldSize fieldSize
)

TLVTypeHasLength

bool TLVTypeHasLength(
  uint8_t type
)

Renvoie la valeur "true" si le type TLV spécifié implique la présence d'un champ de longueur associé.

Détails
Renvoie
true si le type TLV spécifié implique la présence d'un champ de longueur associé ; sinon false.

TLVTypeHasValue

bool TLVTypeHasValue(
  uint8_t type
)

Renvoie "true" si le type TLV spécifié implique la présence d'un champ de valeur associé.

Détails
Renvoie
true si le type TLV spécifié implique la présence d'un champ de valeur associé ; sinon false.

TLVTypeIsContainer

bool TLVTypeIsContainer(
  uint8_t type
)

Renvoie "true" si le type TLV spécifié est un conteneur.

Détails
Renvoie
true si le type TLV spécifié est un conteneur ; sinon false.

TLVTypeIsString

bool TLVTypeIsString(
  uint8_t type
)

Renvoie "true" si le type TLV spécifié est une chaîne d'octets ou UTF8.

Détails
Renvoie
true si le type TLV spécifié est une chaîne d'octets ou UTF8. sinon false.

TagNumFromTag

uint32_t TagNumFromTag(
  uint64_t tag
)

Renvoie le numéro d'une balise TLV.

Détails
Paramètres
[in] tag
Représentation dans l'API d'une balise TLV spécifique au profil ou au contexte.
Renvoie
Numéro de balise associé.
Voir aussi:
IsProfileTag() et IsContextTag()

VendorIdFromTag

uint16_t VendorIdFromTag(
  uint64_t tag
)

Renvoie l'ID du fournisseur à partir d'une balise TLV.

Détails
Paramètres
[in] tag
Représentation dans l'API d'une balise TLV spécifique au profil.
Renvoie
ID du fournisseur associé.