nl::Weave::TLV

Definitionen für die Arbeit mit Daten, die im Weave-TLV codiert sind

Zusammenfassung

Weave TLV ist eine allgemeine Codierungsmethode für einfache strukturierte Daten. Es weist viele Eigenschaften des gängigen JSON-Serialisierungsformats auf und ist gleichzeitig wesentlich kompakter.

Aufzählungen

@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
Eine Aufzählung, in der der Typ eines TLV-Elements identifiziert wird.

Variablen

kWeaveTLVCopyChunkSize = 16
const size_t
Kopiert ein TLV-Element aus einem Leserobjekt in den Autor.
sTagSizes = { 0, 1, 2, 4, 2, 4, 6, 8 }[]
const uint8_t

Funktionen

CommonTag(uint32_t tagNum)
uint64_t
Generiert die API-Darstellung eines TLV-Tags für allgemeine Profile.
ContextTag(uint8_t tagNum)
uint64_t
Generiert die API-Darstellung für kontextspezifische TLV-Tags.
GetTLVFieldSize(uint8_t type)
TLVFieldSize
IsContextTag(uint64_t tag)
bool
Gibt "true" zurück, wenn das bereitgestellte Tag ein kontextspezifisches Tag ist.
IsProfileTag(uint64_t tag)
bool
Gibt "true" für das bereitgestellte Tag zurück, wenn es sich um ein profilspezifisches Tag handelt.
IsSpecialTag(uint64_t tag)
bool
IsValidTLVType(uint8_t type)
bool
Gibt „true“ zurück, wenn der angegebene TLV-Typ gültig ist.
ProfileIdFromTag(uint64_t tag)
uint32_t
Gibt die Profil-ID aus einem TLV-Tag zurück.
ProfileNumFromTag(uint64_t tag)
uint16_t
Gibt die Profilnummer aus einem TLV-Tag zurück.
ProfileTag(uint32_t profileId, uint32_t tagNum)
uint64_t
Erzeugt die API-Darstellung eines profilspezifischen TLV-Tags aus einer Profil-ID und einer Tag-Nummer.
ProfileTag(uint16_t vendorId, uint16_t profileNum, uint32_t tagNum)
uint64_t
Generiert die API-Darstellung eines profilspezifischen TLV-Tags aus einer Anbieter-ID, Profilnummer und Tag-Nummer.
TLVFieldSizeToBytes(TLVFieldSize fieldSize)
uint8_t
TLVTypeHasLength(uint8_t type)
bool
Gibt "true" zurück, wenn der angegebene TLV-Typ das Vorhandensein eines zugehörigen Längenfelds impliziert.
TLVTypeHasValue(uint8_t type)
bool
Gibt "true" zurück, wenn der angegebene TLV-Typ impliziert, dass ein verknüpftes Wertfeld vorhanden ist.
TLVTypeIsContainer(uint8_t type)
bool
Gibt „true“ zurück, wenn der angegebene TLV-Typ ein Container ist.
TLVTypeIsString(uint8_t type)
bool
Gibt "true" zurück, wenn der angegebene TLV-Typ ein UTF8- oder Bytestring ist.
TagNumFromTag(uint64_t tag)
uint32_t
Gibt die Tag-Nummer eines TLV-Tags zurück.
VendorIdFromTag(uint64_t tag)
uint16_t
Gibt die Anbieter-ID aus einem TLV-Tag zurück.

Klassen

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

Bietet einen speichereffizienten Parser für Daten, die im Weave-TLV-Format codiert sind.

nl::Weave::TLV::TLVUpdater

Bietet eine einheitliche Reader/Writer-Schnittstelle zum Bearbeiten, Hinzufügen und Löschen von Elementen in der TLV-Codierung.

nl::Weave::TLV::TLVWriter

Bietet einen speichereffizienten Encoder zum Schreiben von Daten im Weave-TLV-Format.

nl::Weave::TLV::WeaveCircularTLVBuffer

WeaveCircularTLVBuffer bietet kreisförmigen Speicher für nl::Weave::TLV::TLVWriter und nl::Weave::TLVTLVReader.

Namespaces

nl::Weave::TLV::Debug

Dieser Namespace enthält Typen und Schnittstellen für das Debugging und das Logging von Weave TLV.

nl::Weave::TLV::Utilities

Dieser Namespace enthält Typen und Dienstschnittstellen für die Verwaltung und Arbeit mit Weave TLV.

Aufzählungen

@71

 @71

@73

 @73

@74

 @74
Attribute
AnonymousTag

Ein Wert, der ein TLV-Element angibt, das kein Tag hat (d.h.

anonymes Element).

@75

 @75

TLVCommonProfiles

 TLVCommonProfiles
Attribute
kProfileIdNotSpecified

Wird verwendet, um anzuzeigen, dass keine Profil-ID in einer Variablen oder einem Mitglied vorhanden ist.

Dies entspricht im Grunde dem Wert für kWeaveProfile_NotRequested, der in WeaveProfiles.h definiert ist.

TLVElementType

 TLVElementType

TLVFieldSize

 TLVFieldSize

TLVTagControl

 TLVTagControl

TLVTagFields

 TLVTagFields

TLVType

 TLVType

Eine Aufzählung, in der der Typ eines TLV-Elements identifiziert wird.

Variablen

kWeaveTLVCopyChunkSize

const size_t kWeaveTLVCopyChunkSize = 16

Kopiert ein TLV-Element aus einem Leserobjekt in den Autor.

Die CopyElement()-Methode codiert ein neues TLV-Element, dessen Typ und Wert aus einem TLVReader-Objekt stammen. Beim Aufruf der Methode wird erwartet, dass das bereitgestellte Reader-Objekt auf dem TLV-Quellelement positioniert wird. Das neu codierte Element hat denselben Typ und denselben Inhalt wie der Eingabecontainer, das Tag wird jedoch auf das angegebene Argument festgelegt. Wenn das angegebene Element ein TLV-Container (Struktur, Array oder Pfad) ist, wird der gesamte Inhalt des Containers kopiert.

Details
Parameter
[in] tag
Das TLV-Tag, das mit dem Container codiert werden soll, oder AnonymousTag, wenn der Container ohne Tag codiert werden soll. Tag-Werte sollten mit einer der Tag-Definitionsfunktionen ProfileTag(), ContextTag() oder CommonTag() erstellt werden.
[in] reader
Ein Verweis auf ein TLVReader-Objekt, das ein vorcodiertes TLV-Element identifiziert, dessen Typ und Wert kopiert werden sollen.
Rückgabewerte
WEAVE_NO_ERROR
Wenn die Methode erfolgreich war.
WEAVE_ERROR_INCORRECT_STATE
Wenn sich das bereitgestellte Lesegerät nicht in einem Element befindet.
WEAVE_ERROR_TLV_CONTAINER_OPEN
Wenn ein Container-Writer für den aktuellen Writer geöffnet und noch nicht geschlossen wurde.
WEAVE_ERROR_TLV_UNDERRUN
Wenn die zugrunde liegende TLV-Codierung, die dem bereitgestellten Lesegerät zugeordnet ist, vorzeitig beendet wurde.
WEAVE_ERROR_INVALID_TLV_ELEMENT
Wenn das bereitgestellte Lesegerät einen ungültigen oder nicht unterstützten TLV-Elementtyp festgestellt hat.
WEAVE_ERROR_INVALID_TLV_TAG
Wenn der bereitgestellte Reader ein TLV-Tag in einem ungültigen Kontext gefunden hat oder wenn das bereitgestellte Tag in dem Kontext, in dem der neue Container geschrieben wird, ungültig oder unangemessen ist.
WEAVE_ERROR_BUFFER_TOO_SMALL
Beim Schreiben würde der Wert das Limit für die maximale Anzahl von Byte überschreiten, die bei der Initialisierung des Autors angegeben wurde.
WEAVE_ERROR_NO_MEMORY
Wenn das Zuweisen eines Ausgabepuffers aufgrund von zu wenig Arbeitsspeicher fehlgeschlagen ist.
other
Andere Weave- oder plattformspezifische Fehler, die von der konfigurierten GetNewBuffer()- oder FinalizeBuffer()-Funktion oder der GetNextBuffer()-Funktion, die mit dem Reader-Objekt verknüpft ist, zurückgegeben werden.

sTagSizes

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

Funktionen

CommonTag

uint64_t CommonTag(
  uint32_t tagNum
)

Generiert die API-Darstellung eines TLV-Tags für allgemeine Profile.

Details
Parameter
[in] tagNum
Die allgemeine dem Tag zugewiesene Profil-Tag-Nummer.
Rückgabe
Eine 64-Bit-Ganzzahl, die das Tag darstellt.

ContextTag

uint64_t ContextTag(
  uint8_t tagNum
)

Generiert die API-Darstellung für kontextspezifische TLV-Tags.

Details
Parameter
[in] tagNum
Die kontextspezifische Tag-Nummer, die dem Tag zugewiesen ist.
Rückgabe
Eine 64-Bit-Ganzzahl, die das Tag darstellt.

GetTLVFieldSize

TLVFieldSize GetTLVFieldSize(
  uint8_t type
)

IsContextTag

bool IsContextTag(
  uint64_t tag
)

Gibt "true" zurück, wenn das bereitgestellte Tag ein kontextspezifisches Tag ist.

IsProfileTag

bool IsProfileTag(
  uint64_t tag
)

Gibt "true" für das bereitgestellte Tag zurück, wenn es sich um ein profilspezifisches Tag handelt.

IsSpecialTag

bool IsSpecialTag(
  uint64_t tag
)

IsValidTLVType

bool IsValidTLVType(
  uint8_t type
)

Gibt „true“ zurück, wenn der angegebene TLV-Typ gültig ist.

Details
Rückgabe
true, wenn der angegebene TLV-Typ gültig ist andernfalls false.

ProfileIdFromTag

uint32_t ProfileIdFromTag(
  uint64_t tag
)

Gibt die Profil-ID aus einem TLV-Tag zurück.

Details
Parameter
[in] tag
Die API-Darstellung eines profilspezifischen TLV-Tags.
Rückgabe
Die Profil-ID.

ProfileNumFromTag

uint16_t ProfileNumFromTag(
  uint64_t tag
)

Gibt die Profilnummer aus einem TLV-Tag zurück.

Details
Parameter
[in] tag
Die API-Darstellung eines profilspezifischen TLV-Tags.
Rückgabe
Die zugehörige Profilnummer.

ProfileTag

uint64_t ProfileTag(
  uint32_t profileId,
  uint32_t tagNum
)

Erzeugt die API-Darstellung eines profilspezifischen TLV-Tags aus einer Profil-ID und einer Tag-Nummer.

Details
Parameter
[in] profileId
Die ID des Profils, in dem das Tag definiert ist.
[in] tagNum
Die profilspezifische Tag-Nummer, die dem Tag zugewiesen ist.
Rückgabe
Eine 64-Bit-Ganzzahl, die das Tag darstellt.

ProfileTag

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

Erzeugt die API-Darstellung eines profilspezifischen TLV-Tags aus einer Anbieter-ID, Profilnummer und Tag-Nummer.

Details
Parameter
[in] vendorId
Die ID des Anbieters, der das Tag definiert hat.
[in] profileNum
Die vom Anbieter zugewiesene Nummer für das Profil, in dem das Tag definiert ist.
[in] tagNum
Die profilspezifische Tag-Nummer, die dem Tag zugewiesen ist.
Rückgabe
Eine 64-Bit-Ganzzahl, die das Tag darstellt.

TLVFieldSizeToBytes

uint8_t TLVFieldSizeToBytes(
  TLVFieldSize fieldSize
)

TLVTypeHasLength

bool TLVTypeHasLength(
  uint8_t type
)

Gibt "true" zurück, wenn der angegebene TLV-Typ das Vorhandensein eines zugehörigen Längenfelds impliziert.

Details
Rückgabe
true, wenn der angegebene TLV-Typ das Vorhandensein eines zugehörigen Längenfelds impliziert; andernfalls false.

TLVTypeHasValue

bool TLVTypeHasValue(
  uint8_t type
)

Gibt "true" zurück, wenn der angegebene TLV-Typ das Vorhandensein eines verknüpften Wertfelds impliziert.

Details
Rückgabe
true, wenn der angegebene TLV-Typ das Vorhandensein eines verknüpften Wertfelds impliziert; andernfalls false.

TLVTypeIsContainer

bool TLVTypeIsContainer(
  uint8_t type
)

Gibt „true“ zurück, wenn der angegebene TLV-Typ ein Container ist.

Details
Rückgabe
true, wenn der angegebene TLV-Typ ein Container ist andernfalls false.

TLVTypeIsString

bool TLVTypeIsString(
  uint8_t type
)

Gibt "true" zurück, wenn der angegebene TLV-Typ ein UTF8- oder Bytestring ist.

Details
Rückgabe
true, wenn der angegebene TLV-Typ ein UTF8- oder Bytestring ist andernfalls false.

TagNumFromTag

uint32_t TagNumFromTag(
  uint64_t tag
)

Gibt die Tag-Nummer eines TLV-Tags zurück.

Details
Parameter
[in] tag
Die API-Darstellung eines profilspezifischen oder kontextspezifischen TLV-Tags.
Rückgabe
Die zugehörige Tag-Nummer.
Siehe auch:
IsProfileTag() und IsContextTag()

VendorIdFromTag

uint16_t VendorIdFromTag(
  uint64_t tag
)

Gibt die Anbieter-ID aus einem TLV-Tag zurück.

Details
Parameter
[in] tag
Die API-Darstellung eines profilspezifischen TLV-Tags.
Rückgabe
Die zugehörige Anbieter-ID.