nl::Weave::Profiles::ReferencedTLVData

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

Ebenso müssen wir in der Lage sein, ein großes, altes Blob von TLV-Daten darzustellen.

Zusammenfassung

Übernahme

Übernommen 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., definieren Sie es nicht.
init(System::PacketBuffer *aBuffer)
Initialisieren Sie das Objekt ReferencedTLVData mit einem PacketBuffer.
init(MessageIterator & i)
Initialisieren Sie ein ReferencedTLVData-Objekt mit einem MessageIterator.
init(uint16_t aLength, uint16_t aMaxLength, uint8_t *aByteString)
Initialisiert ein ReferencedTLVObject mit einem Bytestring.
init(TLVWriteCallback aWriteCallback, void *anAppState)
Initialisiert ein RefererencedTLVData-Objekt anhand einer Callback-Funktion.
isEmpty(void)
bool
Prüfen Sie, ob ein ReferencedTLVData-Objekt etwas enthält.
isFree(void)
bool
Prüfen Sie, ob ein ReferencedTLVData-Objekt "kostenlos" ist, d.h.
operator==(const ReferencedTLVData &) const
bool
Prüfen Sie ein Objekt vom Typ ReferencedTLVData auf Gleichheit mit einem anderen.
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 unter der Annahme zurück, dass das Objekt in einen Puffer gepackt wurde.

Öffentliche statische Funktionen

parse(System::PacketBuffer *buff, ReferencedTLVData & aTarget)
Parst ein ReferencedTLVData-Objekt aus einem bereitgestellten PacketBuffer.
parse(MessageIterator & i, ReferencedTLVData & aTarget)
Parsen Sie ein ReferencedTLVData-Objekt aus einem 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 --------------

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

Kostenlos

void free(
  void
)

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

init

WEAVE_ERROR init(
  System::PacketBuffer *aBuffer
)

Initialisieren Sie das Objekt ReferencedTLVData mit einem PacketBuffer.

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

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

init

WEAVE_ERROR init(
  MessageIterator & i
)

Initialisieren Sie ein ReferencedTLVData-Objekt mit einem MessageIterator.

Initialisieren Sie ein ReferencedTLVData-Objekt mit einem MessageIterator. In diesem Fall ist die TLV der letzte Teil des Puffers und wir übergeben einen Nachrichten-Iterator, der darauf verweist.

Details
Parameter
[in] i
Ein Nachrichten-iterator, der auf die zu extrahierende TLV verweist.
Rückgabewerte
WEAVE_NO_ERROR
Bedingungslos

init

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

Initialisiert ein ReferencedTLVObject mit einem Bytestring.

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

Details
Parameter
[in] aLength
Eine Länge für die TLV-Daten
[in] aMaxLength
Gesamtlänge des Puffers
[in] aByteString
Einen Zeiger auf die Zeichenfolgendaten
Rückgabewerte
WEAVE_NO_ERROR
Bedingungslos

init

WEAVE_ERROR init(
  TLVWriteCallback aWriteCallback,
  void *anAppState
)

Initialisiert 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 gepackt 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 TLV geschrieben werden soll.
[in] anAppState
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.

isEmpty

bool isEmpty(
  void
)

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

Es gibt zwei Möglichkeiten, wie ein Objekt etwas „haben“ könnte. Entweder hat sie eine Länge von 0 ODER sie kann keinen Schreib-Callback haben.

Details
Rückgabe
"true", wenn der Datensatz eine Länge von 0 hat oder kein Schreib-Callback vorliegt, 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 

Prüfen Sie ein Objekt vom Typ ReferencedTLVData auf Gleichheit mit einem anderen.

Beachten Sie, dass dies nur bei zwei Objekten sinnvoll ist, die tatsächliche Daten enthalten, die von einem Puffer oder einer Zeichenfolge unterstützt werden.

Details
Parameter
[in] Another
ein Objekt, mit dem geprüft werden soll,
Rückgabewerte
true
Die Objekte sind gleich.
false
Die Objekt-Strings sind nicht gleich.

Packung

WEAVE_ERROR pack(
  System::PacketBuffer *buff
)

Verpacken Sie ein ReferencedTLVData-Objekt direkt in einen PacketBuffer.

Details
Parameter
[in] buff
den Puffer zu füllen.
Rückgabe
einen WEAVE_ERROR, der den Erfolg des zugrunde liegenden Paketaufrufs angibt.

Packung

WEAVE_ERROR pack(
  MessageIterator & i,
  uint32_t maxLen
)

packedLength

uint16_t packedLength(
  void
)

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

Details
Rückgabe
die Ganzzahllänge der gepackten Daten.

Öffentliche statische Funktionen

parse

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

Parst ein ReferencedTLVData-Objekt aus einem bereitgestellten PacketBuffer.

Parsen Sie ein ReferencedTLVData-Objekt aus einem Inet-Puffer (vorausgesetzt, es enthält nur TLV).

Details
Parameter
[in] buff
den Zwischenspeicher, aus dem gelesen werden soll.
[out] aTarget
Ein ReferencedTLVData-Objekt, das mit dem Ergebnis "gefüllt" wird.
Rückgabe
WEAVE_ERROR, die den Erfolg des zugrunde liegenden Parsing-Aufrufs wiedergibt.

parse

WEAVE_ERROR parse(
  MessageIterator & i,
  ReferencedTLVData & aTarget
)

Parsen Sie ein ReferencedTLVData-Objekt aus einem bereitgestellten MessageIterator.

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

Beachten Sie, dass hier kein tatsächliches "pars" durchgeführt wird, da der TLV im Puffer verbleibt und überhaupt nicht bearbeitet wird. Bei dieser Methode wird nur die Struktur ReferencedTLVData für die spätere Verwendung eingerichtet.

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