nl::Weave::TLV

Definizioni per lavorare con dati codificati nel formato Weave TLV.

Riepilogo

Weave TLV è un metodo di codifica generalizzato per dati strutturati semplici. Condivide molte proprietà con il formato di serializzazione JSON di uso comune, pur essendo notevolmente più compatto.

Enumerazioni

@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
Un'enumerazione che identifica il tipo di un elemento TLV.

Variabili

kWeaveTLVCopyChunkSize = 16
const size_t
Copia un elemento TLV da un oggetto reader nell'autore.
sTagSizes = { 0, 1, 2, 4, 2, 4, 6, 8 }[]
const uint8_t

Funzioni

CommonTag(uint32_t tagNum)
uint64_t
Genera la rappresentazione API di un tag TLV del profilo comune.
ContextTag(uint8_t tagNum)
uint64_t
Genera la rappresentazione API per un tag TLV specifico del contesto.
GetTLVFieldSize(uint8_t type)
TLVFieldSize
IsContextTag(uint64_t tag)
bool
Restituisce true se il tag fornito è un tag specifico del contesto.
IsProfileTag(uint64_t tag)
bool
Restituisce true se il tag fornito è un tag specifico per il profilo.
IsSpecialTag(uint64_t tag)
bool
IsValidTLVType(uint8_t type)
bool
Restituisce true se il tipo TLV specificato è valido.
ProfileIdFromTag(uint64_t tag)
uint32_t
Restituisce l'ID profilo da un tag TLV.
ProfileNumFromTag(uint64_t tag)
uint16_t
Restituisce il numero di profilo da un tag TLV.
ProfileTag(uint32_t profileId, uint32_t tagNum)
uint64_t
Genera la rappresentazione API di un tag TLV specifico del profilo da un ID e un numero di tag profilo.
ProfileTag(uint16_t vendorId, uint16_t profileNum, uint32_t tagNum)
uint64_t
Genera la rappresentazione API di un tag TLV specifico del profilo da un ID fornitore, un numero di profilo e un numero di tag.
TLVFieldSizeToBytes(TLVFieldSize fieldSize)
uint8_t
TLVTypeHasLength(uint8_t type)
bool
Restituisce true se il tipo TLV specificato implica la presenza di un campo length associato.
TLVTypeHasValue(uint8_t type)
bool
Restituisce true se il tipo TLV specificato implica la presenza di un campo valore associato.
TLVTypeIsContainer(uint8_t type)
bool
Restituisce true se il tipo TLV specificato è un container.
TLVTypeIsString(uint8_t type)
bool
Restituisce true se il tipo TLV specificato è una stringa di byte o UTF8.
TagNumFromTag(uint64_t tag)
uint32_t
Restituisce il numero di tag da un tag TLV.
VendorIdFromTag(uint64_t tag)
uint16_t
Restituisce l'ID del fornitore da un tag TLV.

Corsi

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

Fornisce un parser efficiente dalla memoria per i dati codificati nel formato Weave TLV.

nl::Weave::TLV::TLVUpdater

Fornisce un'interfaccia di lettura/scrittura unificata per la modifica, l'aggiunta o l'eliminazione di elementi nella codifica TLV.

nl::Weave::TLV::TLVWriter

Fornisce un codificatore a elevata efficienza di memoria per la scrittura di dati in formato Weave TLV.

nl::Weave::TLV::WeaveCircularTLVBuffer

WeaveCircularTLVBuffer fornisce uno spazio di archiviazione circolare per nl::Weave::TLV::TLVWriter e nl::Weave::TLVTLVReader.

Spazi dei nomi

nl::Weave::TLV::Debug

Questo spazio dei nomi include tipi e interfacce per il debug e il logging di Weave TLV.

nl::Weave::TLV::Utilities

Questo spazio dei nomi include tipi e interfacce di utilità per la gestione e l'utilizzo di Weave TLV.

Enumerazioni

@71

 @71

@73

 @73

@74

 @74
Proprietà
AnonymousTag

Un valore che indica un elemento TLV privo di tag (ad es.

un elemento anonimo).

@75

 @75

TLVCommonProfiles

 TLVCommonProfiles
Proprietà
kProfileIdNotSpecified

Utilizzato per indicare l'assenza di un ID profilo in una variabile o in un membro.

Essenzialmente uguale a kWeaveProfile_NotSpecified definito in WeaveProfiles.h

TLVElementType

 TLVElementType

TLVFieldSize

 TLVFieldSize

TLVTagControl

 TLVTagControl

TLVTagFields

 TLVTagFields

TLVType

 TLVType

Un'enumerazione che identifica il tipo di un elemento TLV.

Variabili

kWeaveTLVCopyChunkSize

const size_t kWeaveTLVCopyChunkSize = 16

Copia un elemento TLV da un oggetto reader nell'autore.

Il metodo CopyElement() codifica un nuovo elemento TLV il cui tipo e valore derivano da un oggetto TLVReader. Quando il metodo viene chiamato, l'oggetto reader fornito dovrebbe essere posizionato sull'elemento TLV di origine. L'elemento appena codificato avrà lo stesso tipo e lo stesso contenuto del contenitore di input, ma il tag verrà impostato sull'argomento specificato. Se l'elemento fornito è un container TLV (struttura, array o percorso), verranno copiati l'intero contenuto del container.

Dettagli
Parametri
[in] tag
Il tag TLV da codificare con il contenitore o AnonymousTag se il contenitore deve essere codificato senza tag. I valori tag devono essere costruiti con una delle funzioni di definizione dei tag ProfileTag(), ContextTag() o CommonTag().
[in] reader
Un riferimento a un oggetto TLVReader che identifica un elemento TLV precodificato di cui tipo e valore devono essere copiati.
Valori restituiti
WEAVE_NO_ERROR
Se il metodo ha esito positivo.
WEAVE_ERROR_INCORRECT_STATE
Se il lettore fornito non è posizionato su un elemento.
WEAVE_ERROR_TLV_CONTAINER_OPEN
Se un writer di container è stato aperto nel writer attuale, ma non ancora chiuso.
WEAVE_ERROR_TLV_UNDERRUN
Se la codifica TLV sottostante associata al lettore fornito è terminata prematuramente.
WEAVE_ERROR_INVALID_TLV_ELEMENT
Se il lettore fornito ha riscontrato un tipo di elemento TLV non valido o non supportato.
WEAVE_ERROR_INVALID_TLV_TAG
Se il lettore fornito ha riscontrato un tag TLV in un contesto non valido o se il tag fornito non è valido o inappropriato nel contesto in cui viene scritto il nuovo contenitore.
WEAVE_ERROR_BUFFER_TOO_SMALL
Se scrivendo il valore il valore supererebbe il limite massimo di byte specificati al momento dell'inizializzazione del writer,
WEAVE_ERROR_NO_MEMORY
Se un tentativo di allocare un buffer di output non è riuscito per mancanza di memoria.
other
Altri errori Weave o specifici della piattaforma restituiti dalle funzioni GetNewBuffer() o FinalizeBuffer() configurate o dalla funzione GetNextBuffer() associata all'oggetto reader.

sTagSizes

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

Funzioni

CommonTag

uint64_t CommonTag(
  uint32_t tagNum
)

Genera la rappresentazione API di un tag TLV del profilo comune.

Dettagli
Parametri
[in] tagNum
Il numero del tag profilo comune assegnato al tag.
Restituisce
Un numero intero a 64 bit che rappresenta il tag.

ContextTag

uint64_t ContextTag(
  uint8_t tagNum
)

Genera la rappresentazione API per un tag TLV specifico del contesto.

Dettagli
Parametri
[in] tagNum
Il numero di tag specifico del contesto assegnato al tag.
Restituisce
Un numero intero a 64 bit che rappresenta il tag.

GetTLVFieldSize

TLVFieldSize GetTLVFieldSize(
  uint8_t type
)

IsContextTag

bool IsContextTag(
  uint64_t tag
)

Restituisce true se il tag fornito è un tag specifico del contesto.

IsProfileTag

bool IsProfileTag(
  uint64_t tag
)

Restituisce true se il tag fornito è un tag specifico per il profilo.

IsSpecialTag

bool IsSpecialTag(
  uint64_t tag
)

IsValidTLVType

bool IsValidTLVType(
  uint8_t type
)

Restituisce true se il tipo TLV specificato è valido.

Dettagli
Restituisce
true se il tipo TLV specificato è valido; altrimenti false.

ProfileIdFromTag

uint32_t ProfileIdFromTag(
  uint64_t tag
)

Restituisce l'ID profilo da un tag TLV.

Dettagli
Parametri
[in] tag
La rappresentazione API di un tag TLV specifico del profilo.
Restituisce
L'ID del profilo.

ProfileNumFromTag

uint16_t ProfileNumFromTag(
  uint64_t tag
)

Restituisce il numero di profilo da un tag TLV.

Dettagli
Parametri
[in] tag
La rappresentazione API di un tag TLV specifico del profilo.
Restituisce
Il numero del profilo associato.

ProfileTag

uint64_t ProfileTag(
  uint32_t profileId,
  uint32_t tagNum
)

Genera la rappresentazione API di un tag TLV specifico del profilo da un ID e un numero di tag profilo.

Dettagli
Parametri
[in] profileId
L'ID del profilo all'interno del quale è definito il tag.
[in] tagNum
Il numero di tag specifico del profilo assegnato al tag.
Restituisce
Un numero intero a 64 bit che rappresenta il tag.

ProfileTag

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

Genera la rappresentazione API di un tag TLV specifico del profilo da un ID fornitore, un numero di profilo e un numero di tag.

Dettagli
Parametri
[in] vendorId
L'ID del fornitore che ha definito il tag.
[in] profileNum
Il numero assegnato dal fornitore per il profilo all'interno del quale è definito il tag.
[in] tagNum
Il numero di tag specifico del profilo assegnato al tag.
Restituisce
Un numero intero a 64 bit che rappresenta il tag.

TLVFieldSizeToBytes

uint8_t TLVFieldSizeToBytes(
  TLVFieldSize fieldSize
)

TLVTypeHasLength

bool TLVTypeHasLength(
  uint8_t type
)

Restituisce true se il tipo TLV specificato implica la presenza di un campo length associato.

Dettagli
Restituisce
true se il tipo TLV specificato implica la presenza di un campo length associato; altrimenti false.

TLVTypeHasValue

bool TLVTypeHasValue(
  uint8_t type
)

Restituisce true se il tipo TLV specificato implica la presenza di un campo valore associato.

Dettagli
Restituisce
true se il tipo TLV specificato implica la presenza di un campo valore associato; altrimenti false.

TLVTypeIsContainer

bool TLVTypeIsContainer(
  uint8_t type
)

Restituisce true se il tipo TLV specificato è un container.

Dettagli
Restituisce
true se il tipo TLV specificato è un container; altrimenti false.

TLVTypeIsString

bool TLVTypeIsString(
  uint8_t type
)

Restituisce true se il tipo TLV specificato è una stringa di byte o UTF8.

Dettagli
Restituisce
true se il tipo TLV specificato è una stringa di byte o UTF8; altrimenti false.

TagNumFromTag

uint32_t TagNumFromTag(
  uint64_t tag
)

Restituisce il numero di tag da un tag TLV.

Dettagli
Parametri
[in] tag
La rappresentazione API di un tag TLV specifico del profilo o del contesto.
Restituisce
Il numero di tag associato.
Vedi anche:
IsProfileTag() e IsContextTag()

VendorIdFromTag

uint16_t VendorIdFromTag(
  uint64_t tag
)

Restituisce l'ID del fornitore da un tag TLV.

Dettagli
Parametri
[in] tag
La rappresentazione API di un tag TLV specifico del profilo.
Restituisce
L'ID del fornitore associato.