nl::Weave::Profiles::ReferencedTLVData

#include <src/lib/profiles/common/WeaveMessage.h>

Ebenso müssen wir in der Lage sein, einen großen alten Blob von TLV-Daten darzustellen.

Zusammenfassung

Übernahme

Übernimmt von: nl::Weave::Profiles::RetainedPacketBuffer

Konstruktoren und Zerstörer

ReferencedTLVData(void)
-------------- Definitionen für TLV-Daten --------------

Öffentliche Typen

TLVWriteCallback)(TLV::TLVWriter &aWriter, void *aAppState) typedef.
void(*

Öffentliche Attribute

theData
uint8_t *
theLength
uint16_t
theMaxLength
uint16_t

Öffentliche Funktionen

free(void)
void
Geben Sie ein ReferencedTLVData-Objekt kostenlos, d. h., es wird nicht definiert.
init(System::PacketBuffer *aBuffer)
Initialisieren Sie das Objekt ReferencedTLVData anhand eines PacketBuffer.
init(MessageIterator & i)
Initialisieren Sie ein ReferencedTLVData-Objekt anhand eines MessageIterator.
init(uint16_t aLength, uint16_t aMaxLength, uint8_t *aByteString)
Initialisieren Sie ein ReferencedTLVObject anhand eines Bytestrings.
init(TLVWriteCallback aWriteCallback, void *anAppState)
Initialisieren Sie ein RefererencedTLVData-Objekt anhand einer Callback-Funktion.
isEmpty(void)
bool
Prüfen Sie, ob das Objekt ReferencedTLVData etwas enthält.
isFree(void)
bool
Prüfen Sie, ob ein ReferencedTLVData-Objekt "kostenlos" ist, d.h.
operator==(const ReferencedTLVData &) const
bool
Vergleichen Sie das Objekt ReferencedTLVData mit einem anderen Objekt auf Gleichheit.
pack(System::PacketBuffer *buff)
Verpacken Sie ein ReferencedTLVData-Objekt direkt in einen PacketBuffer.
pack(MessageIterator & i, uint32_t maxLen)
packedLength(void)
uint16_t
Gibt die Datenlänge zurück, unter der Annahme, dass das Objekt in einen Zwischenspeicher gepackt wurde.

Öffentliche statische Funktionen

parse(System::PacketBuffer *buff, ReferencedTLVData & aTarget)
Parst ein ReferencedTLVData-Objekt aus einem bereitgestellten PacketBuffer.
parse(MessageIterator & i, ReferencedTLVData & aTarget)
Parst ein ReferencedTLVData-Objekt über einen bereitgestellten MessageIterator.

Öffentliche Typen

TLVWriteCallback

void(* TLVWriteCallback)(TLV::TLVWriter &aWriter, void *aAppState)

Öffentliche Attribute

theData

uint8_t * theData

theLength

uint16_t theLength

theMaxLength

uint16_t theMaxLength

Öffentliche Funktionen

ReferencedTLVData

 ReferencedTLVData(
  void
)

-------------- Definitionen für TLV-Daten --------------

Der no-arg-Konstruktor für TLV-Daten Liefert ein kostenloses/nicht initialisiertes Objekt, das einer der hier definierten init()-Methoden unterliegt, um nützlich zu sein.

Kostenlos

void free(
  void
)

Geben Sie ein ReferencedTLVData-Objekt kostenlos, d. h., es wird nicht definiert.

init

WEAVE_ERROR init(
  System::PacketBuffer *aBuffer
)

Initialisieren Sie das Objekt ReferencedTLVData anhand eines PacketBuffer.

Initialisieren Sie ein ReferencedTLVData-Objekt mit einem Puffer mit TLV. Dabei wird davon ausgegangen, dass der Zwischenspeicher NUR TLV enthält.

Details
Parameter
[in] aBuffer
Ein Nachrichtenpuffer, in dem sich die TLV befindet.
Rückgabewerte
WEAVE_NO_ERROR
Bedingungslos

init

WEAVE_ERROR init(
  MessageIterator & i
)

Initialisieren Sie ein ReferencedTLVData-Objekt anhand eines MessageIterator.

Initialisieren Sie ein ReferencedTLVData-Objekt anhand eines MessageIterator. In diesem Fall ist die TLV der letzte Teil des Zwischenspeichers. Wir übergeben einen Nachrichten-Iterator, der darauf verweist.

Details
Parameter
[in] i
Ein Nachrichten-Iterator, der auf TLV verweist, der extrahiert werden soll.
Rückgabewerte
WEAVE_NO_ERROR
Bedingungslos

init

WEAVE_ERROR init(
  uint16_t aLength,
  uint16_t aMaxLength,
  uint8_t *aByteString
)

Initialisieren Sie ein ReferencedTLVObject anhand eines Bytestrings.

Initialisieren Sie das Objekt ReferencedTLVData mit einem Bytestring, der TLV enthält. Dieser Initialisierer wird verwendet, wenn kein PacketrBuffer vorhanden ist, da wir einen davon zum Packen und Senden erstellen.

Details
Parameter
[in] aLength
Länge der TLV-Daten
[in] aMaxLength
Die Gesamtlänge des Zwischenspeichers
[in] aByteString
Ein Zeiger auf die Zeichenfolgendaten
Rückgabewerte
WEAVE_NO_ERROR
Bedingungslos

init

WEAVE_ERROR init(
  TLVWriteCallback aWriteCallback,
  void *anAppState
)

Initialisieren Sie ein RefererencedTLVData-Objekt anhand einer Callback-Funktion.

Initialisieren Sie ein ReferencedTLVData-Objekt. Anstatt die Daten explizit anzugeben, bietet diese Version eine Funktion, den Schreib-Callback und ein Referenzobjekt, das zusammen mit einem TLVWriter-Objekt an sie übergeben wird, wenn die referenzierten Daten verpackt und gesendet werden sollen. Die Signatur dieses Callbacks lautet:

typedef void (*TLVWriteCallback)(TLV::TLVWriter &aWriter, void *aAppState);

Details
Parameter
[in] aWriteCallback
Die Funktion, die aufgerufen werden soll, wenn es Zeit ist, TLV zu schreiben.
[in] anAppState
Ein Anwendungsstatusobjekt, das zusammen mit dem Writer an den Callback übergeben wird.
Rückgabewerte
WEAVE_NO_ERROR
Bei Erfolg.
WEAVE_ERROR_INVALID_ARGUMENT
Wenn der Schreib-Callback nicht angegeben ist.

Ist leer

bool isEmpty(
  void
)

Prüfen Sie, ob das Objekt ReferencedTLVData etwas enthält.

Es gibt zwei Möglichkeiten, wie ein Objekt irgendetwas. Entweder er könnte die Länge 0 haben ODER ihn keinen Schreib-Callback haben.

Details
Rückgabe
Ist auf "true" gesetzt, wenn die Länge des Datasets 0 ist oder kein Schreib-Callback vorhanden ist, andernfalls "false".

isFree

bool isFree(
  void
)

Prüfen Sie, ob ein ReferencedTLVData-Objekt "kostenlos" ist, d.h.

nicht definiert.

Details
Rückgabe
"true", wenn das Objekt nicht definiert ist, andernfalls "false".

Operator==

bool operator==(
  const ReferencedTLVData &
) const 

Vergleichen Sie das Objekt ReferencedTLVData mit einem anderen Objekt auf Gleichheit.

Beachten Sie, dass dies nur im Fall von zwei Objekten sinnvoll ist, die tatsächliche Daten enthalten und durch einen Puffer oder eine Zeichenfolge gestützt werden.

Details
Parameter
[in] Another
Objekt, das geprüft werden soll,
Rückgabewerte
true
Die Objekte sind gleich.
false
Die Objektstrings sind nicht gleich.

Packung

WEAVE_ERROR pack(
  System::PacketBuffer *buff
)

Verpacken Sie ein ReferencedTLVData-Objekt direkt in einen PacketBuffer.

Details
Parameter
[in] buff
um den Puffer zu füllen.
Rückgabe
Einen WEAVE_ERROR für den Erfolg des zugrunde liegenden Paketaufrufs.

Packung

WEAVE_ERROR pack(
  MessageIterator & i,
  uint32_t maxLen
)

packedLength

uint16_t packedLength(
  void
)

Gibt die Datenlänge zurück, unter der Annahme, dass das Objekt in einen Zwischenspeicher gepackt wurde.

Details
Rückgabe
die Länge der verpackten Daten ganzzahlig.

Öffentliche statische Funktionen

parse

WEAVE_ERROR parse(
  System::PacketBuffer *buff,
  ReferencedTLVData & aTarget
)

Parst ein ReferencedTLVData-Objekt aus einem bereitgestellten PacketBuffer.

Parst ein ReferencedTLVData-Objekt aus einem Inet-Zwischenspeicher (vorausgesetzt, es enthält nur TLV).

Details
Parameter
[in] buff
aus dem Zwischenspeicher gelesen werden soll.
[out] aTarget
ein ReferencedTLVData-Objekt zum "Füllen" mit dem Ergebnis.
Rückgabe
Ein WEAVE_ERROR für den Erfolg des zugrunde liegenden Parse-Aufrufs.

parse

WEAVE_ERROR parse(
  MessageIterator & i,
  ReferencedTLVData & aTarget
)

Parst ein ReferencedTLVData-Objekt über einen bereitgestellten MessageIterator.

Parsen Sie ein ReferenceTLVData-Objekt aus einem MessageIterator-Objekt, von dem angenommen wird, dass es auf den TLV-Teil einer Nachricht verweist.

Es findet kein tatsächliches Parsen statt, da die TLV im Zwischenspeicher verbleibt und nicht bearbeitet wird. Bei dieser Methode wird für die spätere Verwendung hauptsächlich die Struktur ReferencedTLVData eingerichtet.

Details
Parameter
[in] i
Ein Iterator für die Nachricht, die geparst wird.
[out] aTarget
Ein Ort, an dem das Parsing-Ergebnis gespeichert wird.
Rückgabewerte
WEAVE_NO_ERROR
Bedingungslos