nl::Weave::TLV

Définitions concernant l'utilisation de données encodées au format TLV Weave

Résumé

Le TLV de Weave est une méthode d'encodage généralisée pour les 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 enum
@73 enum
@74{
  AnonymousTag = kSpecialTagMarker | 0x00000000FFFFFFFFULL
}
enum
@75 enum
TLVCommonProfiles{
  kProfileIdNotSpecified = 0xFFFFFFFF
}
enum
TLVElementType enum
TLVFieldSize enum
TLVTagControl enum
TLVTagFields enum
TLVType enum
É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'auteur.
sTagSizes = { 0, 1, 2, 4, 2, 4, 6, 8 }[]
const uint8_t

distantes

CommonTag(uint32_t tagNum)
uint64_t
Génère la représentation API d'un tag TLV de profil commun.
ContextTag(uint8_t tagNum)
uint64_t
Génère la représentation de l'API pour la balise 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 la valeur "true" si le tag fourni est une balise spécifique au profil.
IsSpecialTag(uint64_t tag)
bool
IsValidTLVType(uint8_t type)
bool
Renvoie la valeur "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'un tag TLV spécifique à un profil à partir d'un ID de profil et d'un numéro de tag.
ProfileTag(uint16_t vendorId, uint16_t profileNum, uint32_t tagNum)
uint64_t
Génère la représentation API d'un tag TLV spécifique à un profil à partir d'un ID de fournisseur, d'un numéro de profil et d'un numéro de tag.
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 la valeur "true" si le type TLV spécifié implique la présence d'un champ de valeur associé.
TLVTypeIsContainer(uint8_t type)
bool
Renvoie la valeur "true" si le type TLV spécifié est un conteneur.
TLVTypeIsString(uint8_t type)
bool
Renvoie la valeur "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 de balise 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 de lecture/rédaction unifiée permettant de modifier, d'ajouter ou de supprimer des éléments avec l'encodage TLV.

nl::Weave::TLV::TLVWriter

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

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 inclut des types et des interfaces pour le débogage et la journalisation des TLV de Weave.

nl::Weave::TLV::Utilities

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

Énumérations

@71

 @71

@73

 @73

@74

 @74
Propriétés
AnonymousTag

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

un élément anonyme).

@75

 @75

TLVCommonProfiles

 TLVCommonProfiles
Propriétés
kProfileIdNotSpecified

Permet d'indiquer l'absence d'ID de profil dans une variable ou un membre.

Cette propriété est pratiquement la même que l'élément kWeaveProfile_NotSpecified défini 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'auteur.

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

Détails
Paramètres
[in] tag
La balise TLV à encoder avec le conteneur ou AnonymousTag si le conteneur doit l'être sans balise. Les valeurs de balise doivent être construites 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 de retour
WEAVE_NO_ERROR
Si la méthode a réussi.
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 a pris fin 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
Le lecteur fourni a rencontré une balise TLV dans un contexte non valide, ou la balise fournie n'est pas valide ou n'est pas appropriée dans le contexte dans lequel le nouveau conteneur est écrit.
WEAVE_ERROR_BUFFER_TOO_SMALL
Si l'écriture de la valeur entraîne le dépassement de 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 }

distantes

CommonTag

uint64_t CommonTag(
  uint32_t tagNum
)

Génère la représentation API d'un tag 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 de l'API pour la balise TLV spécifique au contexte.

Détails
Paramètres
[in] tagNum
Numéro de tag spécifique au contexte attribué au tag.
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 la valeur "true" si le tag fourni est une balise spécifique au profil.

IsSpecialTag

bool IsSpecialTag(
  uint64_t tag
)

IsValidTLVType

bool IsValidTLVType(
  uint8_t type
)

Renvoie la valeur "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 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 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'un tag TLV spécifique à un profil à partir d'un ID de profil et d'un numéro de tag.

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é au tag.
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'un tag TLV spécifique à un profil à partir d'un ID de fournisseur, d'un numéro de profil et d'un numéro de tag.

Détails
Paramètres
[in] vendorId
ID du fournisseur qui a défini la balise.
[in] profileNum
Numéro attribué par le fournisseur au profil dans lequel le tag est défini.
[in] tagNum
Numéro de tag spécifique au profil attribué au tag.
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 la valeur "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 la valeur "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 la valeur "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 de balise d'une balise TLV.

Détails
Paramètres
[in] tag
Représentation API d'une balise TLV spécifique à un profil ou à un contexte.
Renvoie
Numéro de tag 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 API d'une balise TLV spécifique au profil.
Renvoie
ID du fournisseur associé.