nl::Weave::TLV::TLVWriter

#include <src/lib/core/WeaveTLV.h>

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

Zusammenfassung

TLVWriter implementiert einen Nur-Forward-Stream-Encoder für Weave TLV-Daten. Anwendungen schreiben Daten in eine Codierung, indem sie eine der Put()-Methoden des Autors aufrufen und die zugehörigen Tag- und Wertinformationen nach Bedarf übergeben. In ähnlicher Weise können Anwendungen TLV-Containertypen (Strukturen, Arrays oder Pfade) codieren, indem die OpenContainer()- oder EnterContainer()-Methoden des Autors aufgerufen werden.

Ein TLVWriter-Objekt kann Daten direkt in einen festen Ausgabepuffer oder in eine Kette aus einem oder mehreren PacketBuffer-Objekten schreiben. Darüber hinaus können Anwendungen ihre eigenen GetNewBuffer- und FinalizeBuffer-Funktionen bereitstellen, um die Ausgabe an ein beliebiges Ziel zu leiten, z.B. Socket oder Ereigniswarteschlange verwendet.

Übernahme

Direkte bekannte abgeleitete Klassen: nl::Weave::TLV::CircularTLVWriter

Geschützte Typen

@72{
  kEndOfContainerMarkerSize = 1
}
enum

Öffentliche Typen

FinalizeBufferFunct)(TLVWriter &writer, uintptr_t bufHandle, uint8_t *bufStart, uint32_t bufLen) WEAVE_ERROR(*
Eine Funktion, mit der die Ausgabe eines TLVWriter-Objekts finalisiert wird.
GetNewBufferFunct)(TLVWriter &writer, uintptr_t &bufHandle, uint8_t *&bufStart, uint32_t &bufLen) WEAVE_ERROR(*
Eine Funktion, die einem TLVWriter neuen Pufferbereich für die Ausgabe zur Verfügung stellt.

Öffentliche Attribute

AppData
void *
Ein Zeigerfeld, das für anwendungsspezifische Daten verwendet werden kann.
FinalizeBuffer
Ein Zeiger auf eine Funktion, die aufgerufen wird, wenn der TLVWriter abgeschlossen ist.
GetNewBuffer
Ein Zeiger auf eine Funktion, die einem TLVWriter neuen Pufferbereich für die Ausgabe zur Verfügung stellt.
ImplicitProfileId
uint32_t
Die Profil-ID von Tags, die in impliziter Form codiert werden sollen.

Geschützte Attribute

mBufHandle
uintptr_t
mBufStart
uint8_t *
mContainerType
mLenWritten
uint32_t
mMaxLen
uint32_t
mRemainingLen
uint32_t
mWritePoint
uint8_t *

Öffentliche Funktionen

CloseContainer(TLVWriter & containerWriter)
Schließt das Schreiben eines TLV-Containers nach einem Aufruf von OpenContainer() ab.
ContinuePutBytes(const uint8_t *buf, uint32_t len)
Codiert einen TLV-Bytestringwert.
CopyContainer(TLVReader & container)
Kopiert ein TLV-Containerelement aus dem TLVReader-Objekt.
CopyContainer(uint64_t tag, TLVReader & container)
Codiert ein TLV-Containerelement aus einem vorab codierten Satz von Mitgliedselementen.
CopyContainer(uint64_t tag, const uint8_t *encodedContainer, uint16_t encodedContainerLen)
Codiert ein TLV-Containerelement, das Mitgliederelemente aus einem vorab codierten Container enthält.
CopyElement(TLVReader & reader)
Kopiert ein TLV-Element aus einem Leserobjekt in den Autor.
CopyElement(uint64_t tag, TLVReader & reader)
EndContainer(TLVType outerContainerType)
Führt die Codierung eines TLV-Containerelements durch.
Finalize(void)
Schließen Sie das Schreiben einer TLV-Codierung ab.
GetContainerType(void) const
Gibt den Containertyp zurück, in den TLVWriter derzeit schreibt.
GetLengthWritten(void)
uint32_t
Gibt die Gesamtzahl der Byte zurück, die seit der Initialisierung des Autors geschrieben wurden.
Init(uint8_t *buf, uint32_t maxLen)
void
Initialisiert ein TLVWriter-Objekt, um in einen einzelnen Ausgabepuffer zu schreiben.
Init(PacketBuffer *buf, uint32_t maxLen)
void
Initialisiert ein TLVWriter-Objekt, um in einen einzelnen PacketBuffer zu schreiben.
Init(PacketBuffer *buf, uint32_t maxLen, bool allowDiscontiguousBuffers)
void
Initialisiert ein TLVWriter-Objekt, um in einen oder mehrere PacketBuffers zu schreiben.
InitMalloced(uint8_t *& outBuf, uint32_t initialBufSize, uint32_t maxLen)
void
Initialisiert ein TLVWriter-Objekt, um in einen dynamischen Zwischenspeicher zu schreiben.
OpenContainer(uint64_t tag, TLVType containerType, TLVWriter & containerWriter)
Initialisiert ein neues TLVWriter-Objekt zum Schreiben der Mitglieder eines TLV-Containerelements.
Put(uint64_t tag, int8_t v)
Codiert einen TLV-Ganzzahlwert mit Vorzeichen.
Put(uint64_t tag, int8_t v, bool preserveSize)
Codiert einen TLV-Ganzzahlwert mit Vorzeichen.
Put(uint64_t tag, int16_t v)
Put(uint64_t tag, int16_t v, bool preserveSize)
Put(uint64_t tag, int32_t v)
Put(uint64_t tag, int32_t v, bool preserveSize)
Put(uint64_t tag, int64_t v)
Put(uint64_t tag, int64_t v, bool preserveSize)
Put(uint64_t tag, uint8_t v)
Codiert einen TLV-Ganzzahlwert ohne Vorzeichen.
Put(uint64_t tag, uint8_t v, bool preserveSize)
Codiert einen TLV-Ganzzahlwert ohne Vorzeichen.
Put(uint64_t tag, uint16_t v)
Put(uint64_t tag, uint16_t v, bool preserveSize)
Put(uint64_t tag, uint32_t v)
Put(uint64_t tag, uint32_t v, bool preserveSize)
Put(uint64_t tag, uint64_t v)
Put(uint64_t tag, uint64_t v, bool preserveSize)
Put(uint64_t tag, float v)
Put(uint64_t tag, double v)
Codiert einen TLV-Gleitkommawert.
PutBoolean(uint64_t tag, bool v)
Codiert einen booleschen TLV-Wert.
PutBytes(uint64_t tag, const uint8_t *buf, uint32_t len)
Codiert einen TLV-Bytestringwert.
PutNull(uint64_t tag)
Codiert einen TLV-Nullwert.
PutPreEncodedContainer(uint64_t tag, TLVType containerType, const uint8_t *data, uint32_t dataLen)
Codiert ein TLV-Containerelement aus einem vorab codierten Satz von Mitgliedselementen.
PutString(uint64_t tag, const char *buf)
Codiert einen TLV-UTF8-Stringwert.
PutString(uint64_t tag, const char *buf, uint32_t len)
Codiert einen TLV-UTF8-Stringwert.
PutStringF(uint64_t tag, const char *fmt, ...)
Codieren Sie die Stringausgabe entsprechend dem Format im TLV-Element.
StartContainer(uint64_t tag, TLVType containerType, TLVType & outerContainerType)
Beginnt die Codierung eines neuen TLV-Containerelements.
StartPutBytes(uint64_t tag, uint32_t totalLen)
Codiert einen TLV-Bytestring in mehreren Blöcken.
VPutStringF(uint64_t tag, const char *fmt, va_list ap)
Codieren Sie die Stringausgabe entsprechend dem Format im TLV-Element.

Öffentliche statische Funktionen

FinalizePacketBuffer(TLVWriter & writer, uintptr_t bufHandle, uint8_t *bufStart, uint32_t dataLen)
Implementierung der Funktion TLVWriter FinalizeBuffer zum Schreiben in eine Kette von PacketBuffers
GetNewBuffer_Malloced(TLVWriter & writer, uintptr_t & bufHandle, uint8_t *& bufStart, uint32_t & bufLen)
Implementierung der Funktion TLVWriter GetNewBuffer zum Schreiben in einen dynamischen Zwischenspeicher
GetNewPacketBuffer(TLVWriter & writer, uintptr_t & bufHandle, uint8_t *& bufStart, uint32_t & bufLen)
Implementierung der Funktion TLVWriter GetNewBuffer zum Schreiben in eine Kette von PacketBuffers

Geschützte Funktionen

IsCloseContainerReserved(void) const
bool
Bestimmen Sie, ob der Container Platz für das CloseContainer-Symbol zum Starten / Öffnen des Containers reservieren soll.
IsContainerOpen(void) const
bool
SetCloseContainerReserved(bool aCloseContainerReserved)
void
Legen Sie fest, ob der Container beim Starten / Öffnen des Containers Platz für das CloseContainer-Symbol reservieren soll.
SetContainerOpen(bool aContainerOpen)
void
WriteData(const uint8_t *p, uint32_t len)
WriteElementHead(TLVElementType elemType, uint64_t tag, uint64_t lenOrVal)
WriteElementWithData(TLVType type, uint64_t tag, const uint8_t *data, uint32_t dataLen)

Geschützte Typen

@72

 @72

Öffentliche Typen

FinalizeBufferFunct

WEAVE_ERROR(* FinalizeBufferFunct)(TLVWriter &writer, uintptr_t bufHandle, uint8_t *bufStart, uint32_t bufLen)

Eine Funktion, mit der die Ausgabe eines TLVWriter-Objekts finalisiert wird.

Funktionen dieses Typs werden aufgerufen, wenn die Methode Finalize() eines TLVWriter-Elements aufgerufen wird. Es wird erwartet, dass die Funktion alle erforderlichen Bereinigungen oder Finalisierungen im Zusammenhang mit der Nutzung der Ausgabe des Schreibobjekts durchführt. Beispiele dafür sind das Aufzeichnen der endgültigen Länge der Codierung oder das Schließen einer Dateibeschreibung.

Details
Parameter
[in] writer
Ein Verweis auf das TLVWriter-Objekt, das abgeschlossen wird.
[in,out] bufHandle
Ein uintptr_t-Kontextwert, der durch vorherige Aufrufe der Funktion GetNewBuffer festgelegt wurde.
[in,out] bufStart
Ein Zeiger zum Anfang des aktuellen (und letzten) Ausgabepuffers.
[in,out] bufLen
Die Anzahl der im Zwischenspeicher enthaltenen Byte, auf die bufStart verweist.
Rückgabewerte
WEAVE_NO_ERROR
Ob der Abschluss erfolgreich war.
other
Andere Weave- oder plattformspezifische Fehlercodes, die darauf hinweisen, dass beim Abschluss ein Fehler aufgetreten ist.

GetNewBufferFunct

WEAVE_ERROR(* GetNewBufferFunct)(TLVWriter &writer, uintptr_t &bufHandle, uint8_t *&bufStart, uint32_t &bufLen)

Eine Funktion, die einem TLVWriter neuen Pufferbereich für die Ausgabe zur Verfügung stellt.

Funktionen dieses Typs werden verwendet, um einen neuen Pufferbereich vorzubereiten, in den ein TLVWriter schreiben kann. Beim Aufruf wird erwartet, dass die Funktion einen Zeiger an einen Speicherort zurückgibt, an den neue Daten geschrieben werden sollen, zusammen mit einer zugehörigen maximalen Länge. Die Funktion kann Schreibraum bereitstellen, indem sie entweder einen neuen Zwischenspeicher für die Daten zuweist oder zuvor geschriebene Daten aus einem vorhandenen Zwischenspeicher löscht.

Details
Parameter
[in] writer
Ein Verweis auf das TLVWriter-Objekt, das einen neuen Pufferbereich anfordert.
[in,out] bufHandle
Ein Verweis auf einen uintptr_t-Wert, mit dem die Funktion Kontextdaten zwischen Aufrufen speichern kann. Dieser Wert wird vor dem ersten Aufruf mit 0 initialisiert.
[in,out] bufStart
Ein Verweis auf einen Datenzeiger. Beim Aufrufen der Funktion zeigt bufStart auf den Anfang des aktuellen Ausgabepuffers. Beim Beenden wird erwartet, dass bufStart auf den Anfang des neuen Ausgabepuffers verweist. Der neue Zeigerwert kann mit dem vorherigen Wert identisch sein (z.B. wenn die Funktion die vorhandenen Daten an eine andere Stelle kopiert hat) oder auf eine völlig neue Position verweisen.
[in,out] bufLen
Ein Verweis auf eine vorzeichenlose Ganzzahl. Bei Eingabe der Funktion enthält bufLen die Bytezahl des nicht genutzten Speicherplatzes im aktuellen Zwischenspeicher. Beim Beenden wird erwartet, dass bufLen die maximale Anzahl von Byte enthält, die in den neuen Ausgabezwischenspeicher geschrieben werden kann.
Rückgabewerte
WEAVE_NO_ERROR
Gibt an, ob die Funktion mehr Puffer für den Autor bereitstellen konnte.
other
Andere Weave- oder plattformspezifische Fehlercodes, die darauf hinweisen, dass ein Fehler aufgetreten ist, der verhindert, dass die Funktion zusätzlichen Pufferspeicher erstellt.

Öffentliche Attribute

AppData

void * AppData

Ein Zeigerfeld, das für anwendungsspezifische Daten verwendet werden kann.

FinalizeBuffer

FinalizeBufferFunct FinalizeBuffer

Ein Zeiger auf eine Funktion, die aufgerufen wird, wenn der TLVWriter abgeschlossen ist.

Ein TLVWriter-Objekt ruft die Funktion FinalizeBuffer jedes Mal auf, wenn seine Finalize()-Methode aufgerufen wird. Anwendungen können den Funktionszeiger vor dem Aufruf von Finalize() setzen. Standardmäßig ist der Zeiger auf NULL gesetzt, was dazu führt, dass die Methode Finalize() auf das Aufrufen der Funktion verzichtet.

Weitere Informationen zur Implementierung einer FinalizeBuffer-Funktion finden Sie in der Typdefinition FinalizeBufferFunct.

GetNewBuffer

GetNewBufferFunct GetNewBuffer

Ein Zeiger auf eine Funktion, die einem TLVWriter neuen Pufferbereich für die Ausgabe zur Verfügung stellt.

Ein TLVWriter-Objekt ruft die GetNewBuffer-Funktion immer dann auf, wenn versucht wird, Daten zu schreiben, die die Größe des aktuellen Ausgabepuffers überschreiten. Bei Festlegung auf NULL (Standardwert) gibt der Autor einen WEAVE_ERROR_NO_MEMORY zurück, wenn die Ausgabedaten den aktuellen Puffer überschreiten.

GetNewBuffer kann jederzeit von einer Anwendung festgelegt werden, wird aber normalerweise gesetzt, wenn der Writer initialisiert wird.

Weitere Informationen zur Implementierung einer GetNewBuffer-Funktion finden Sie in der Typdefinition GetNewBufferFunct.

ImplicitProfileId

uint32_t ImplicitProfileId

Die Profil-ID von Tags, die in impliziter Form codiert werden sollen.

Wenn ein Autor aufgefordert wird, ein neues Element zu codieren, und wenn die Profil-ID des Tags, das mit dem neuen Element verknüpft ist, mit dem Wert des Mitglieds ImplicitProfileId übereinstimmt, codiert der Autor das Tag in impliziter Form und lasst dabei die Profil-ID weg.

Standardmäßig ist das Attribut ImplicitProfileId auf „kProfileIdNotRequested“ festgelegt. Dadurch wird der Autor angewiesen, keine implizit codierten Tags auszugeben. Anwendungen können ImplicitProfileId jederzeit festlegen, um Codierungs-Tags ab dem aktuellen Punkt in der Codierung in impliziter Form zu aktivieren. Die jeweils festzulegende Profil-ID hängt normalerweise vom Kontext der Anwendung oder des gesprochenen Protokolls ab.

Geschützte Attribute

mBufHandle

uintptr_t mBufHandle

mBufStart

uint8_t * mBufStart

mContainerType

TLVType mContainerType

mLenWritten

uint32_t mLenWritten

mMaxLen

uint32_t mMaxLen

mRemainingLen

uint32_t mRemainingLen

mWritePoint

uint8_t * mWritePoint

Öffentliche Funktionen

CloseContainer

WEAVE_ERROR CloseContainer(
  TLVWriter & containerWriter
)

Schließt das Schreiben eines TLV-Containers nach einem Aufruf von OpenContainer() ab.

Die Methode CloseContainer() stellt den Status eines übergeordneten TLVWriter-Objekts nach einem Aufruf von OpenContainer() wieder her. Für jeden Aufruf von OpenContainer()-Anwendungen muss ein entsprechender Aufruf an CloseContainer() erfolgen, wobei an beide Methoden ein Verweis auf denselben Container-Writer übergeben wird.

Wenn CloseContainer() zurückgegeben wird, können Anwendungen weiterhin den übergeordneten Autor verwenden, um zusätzliche TLV-Elemente zu schreiben, die nach dem Containerelement erscheinen. An dieser Stelle sollte der bereitgestellte Container Writer als "nicht initialisiert" betrachtet werden. und dürfen nicht ohne erneute Initialisierung verwendet werden.

Details
Parameter
[in] containerWriter
Ein Verweis auf das TLVWriter-Objekt, das der OpenContainer()-Methode bereitgestellt wurde.
Rückgabewerte
WEAVE_NO_ERROR
Wenn die Methode erfolgreich war.
WEAVE_ERROR_INCORRECT_STATE
Wenn der bereitgestellte Container-Writer nicht im richtigen Status ist.
WEAVE_ERROR_TLV_CONTAINER_OPEN
Wenn ein anderer Container Writer auf dem bereitgestellten Container Writer geöffnet und noch nicht geschlossen wurde.
WEAVE_ERROR_BUFFER_TOO_SMALL
Wenn durch die Codierung des Containers das Limit für die maximale Anzahl von Byte überschritten würde, 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 Funktion GetNewBuffer() oder FinalizeBuffer() zurückgegeben werden.

ContinuePutBytes

WEAVE_ERROR ContinuePutBytes(
  const uint8_t *buf,
  uint32_t len
)

Codiert einen TLV-Bytestringwert.

Sollte mit StartPutBytes verwendet werden.

Details
Parameter
[in] buf
Ein Zeiger auf einen Zwischenspeicher, der den zu codierenden Bytestring enthält.
[in] len
Die Anzahl der zu codierenden Byte.
Rückgabewerte
WEAVE_NO_ERROR
Wenn die Methode erfolgreich war.
WEAVE_ERROR_TLV_CONTAINER_OPEN
Wenn ein Container-Writer für den aktuellen Writer geöffnet und noch nicht geschlossen wurde.
WEAVE_ERROR_INVALID_TLV_TAG
Wenn der angegebene Tag-Wert für den Kontext, in dem der Wert 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 Funktion GetNewBuffer() oder FinalizeBuffer() zurückgegeben werden.

CopyContainer

WEAVE_ERROR CopyContainer(
  TLVReader & container
)

Kopiert ein TLV-Containerelement aus dem TLVReader-Objekt.

CopyContainer() codiert ein neues TLV-Containerelement, indem ein vorab codiertes Containerelement kopiert wird, das sich an der aktuellen Position eines TLVReader-Objekts befindet. Die Methode schreibt das gesamte neue Containerelement in einem Aufruf und kopiert Typ, Tag und Elemente des Containers aus der Quellcodierung. Wenn die Methode zurückgegeben wird, kann das Schreiberobjekt verwendet werden, um zusätzliche TLV-Elemente nach dem Containerelement zu schreiben.

Details
Parameter
[in] container
Ein Verweis auf ein TLVReader-Objekt, das den vorcodierten TLV-Container identifiziert, der kopiert werden soll.
Rückgabewerte
WEAVE_NO_ERROR
Wenn die Methode erfolgreich war.
WEAVE_ERROR_INCORRECT_STATE
Wenn das bereitgestellte Lesegerät nicht auf einem Containerelement positioniert ist.
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 Leser in einem ungültigen Kontext auf ein TLV-Tag gestoßen ist oder wenn das mit dem Quellcontainer verknüpfte Tag für den 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.

CopyContainer

WEAVE_ERROR CopyContainer(
  uint64_t tag,
  TLVReader & container
)

Codiert ein TLV-Containerelement aus einem vorab codierten Satz von Mitgliedselementen.

Die Methode CopyContainer() codiert ein neues TLV-Containerelement (eine Struktur, ein Array oder ein Pfad), das eine Reihe von Mitgliedselementen enthält, die von einem TLVReader-Objekt stammen. Beim Aufruf der Methode wird erwartet, dass das bereitgestellte Reader-Objekt auf einem TLV-Containerelement positioniert wird. Der neu codierte Container hat denselben Typ und dieselben Mitglieder wie der Eingabecontainer. Das Tag für den neuen Container wird als Eingabeparameter angegeben.

Wenn die Methode zurückgegeben wird, kann das Schreiberobjekt verwendet werden, um zusätzliche TLV-Elemente nach dem Containerelement zu schreiben.

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] container
Ein Verweis auf ein TLVReader-Objekt, das einen vorcodierten TLV-Container identifiziert, dessen Typ und Mitglieder kopiert werden sollen.
Rückgabewerte
WEAVE_NO_ERROR
Wenn die Methode erfolgreich war.
WEAVE_ERROR_INCORRECT_STATE
Wenn das bereitgestellte Lesegerät nicht auf einem Containerelement positioniert ist.
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.

CopyContainer

WEAVE_ERROR CopyContainer(
  uint64_t tag,
  const uint8_t *encodedContainer,
  uint16_t encodedContainerLen
)

Codiert ein TLV-Containerelement, das Mitgliederelemente aus einem vorab codierten Container enthält.

Die Methode CopyContainer() codiert ein neues TLV-Containerelement (eine Struktur, ein Array oder ein Pfad), das eine Gruppe von Elementelementen enthält, die aus dem Inhalt eines bereitgestellten vorab codierten Containers stammen. Beim Aufruf der Methode werden die Daten im bereitgestellten Eingabepuffer als TLV-Containerelement geparst und ein neuer Container geschrieben, der denselben Typ und dieselben Mitglieder wie der Eingabecontainer hat. Das Tag für den neuen Container wird als Eingabeparameter angegeben.

Wenn die Methode zurückgegeben wird, kann das Schreiberobjekt verwendet werden, um zusätzliche TLV-Elemente nach dem Containerelement zu schreiben.

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] encodedContainer
Ein Zwischenspeicher mit einem vorcodierten TLV-Container, dessen Typ und Mitglieder kopiert werden sollen.
[in] encodedContainerLen
Die Länge des vorcodierten Containers in Byte.
Rückgabewerte
WEAVE_NO_ERROR
Wenn die Methode erfolgreich war.
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
Ob der codierte Container vorzeitig beendet wurde.
WEAVE_ERROR_INVALID_TLV_ELEMENT
Der codierte Container enthielt einen ungültigen oder nicht unterstützten TLV-Elementtyp.
WEAVE_ERROR_INVALID_TLV_TAG
Wenn der codierte Container ein TLV-Tag in einem ungültigen Kontext enthielt oder wenn das bereitgestellte Tag für den 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.

CopyElement

WEAVE_ERROR CopyElement(
  TLVReader & reader
)

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

Die Methode CopyElement() codiert ein neues TLV-Element, dessen Typ, Tag 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, Tag und Inhalt wie der Eingabecontainer. Wenn das angegebene Element ein TLV-Container (Struktur, Array oder Pfad) ist, wird der gesamte Inhalt des Containers kopiert.

Details
Parameter
[in] reader
Ein Verweis auf ein TLVReader-Objekt, das ein vorcodiertes TLV-Element identifiziert, das kopiert werden sollte.
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.

CopyElement

WEAVE_ERROR CopyElement(
  uint64_t tag,
  TLVReader & reader
)

EndContainer

WEAVE_ERROR EndContainer(
  TLVType outerContainerType
)

Führt die Codierung eines TLV-Containerelements durch.

Die Methode EndContainer() schließt die Codierung eines TLV-Containerelements ab und stellt den Status eines TLVWrite-Objekts nach einem früheren Aufruf von StartContainer() wieder her. Für jeden Aufruf von StartContainer() müssen Anwendungen einen entsprechenden Aufruf an EndContainer() senden und den vom StartContainer()-Aufruf zurückgegebenen TLVType-Wert übergeben. Wenn EndContainer() zurückgegeben wird, kann das Schreiberobjekt verwendet werden, um zusätzliche TLV-Elemente zu schreiben, die auf das Containerelement folgen.

Details
Parameter
[in] outerContainerType
Der TLVType-Wert, der von der Methode StartContainer() zurückgegeben wurde.
Rückgabewerte
WEAVE_NO_ERROR
Wenn die Methode erfolgreich war.
WEAVE_ERROR_INCORRECT_STATE
Wenn kein entsprechender StartContainer()-Aufruf erfolgt ist.
WEAVE_ERROR_TLV_CONTAINER_OPEN
Wenn ein Container-Writer für den aktuellen Writer geöffnet und noch nicht geschlossen wurde.
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 Funktion GetNewBuffer() oder FinalizeBuffer() zurückgegeben werden.

Abschließen

WEAVE_ERROR Finalize(
  void
)

Schließen Sie das Schreiben einer TLV-Codierung ab.

Mit der Methode Finalize() wird das Schreiben einer TLV-Codierung in den zugrunde liegenden Ausgabezwischenspeicher abgeschlossen. Die Methode muss von der Anwendung aufgerufen werden, bevor sie den Inhalt des Zwischenspeichers verwendet. Finalize() kann nur aufgerufen werden, wenn für den aktuellen Writer keine Container-Writer geöffnet sind. (Siehe OpenContainer()).

Details
Rückgabewerte
WEAVE_NO_ERROR
Ob die Codierung erfolgreich abgeschlossen wurde.
WEAVE_ERROR_TLV_CONTAINER_OPEN
Wenn ein Container-Writer für den aktuellen Writer geöffnet und noch nicht geschlossen wurde.
other
Andere Weave- oder plattformspezifische Fehler, die von der konfigurierten FinalizeBuffer()-Funktion zurückgegeben werden.

GetContainerType

TLVType GetContainerType(
  void
) const 

Gibt den Containertyp zurück, in den TLVWriter derzeit schreibt.

Die Methode GetContainerType() gibt den Typ des TLV-Containers zurück, in den TLVWriter gerade schreibt. Wenn der TLVWriter keine Elemente innerhalb eines Containers schreibt (z.B. wenn auf der äußersten Ebene einer Codierung geschrieben wird), gibt die Methode kTLVType_NotRequested zurück.

Details
Rückgabe
Der TLVType des aktuellen Containers oder kTLVType_NotRequested, wenn TLVWriter keine Elemente in einem Container schreibt.

GetLengthWritten

uint32_t GetLengthWritten(
  void
)

Gibt die Gesamtzahl der Byte zurück, die seit der Initialisierung des Autors geschrieben wurden.

Details
Rückgabe
Gesamtzahl der Byte, die seit der Initialisierung des Autors geschrieben wurden.

Init

void Init(
  uint8_t *buf,
  uint32_t maxLen
)

Initialisiert ein TLVWriter-Objekt, um in einen einzelnen Ausgabepuffer zu schreiben.

Details
Parameter
[in] buf
Ein Zeiger auf den Zwischenspeicher, in den TLV geschrieben werden soll.
[in] maxLen
Die maximale Anzahl von Byte, die in den Ausgabepuffer geschrieben werden sollen.

Init

void Init(
  PacketBuffer *buf,
  uint32_t maxLen
)

Initialisiert ein TLVWriter-Objekt, um in einen einzelnen PacketBuffer zu schreiben.

Der Schreibvorgang beginnt unmittelbar nach dem letzten Byte der vorhandenen Daten im bereitgestellten Zwischenspeicher.

Details
Parameter
[in] buf
Ein Zeiger auf einen PacketBuffer, in den TLV geschrieben werden soll.
[in] maxLen
Die maximale Anzahl von Byte, die in den Ausgabepuffer geschrieben werden sollen.

Init

void Init(
  PacketBuffer *buf,
  uint32_t maxLen,
  bool allowDiscontiguousBuffers
)

Initialisiert ein TLVWriter-Objekt, um in einen oder mehrere PacketBuffers zu schreiben.

Der Schreibvorgang beginnt unmittelbar nach dem letzten Byte der vorhandenen Daten im angegebenen Zwischenspeicher. Wenn allowDiscontiguousBuffers auf „true“ gesetzt ist, werden zusätzliche PacketBuffers zugewiesen und nach Bedarf an den bereitgestellten Zwischenspeicher verkettet, um die Menge der geschriebenen Daten aufzunehmen. Wenn der angegebene Ausgabezwischenspeicher bereits der Anfang einer Pufferkette ist, wird die Ausgabe in die nachfolgenden Puffer in der Kette geschrieben, bevor neue Puffer zugeordnet werden.

Details
Parameter
[in] buf
Ein Zeiger auf einen PacketBuffer, in den TLV-Daten geschrieben werden sollen.
[in] maxLen
Die maximale Anzahl von Byte, die in den oder die Ausgabezwischenspeicher geschrieben werden sollen.
[in] allowDiscontiguousBuffers
Falls wahr, werden Daten in eine Kette von PacketBuffers geschrieben und neue Puffer nach Bedarf zum Speichern der geschriebenen Daten zugewiesen. Bei "false" schlägt das Schreiben mit WEAVE_ERROR_BUFFER_TOO_small fehl, wenn die geschriebenen Daten den verfügbaren Platz im anfänglichen Ausgabepuffer überschreiten.

InitMalloced

void InitMalloced(
  uint8_t *& outBuf,
  uint32_t initialBufSize,
  uint32_t maxLen
)

Initialisiert ein TLVWriter-Objekt, um in einen dynamischen Zwischenspeicher zu schreiben.

Details
Parameter
[in] buf
Ein Verweis auf einen Zeiger, der den zugewiesenen Zwischenspeicher empfängt.
[in] maxLen
Die maximale Anzahl von Byte, die in den Ausgabepuffer geschrieben werden sollen.
[in] initialBufSize
Die anfängliche Anzahl von Byte, die dem Zwischenspeicher zugewiesen werden sollen.

OpenContainer

WEAVE_ERROR OpenContainer(
  uint64_t tag,
  TLVType containerType,
  TLVWriter & containerWriter
)

Initialisiert ein neues TLVWriter-Objekt zum Schreiben der Mitglieder eines TLV-Containerelements.

Die Methode OpenContainer() wird verwendet, um TLV-Containerelemente (Strukturen, Arrays oder Pfade) in eine Codierung zu schreiben. Die Methode verwendet den Typ und das Tag (falls vorhanden) des neuen Containers sowie einen Verweis auf ein neues Writer-Objekt (den Container Writer), das zum Schreiben der Containerelemente initialisiert wird. Anwendungen schreiben die Mitglieder des neuen Containers mithilfe des Container-Writers und rufen dann CloseContainer() auf, um die Containercodierung abzuschließen.

Während der Container-Writer offen ist, dürfen Anwendungen keine Aufrufe an den übergeordneten Autor senden oder dessen Status anderweitig ändern.

Der Container-Writer übernimmt verschiedene Konfigurationseigenschaften des übergeordneten Autors. Diese sind:

  • Die implizite Profil-ID (ImplicitProfileId)
  • Anwendungsdatenzeiger (AppData)
  • Die Funktionszeiger GetNewBuffer und FinalizeBuffer

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] containerType
Der zu codierende Containertyp. kTLVType_Structure, kTLVType_Array oder kTLVType_Path.
[out] containerWriter
Ein Verweis auf ein TLVWriter-Objekt, das zum Schreiben der Member des neuen Containerelements initialisiert wird. Alle mit dem bereitgestellten Objekt verknüpften Daten werden überschrieben.
Rückgabewerte
WEAVE_NO_ERROR
Wenn die Methode erfolgreich war.
WEAVE_ERROR_WRONG_TLV_TYPE
Wenn der für containerType angegebene Wert falsch ist.
WEAVE_ERROR_TLV_CONTAINER_OPEN
Wenn ein Container-Writer für den aktuellen Writer geöffnet und noch nicht geschlossen wurde.
WEAVE_ERROR_INVALID_TLV_TAG
Wenn der angegebene Tag-Wert für den Kontext, in dem der Wert 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 Funktion GetNewBuffer() oder FinalizeBuffer() zurückgegeben werden.

Put

WEAVE_ERROR Put(
  uint64_t tag,
  int8_t v
)

Codiert einen TLV-Ganzzahlwert mit Vorzeichen.

Dies ist eine überlastete Mitgliederfunktion, die der Einfachheit halber zur Verfügung gestellt wird. Sie unterscheidet sich von der obigen Funktion nur darin, welche Argumente sie akzeptiert.

Details
Parameter
[in] tag
Das TLV-Tag, das mit dem Wert codiert werden soll, oder AnonymousTag, wenn der Wert ohne Tag codiert werden soll. Tag-Werte sollten mit einer der Tag-Definitionsfunktionen ProfileTag(), ContextTag() oder CommonTag() erstellt werden.
[in] v
Der zu codierende Wert.
Rückgabewerte
WEAVE_NO_ERROR
Wenn die Methode erfolgreich war.
WEAVE_ERROR_TLV_CONTAINER_OPEN
Wenn ein Container-Writer für den aktuellen Writer geöffnet und noch nicht geschlossen wurde.
WEAVE_ERROR_INVALID_TLV_TAG
Wenn der angegebene Tag-Wert für den Kontext, in dem der Wert 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 Funktion GetNewBuffer() oder FinalizeBuffer() zurückgegeben werden.

Put

WEAVE_ERROR Put(
  uint64_t tag,
  int8_t v,
  bool preserveSize
)

Codiert einen TLV-Ganzzahlwert mit Vorzeichen.

Dies ist eine überlastete Mitgliederfunktion, die der Einfachheit halber zur Verfügung gestellt wird. Sie unterscheidet sich von der obigen Funktion nur darin, welche Argumente sie akzeptiert.

Details
Parameter
[in] tag
Das TLV-Tag, das mit dem Wert codiert werden soll, oder AnonymousTag, wenn der Wert ohne Tag codiert werden soll. Tag-Werte sollten mit einer der Tag-Definitionsfunktionen ProfileTag(), ContextTag() oder CommonTag() erstellt werden.
[in] v
Der zu codierende Wert.
[in] preserveSize
Wahr, wenn der Wert mit der gleichen Anzahl von Byte codiert werden soll wie der Eingabetyp. Falsch, wenn der Wert in der Mindestanzahl von Byte codiert werden soll, die für die Darstellung des Werts erforderlich ist. Hinweis: Für Anwendungen wird dringend empfohlen, diesen Parameter auf "false" zu setzen.
Rückgabewerte
WEAVE_NO_ERROR
Wenn die Methode erfolgreich war.
WEAVE_ERROR_TLV_CONTAINER_OPEN
Wenn ein Container-Writer für den aktuellen Writer geöffnet und noch nicht geschlossen wurde.
WEAVE_ERROR_INVALID_TLV_TAG
Wenn der angegebene Tag-Wert für den Kontext, in dem der Wert 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 Funktion GetNewBuffer() oder FinalizeBuffer() zurückgegeben werden.

Put

WEAVE_ERROR Put(
  uint64_t tag,
  int16_t v
)

Put

WEAVE_ERROR Put(
  uint64_t tag,
  int16_t v,
  bool preserveSize
)

Put

WEAVE_ERROR Put(
  uint64_t tag,
  int32_t v
)

Put

WEAVE_ERROR Put(
  uint64_t tag,
  int32_t v,
  bool preserveSize
)

Put

WEAVE_ERROR Put(
  uint64_t tag,
  int64_t v
)

Put

WEAVE_ERROR Put(
  uint64_t tag,
  int64_t v,
  bool preserveSize
)

Put

WEAVE_ERROR Put(
  uint64_t tag,
  uint8_t v
)

Codiert einen TLV-Ganzzahlwert ohne Vorzeichen.

Dies ist eine überlastete Mitgliederfunktion, die der Einfachheit halber zur Verfügung gestellt wird. Sie unterscheidet sich von der obigen Funktion nur darin, welche Argumente sie akzeptiert.

Details
Parameter
[in] tag
Das TLV-Tag, das mit dem Wert codiert werden soll, oder AnonymousTag, wenn der Wert ohne Tag codiert werden soll. Tag-Werte sollten mit einer der Tag-Definitionsfunktionen ProfileTag(), ContextTag() oder CommonTag() erstellt werden.
[in] v
Der zu codierende Wert.
Rückgabewerte
WEAVE_NO_ERROR
Wenn die Methode erfolgreich war.
WEAVE_ERROR_TLV_CONTAINER_OPEN
Wenn ein Container-Writer für den aktuellen Writer geöffnet und noch nicht geschlossen wurde.
WEAVE_ERROR_INVALID_TLV_TAG
Wenn der angegebene Tag-Wert für den Kontext, in dem der Wert 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 Funktion GetNewBuffer() oder FinalizeBuffer() zurückgegeben werden.

Put

WEAVE_ERROR Put(
  uint64_t tag,
  uint8_t v,
  bool preserveSize
)

Codiert einen TLV-Ganzzahlwert ohne Vorzeichen.

Dies ist eine überlastete Mitgliederfunktion, die der Einfachheit halber zur Verfügung gestellt wird. Sie unterscheidet sich von der obigen Funktion nur darin, welche Argumente sie akzeptiert.

Details
Parameter
[in] tag
Das TLV-Tag, das mit dem Wert codiert werden soll, oder AnonymousTag, wenn der Wert ohne Tag codiert werden soll. Tag-Werte sollten mit einer der Tag-Definitionsfunktionen ProfileTag(), ContextTag() oder CommonTag() erstellt werden.
[in] v
Der zu codierende Wert.
[in] preserveSize
Wahr, wenn der Wert mit der gleichen Anzahl von Byte codiert werden soll wie der Eingabetyp. Falsch, wenn der Wert in der Mindestanzahl von Byte codiert werden soll, die für die Darstellung des Werts erforderlich ist. Hinweis: Für Anwendungen wird dringend empfohlen, diesen Parameter auf "false" zu setzen.
Rückgabewerte
WEAVE_NO_ERROR
Wenn die Methode erfolgreich war.
WEAVE_ERROR_TLV_CONTAINER_OPEN
Wenn ein Container-Writer für den aktuellen Writer geöffnet und noch nicht geschlossen wurde.
WEAVE_ERROR_INVALID_TLV_TAG
Wenn der angegebene Tag-Wert für den Kontext, in dem der Wert 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 Funktion GetNewBuffer() oder FinalizeBuffer() zurückgegeben werden.

Put

WEAVE_ERROR Put(
  uint64_t tag,
  uint16_t v
)

Put

WEAVE_ERROR Put(
  uint64_t tag,
  uint16_t v,
  bool preserveSize
)

Put

WEAVE_ERROR Put(
  uint64_t tag,
  uint32_t v
)

Put

WEAVE_ERROR Put(
  uint64_t tag,
  uint32_t v,
  bool preserveSize
)

Put

WEAVE_ERROR Put(
  uint64_t tag,
  uint64_t v
)

Put

WEAVE_ERROR Put(
  uint64_t tag,
  uint64_t v,
  bool preserveSize
)

Put

WEAVE_ERROR Put(
  uint64_t tag,
  float v
)

Put

WEAVE_ERROR Put(
  uint64_t tag,
  double v
)

Codiert einen TLV-Gleitkommawert.

Dies ist eine überlastete Mitgliederfunktion, die der Einfachheit halber zur Verfügung gestellt wird. Sie unterscheidet sich von der obigen Funktion nur darin, welche Argumente sie akzeptiert.

Details
Parameter
[in] tag
Das TLV-Tag, das mit dem Wert codiert werden soll, oder AnonymousTag, wenn der Wert ohne Tag codiert werden soll. Tag-Werte sollten mit einer der Tag-Definitionsfunktionen ProfileTag(), ContextTag() oder CommonTag() erstellt werden.
[in] v
Der zu codierende Wert.
Rückgabewerte
WEAVE_NO_ERROR
Wenn die Methode erfolgreich war.
WEAVE_ERROR_TLV_CONTAINER_OPEN
Wenn ein Container-Writer für den aktuellen Writer geöffnet und noch nicht geschlossen wurde.
WEAVE_ERROR_INVALID_TLV_TAG
Wenn der angegebene Tag-Wert für den Kontext, in dem der Wert 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 Funktion GetNewBuffer() oder FinalizeBuffer() zurückgegeben werden.

PutBoolean

WEAVE_ERROR PutBoolean(
  uint64_t tag,
  bool v
)

Codiert einen booleschen TLV-Wert.

Details
Parameter
[in] tag
Das TLV-Tag, das mit dem Wert codiert werden soll, oder AnonymousTag, wenn der Wert ohne Tag codiert werden soll. Tag-Werte sollten mit einer der Tag-Definitionsfunktionen ProfileTag(), ContextTag() oder CommonTag() erstellt werden.
[in] v
Der zu codierende Wert.
Rückgabewerte
WEAVE_NO_ERROR
Wenn die Methode erfolgreich war.
WEAVE_ERROR_TLV_CONTAINER_OPEN
Wenn ein Container-Writer für den aktuellen Writer geöffnet und noch nicht geschlossen wurde.
WEAVE_ERROR_INVALID_TLV_TAG
Wenn der angegebene Tag-Wert für den Kontext, in dem der Wert 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 Funktion GetNewBuffer() oder FinalizeBuffer() zurückgegeben werden.

PutBytes

WEAVE_ERROR PutBytes(
  uint64_t tag,
  const uint8_t *buf,
  uint32_t len
)

Codiert einen TLV-Bytestringwert.

Details
Parameter
[in] tag
Das TLV-Tag, das mit dem Wert codiert werden soll, oder AnonymousTag, wenn der Wert ohne Tag codiert werden soll. Tag-Werte sollten mit einer der Tag-Definitionsfunktionen ProfileTag(), ContextTag() oder CommonTag() erstellt werden.
[in] buf
Ein Zeiger auf einen Zwischenspeicher, der den zu codierenden Bytestring enthält.
[in] len
Die Anzahl der zu codierenden Byte.
Rückgabewerte
WEAVE_NO_ERROR
Wenn die Methode erfolgreich war.
WEAVE_ERROR_TLV_CONTAINER_OPEN
Wenn ein Container-Writer für den aktuellen Writer geöffnet und noch nicht geschlossen wurde.
WEAVE_ERROR_INVALID_TLV_TAG
Wenn der angegebene Tag-Wert für den Kontext, in dem der Wert 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 Funktion GetNewBuffer() oder FinalizeBuffer() zurückgegeben werden.

PutNull

WEAVE_ERROR PutNull(
  uint64_t tag
)

Codiert einen TLV-Nullwert.

Details
Parameter
[in] tag
Das TLV-Tag, das mit dem Wert codiert werden soll, oder AnonymousTag, wenn der Wert ohne Tag codiert werden soll. Tag-Werte sollten mit einer der Tag-Definitionsfunktionen ProfileTag(), ContextTag() oder CommonTag() erstellt werden.
Rückgabewerte
WEAVE_NO_ERROR
Wenn die Methode erfolgreich war.
WEAVE_ERROR_TLV_CONTAINER_OPEN
Wenn ein Container-Writer für den aktuellen Writer geöffnet und noch nicht geschlossen wurde.
WEAVE_ERROR_INVALID_TLV_TAG
Wenn der angegebene Tag-Wert für den Kontext, in dem der Wert 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 Funktion GetNewBuffer() oder FinalizeBuffer() zurückgegeben werden.

PutPreEncodedContainer

WEAVE_ERROR PutPreEncodedContainer(
  uint64_t tag,
  TLVType containerType,
  const uint8_t *data,
  uint32_t dataLen
)

Codiert ein TLV-Containerelement aus einem vorab codierten Satz von Mitgliedselementen.

Die Methode PutPreEncodedContainer() codiert ein neues TLV-Containerelement (eine Struktur, ein Array oder ein Pfad), das eine Gruppe von Mitgliedselementen enthält, die aus einem vorcodierten Zwischenspeicher stammen. Der Eingabepuffer muss null oder mehr vollständig codierte TLV-Elemente mit Tags enthalten, die den Regeln entsprechen, die dem angegebenen Containertyp zugeordnet sind. Beispielsweise müssen Strukturmitglieder Tags haben, Array-Mitglieder nicht.

Die Methode codiert das gesamte Containerelement in einem Aufruf. Wenn PutPreEncodedContainer() zurückgibt, kann das Schreiberobjekt verwendet werden, um zusätzliche TLV-Elemente nach dem Containerelement zu schreiben.

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] containerType
Der zu codierende Containertyp. kTLVType_Structure, kTLVType_Array oder kTLVType_Path.
[in] data
Ein Zeiger auf einen Zwischenspeicher, der keines von mehr codierten TLV-Elementen enthält, die Mitglieder des neuen Containers werden.
[in] dataLen
Die Anzahl der Byte im Zwischenspeicher data.
Rückgabewerte
WEAVE_NO_ERROR
Wenn die Methode erfolgreich war.
WEAVE_ERROR_WRONG_TLV_TYPE
Wenn der für containerType angegebene Wert falsch ist.
WEAVE_ERROR_TLV_CONTAINER_OPEN
Wenn ein Container-Writer für den aktuellen Writer geöffnet und noch nicht geschlossen wurde.
WEAVE_ERROR_INVALID_TLV_TAG
Wenn der angegebene Tag-Wert für den Kontext, in dem der Wert 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 Funktion GetNewBuffer() oder FinalizeBuffer() zurückgegeben werden.

PutString

WEAVE_ERROR PutString(
  uint64_t tag,
  const char *buf
)

Codiert einen TLV-UTF8-Stringwert.

Details
Parameter
[in] tag
Das TLV-Tag, das mit dem Wert codiert werden soll, oder AnonymousTag, wenn der Wert ohne Tag codiert werden soll. Tag-Werte sollten mit einer der Tag-Definitionsfunktionen ProfileTag(), ContextTag() oder CommonTag() erstellt werden.
[in] buf
Ein Zeiger auf den zu codierenden UTF-8-String mit Nulltermin.
Rückgabewerte
WEAVE_NO_ERROR
Wenn die Methode erfolgreich war.
WEAVE_ERROR_TLV_CONTAINER_OPEN
Wenn ein Container-Writer für den aktuellen Writer geöffnet und noch nicht geschlossen wurde.
WEAVE_ERROR_INVALID_TLV_TAG
Wenn der angegebene Tag-Wert für den Kontext, in dem der Wert 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 Funktion GetNewBuffer() oder FinalizeBuffer() zurückgegeben werden.

PutString

WEAVE_ERROR PutString(
  uint64_t tag,
  const char *buf,
  uint32_t len
)

Codiert einen TLV-UTF8-Stringwert.

Details
Parameter
[in] tag
Das TLV-Tag, das mit dem Wert codiert werden soll, oder AnonymousTag, wenn der Wert ohne Tag codiert werden soll. Tag-Werte sollten mit einer der Tag-Definitionsfunktionen ProfileTag(), ContextTag() oder CommonTag() erstellt werden.
[in] buf
Ein Zeiger auf den zu codierenden UTF-8-String.
[in] len
Die Länge des zu codierenden Strings (in Byte).
Rückgabewerte
WEAVE_NO_ERROR
Wenn die Methode erfolgreich war.
WEAVE_ERROR_TLV_CONTAINER_OPEN
Wenn ein Container-Writer für den aktuellen Writer geöffnet und noch nicht geschlossen wurde.
WEAVE_ERROR_INVALID_TLV_TAG
Wenn der angegebene Tag-Wert für den Kontext, in dem der Wert 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 Funktion GetNewBuffer() oder FinalizeBuffer() zurückgegeben werden.

PutStringF

WEAVE_ERROR PutStringF(
  uint64_t tag,
  const char *fmt,
  ...
)

Codieren Sie die Stringausgabe entsprechend dem Format im TLV-Element.

PutStringF ist ein Analog zu einem Sprintf, bei dem die Ausgabe in einem TLV-Element und nicht in einem Zeichenpuffer gespeichert wird. Wenn die erweiterte printf-Funktionalität verfügbar ist, kann die Funktion die Ergebniszeichenfolge an einen nicht zusammenhängenden zugrunde liegenden Speicher ausgeben. Die Implementierung unterstützt die folgenden printf-Verbesserungen:

Die Plattform stellt eine Callback-basierte vcbprintf bereit, die die Möglichkeit bietet, anstelle von putchar einen benutzerdefinierten Callback aufzurufen.

Die Plattform stellt eine Variante von vsnprintf mit dem Namen vsnprintf_ex bereit, die sich genauso wie vsnprintf verhält, mit der Ausnahme, dass die ersten n Zeichen der Ausgabe weggelassen werden können.

Die Callback-basierte Funktion mag zwar am einfachsten sein und am wenigsten Code verwenden, die vsprintf_ex-Funktionen benötigen aber weniger Stack.

Wenn keine der oben genannten Optionen verfügbar ist, aber die Plattform malloc bereitstellt, weist die Funktion einen temporären Zwischenspeicher für die Ausgabe zu. Wenn die Plattform weder Verbesserungen für die Printf-Familie noch für Malloc bereitstellt, wird die Ausgabe so gekürzt, dass sie in den kontinuierlichen Zustand im aktuellen TLV-Speicher passt.

Details
Parameter
[in] tag
Das TLV-Tag, das mit dem Wert codiert werden soll, oder AnonymousTag, wenn der Wert ohne Tag codiert werden soll. Tag-Werte sollten mit einer der Tag-Definitionsfunktionen ProfileTag(), ContextTag() oder CommonTag() erstellt werden.
[in] fmt
Der Formatstring, der zum Formatieren der Argumentliste verwendet wird. Folgt derselben Syntax und denselben Regeln wie beim Formatstring für die Funktionsfamilie printf.
[in] ...
Eine Liste der Argumente, die gemäß fmt im Ausgabewert formatiert werden sollen.
Rückgabewerte
WEAVE_NO_ERROR
Wenn die Methode erfolgreich war.
other
Wenn zugrunde liegende Aufrufe der TLVWriter-Methoden WriteElementHead oder GetNewBuffer fehlgeschlagen sind, wird der Fehler sofort an den Aufrufstack weitergeleitet.

StartContainer

WEAVE_ERROR StartContainer(
  uint64_t tag,
  TLVType containerType,
  TLVType & outerContainerType
)

Beginnt die Codierung eines neuen TLV-Containerelements.

Die Methode StartContainer() wird verwendet, um TLV-Containerelemente (Strukturen, Arrays oder Pfade) in eine Codierung zu schreiben. Die Methode verwendet den Typ und das Tag (falls vorhanden) des neuen Containers sowie einen Verweis auf einen TLVType-Wert, der verwendet wird, um den aktuellen Kontext des Autors zu speichern, während er zum Schreiben des Containers verwendet wird.

Sobald die Methode StartContainer() zurückgegeben wird, sollte die Anwendung das aktuelle TLVWriter-Objekt verwenden, um die Elemente des Containers zu schreiben. Anschließend muss die Anwendung die Methode EndContainer() aufrufen, um die Codierung des Containers abzuschließen.

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] containerType
Der zu codierende Containertyp. kTLVType_Structure, kTLVType_Array oder kTLVType_Path.
[out] outerContainerType
Ein Verweis auf einen TLVType-Wert, der den Kontext des Autors erhält.
Rückgabewerte
WEAVE_NO_ERROR
Wenn die Methode erfolgreich war.
WEAVE_ERROR_WRONG_TLV_TYPE
Wenn der für containerType angegebene Wert falsch ist.
WEAVE_ERROR_TLV_CONTAINER_OPEN
Wenn ein Container-Writer für den aktuellen Writer geöffnet und noch nicht geschlossen wurde.
WEAVE_ERROR_INVALID_TLV_TAG
Wenn der angegebene Tag-Wert für den Kontext, in dem der Wert 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 Funktion GetNewBuffer() oder FinalizeBuffer() zurückgegeben werden.

StartPutBytes

WEAVE_ERROR StartPutBytes(
  uint64_t tag,
  uint32_t totalLen
)

Codiert einen TLV-Bytestring in mehreren Blöcken.

Sollte mit „ContinuePutBytes“ verwendet werden.

Details
Parameter
[in] tag
Das TLV-Tag, das mit dem Wert codiert werden soll, oder AnonymousTag, wenn der Wert ohne Tag codiert werden soll. Tag-Werte sollten mit einer der Tag-Definitionsfunktionen ProfileTag(), ContextTag() oder CommonTag() erstellt werden.
[in] totalLen
Die Gesamtzahl der zu codierenden Byte.
Rückgabewerte
WEAVE_NO_ERROR
Wenn die Methode erfolgreich war.
WEAVE_ERROR_TLV_CONTAINER_OPEN
Wenn ein Container-Writer für den aktuellen Writer geöffnet und noch nicht geschlossen wurde.
WEAVE_ERROR_INVALID_TLV_TAG
Wenn der angegebene Tag-Wert für den Kontext, in dem der Wert 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 Funktion GetNewBuffer() oder FinalizeBuffer() zurückgegeben werden.

VPutStringF

WEAVE_ERROR VPutStringF(
  uint64_t tag,
  const char *fmt,
  va_list ap
)

Codieren Sie die Stringausgabe entsprechend dem Format im TLV-Element.

PutStringF ist ein Analog zu einem Sprintf, bei dem die Ausgabe in einem TLV-Element und nicht in einem Zeichenpuffer gespeichert wird. Wenn die erweiterte printf-Funktionalität verfügbar ist, kann die Funktion die Ergebniszeichenfolge an einen nicht zusammenhängenden zugrunde liegenden Speicher ausgeben. Die Implementierung unterstützt die folgenden printf-Verbesserungen:

Die Plattform stellt eine Callback-basierte vcbprintf bereit, die die Möglichkeit bietet, anstelle von putchar einen benutzerdefinierten Callback aufzurufen.

Die Plattform stellt eine Variante von vsnprintf mit dem Namen vsnprintf_ex bereit, die sich genauso wie vsnprintf verhält, mit der Ausnahme, dass die ersten n Zeichen der Ausgabe weggelassen werden können.

Die Callback-basierte Funktion mag zwar am einfachsten sein und am wenigsten Code verwenden, die vsprintf_ex-Funktionen benötigen aber weniger Stack.

Wenn keine der oben genannten Optionen verfügbar ist, aber die Plattform malloc bereitstellt, weist die Funktion einen temporären Zwischenspeicher für die Ausgabe zu. Wenn die Plattform weder Verbesserungen für die Printf-Familie noch für Malloc bereitstellt, wird die Ausgabe so gekürzt, dass sie in den kontinuierlichen Zustand im aktuellen TLV-Speicher passt.

Details
Parameter
[in] tag
Das TLV-Tag, das mit dem Wert codiert werden soll, oder AnonymousTag, wenn der Wert ohne Tag codiert werden soll. Tag-Werte sollten mit einer der Tag-Definitionsfunktionen ProfileTag(), ContextTag() oder CommonTag() erstellt werden.
[in] fmt
Der Formatstring, der zum Formatieren der Argumentliste verwendet wird. Folgt derselben Syntax und denselben Regeln wie beim Formatstring für die Funktionsfamilie printf.
[in] ap
Eine Liste der Argumente, die gemäß fmt im Ausgabewert formatiert werden sollen.
Rückgabewerte
WEAVE_NO_ERROR
Wenn die Methode erfolgreich war.
other
Wenn zugrunde liegende Aufrufe der TLVWriter-Methoden WriteElementHead oder GetNewBuffer fehlgeschlagen sind, wird der Fehler sofort an den Aufrufstack weitergeleitet.

Öffentliche statische Funktionen

FinalizePacketBuffer

WEAVE_ERROR FinalizePacketBuffer(
  TLVWriter & writer,
  uintptr_t bufHandle,
  uint8_t *bufStart,
  uint32_t dataLen
)

Implementierung der Funktion TLVWriter FinalizeBuffer zum Schreiben in eine Kette von PacketBuffers

Die Funktion FinalizePacketBuffer() führt die erforderliche Finalisierung durch, wenn ein TLVWriter zum Schreiben in eine Kette von PacketBuffers verwendet wird. Die Funktion ist für die Verwendung mit der Funktion GetNewPacketBuffer() vorgesehen.

Weitere Informationen zur API der Funktion FinalizePacketBuffer() finden Sie in der Typdefinition „FinalizeBufferFunct“.

GetNewBuffer_Malloced

WEAVE_ERROR GetNewBuffer_Malloced(
  TLVWriter & writer,
  uintptr_t & bufHandle,
  uint8_t *& bufStart,
  uint32_t & bufLen
)

Implementierung der Funktion TLVWriter GetNewBuffer zum Schreiben in einen dynamischen Zwischenspeicher

Die Funktion GetNewBuffer_Malloced() stellt einem TLVWriter neuen Ausgaberaum bereit, indem die Größe des zugrunde liegenden dynamischen Zwischenspeichers nach Bedarf zum Speichern der Codierung verdoppelt wird. Die Funktion wurde für die Zuweisung zum TLVWriter-Funktionszeiger GetNewBuffer entwickelt.

Weitere Informationen zur API der Funktion GetNewBuffer_Malloced() finden Sie in der Typdefinition "GetNewBufferFunct".

GetNewPacketBuffer

WEAVE_ERROR GetNewPacketBuffer(
  TLVWriter & writer,
  uintptr_t & bufHandle,
  uint8_t *& bufStart,
  uint32_t & bufLen
)

Implementierung der Funktion TLVWriter GetNewBuffer zum Schreiben in eine Kette von PacketBuffers

Die Funktion GetNewPacketBuffer() stellt einem TLVWriter neuen Ausgabespeicher bereit, indem eine Kette aus einem oder mehreren PacketBuffers nach Bedarf zum Speichern der Codierung zugewiesen wird. Die Funktion wurde für die Zuweisung zum TLVWriter-Funktionszeiger GetNewBuffer entwickelt.

Wenn Sie GetNewPacketBuffer mit einem TLVWriter verwenden, sollte auch die entsprechende FinalizePacketBuffer()-Funktion (oder eine Entsprechung) verwendet werden, um die Pufferkette zu finalisieren.

Weitere Informationen zur API der Funktion GetNewPacketBuffer() finden Sie in der Typdefinition "GetNewBufferFunct".

Geschützte Funktionen

IsCloseContainerReserved

bool IsCloseContainerReserved(
  void
) const 

Bestimmen Sie, ob der Container Platz für das CloseContainer-Symbol zum Starten / Öffnen des Containers reservieren soll.

IsContainerOpen

bool IsContainerOpen(
  void
) const 

SetCloseContainerReserved

void SetCloseContainerReserved(
  bool aCloseContainerReserved
)

Legen Sie fest, ob der Container beim Starten / Öffnen des Containers Platz für das CloseContainer-Symbol reservieren soll.

SetContainerOpen

void SetContainerOpen(
  bool aContainerOpen
)

WriteData

WEAVE_ERROR WriteData(
  const uint8_t *p,
  uint32_t len
)

WriteElementHead

WEAVE_ERROR WriteElementHead(
  TLVElementType elemType,
  uint64_t tag,
  uint64_t lenOrVal
)

WriteElementWithData

WEAVE_ERROR WriteElementWithData(
  TLVType type,
  uint64_t tag,
  const uint8_t *data,
  uint32_t dataLen
)