nl::Weave::Profiles::ReferencedTLVData

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

Allo stesso modo, dobbiamo essere in grado di rappresentare un vecchio blob di dati TLV.

Riepilogo

Eredità

Eredita da: nl::Weave::Profiles::RetainedPacketBuffer

Costruttori e distruttori

ReferencedTLVData(void)
-------------- definizioni dei dati TLV --------------

Tipi pubblici

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

Attributi pubblici

theData
uint8_t *
theLength
uint16_t
theMaxLength
uint16_t

Funzioni pubbliche

free(void)
void
Libera un oggetto ReferencedTLVData, vale a dire non definirlo.
init(System::PacketBuffer *aBuffer)
Inizializza l'oggetto ReferencedTLVData in base a un PacketBuffer.
init(MessageIterator & i)
Inizializza un oggetto ReferencedTLVData in base a un oggetto MessageIterator.
init(uint16_t aLength, uint16_t aMaxLength, uint8_t *aByteString)
Inizializzare un ReferencedTLVObject in base a una stringa di byte.
init(TLVWriteCallback aWriteCallback, void *anAppState)
Inizializza un oggetto RefererencedTLVData in base a una funzione di callback.
isEmpty(void)
bool
Verifica se un oggetto ReferencedTLVData contiene qualcosa.
isFree(void)
bool
Controlla se un oggetto ReferencedTLVData è "senza costi", ad esempio
operator==(const ReferencedTLVData &) const
bool
Confronta un oggetto ReferencedTLVData con un altro per determinare che vi sia uguaglianza.
pack(System::PacketBuffer *buff)
Compila un oggetto ReferencedTLVData direttamente in un PacketBuffer.
pack(MessageIterator & i, uint32_t maxLen)
packedLength(void)
uint16_t
Restituisce la lunghezza dei dati supponendo che l'oggetto sia stato pacchettizzato in un buffer.

Funzioni statiche pubbliche

parse(System::PacketBuffer *buff, ReferencedTLVData & aTarget)
Analizza un oggetto ReferencedTLVData da un PacketBuffer fornito.
parse(MessageIterator & i, ReferencedTLVData & aTarget)
Analizza un oggetto ReferencedTLVData da un oggetto MessageIterator fornito.

Tipi pubblici

TLVWriteCallback

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

Attributi pubblici

theData

uint8_t * theData

theLength

uint16_t theLength

theMaxLength

uint16_t theMaxLength

Funzioni pubbliche

ReferencedTLVData

 ReferencedTLVData(
  void
)

-------------- definizioni dei dati TLV --------------

Il costruttore no-arg per i dati TLV. Restituisce un oggetto libero/non inizializzato che deve essere soggetto a uno dei metodi init() definiti qui per essere utile.

senza costi

void free(
  void
)

Libera un oggetto ReferencedTLVData, vale a dire non definirlo.

init

WEAVE_ERROR init(
  System::PacketBuffer *aBuffer
)

Inizializza l'oggetto ReferencedTLVData in base a un PacketBuffer.

Inizializza un oggetto ReferencedTLVData in presenza di un buffer pieno di TLV. Presuppone che il buffer contenga SOLO TLV.

Dettagli
Parametri
[in] aBuffer
Un buffer dei messaggi in cui si trova il TLV.
Valori restituiti
WEAVE_NO_ERROR
Incondizionatamente

init

WEAVE_ERROR init(
  MessageIterator & i
)

Inizializza un oggetto ReferencedTLVData in base a un oggetto MessageIterator.

Inizializza un oggetto ReferencedTLVData in base a un oggetto MessageIterator. In questo caso, TLV è l'ultima parte del buffer e passiamo all'iteratore del messaggio che rimanda all'ultima parte.

Dettagli
Parametri
[in] i
Un iteratore di messaggi che punta a TLV da estrarre.
Valori restituiti
WEAVE_NO_ERROR
Incondizionatamente

init

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

Inizializzare un ReferencedTLVObject in base a una stringa di byte.

Inizializza l'oggetto ReferencedTLVData con una stringa di byte contenente TLV. Questo inizializzatore è quello che utilizziamo se non c'è PacketrBuffer perché ne stiamo creando uno da pacchettizzare e inviare.

Dettagli
Parametri
[in] aLength
Una lunghezza per i dati TLV
[in] aMaxLength
La lunghezza totale del buffer
[in] aByteString
Un puntatore ai dati della stringa
Valori restituiti
WEAVE_NO_ERROR
Incondizionatamente

init

WEAVE_ERROR init(
  TLVWriteCallback aWriteCallback,
  void *anAppState
)

Inizializza un oggetto RefererencedTLVData in base a una funzione di callback.

Inizializza un oggetto ReferencedTLVData. Invece di fornire esplicitamente i dati, questa versione fornisce la funzione, il callback di scrittura e un oggetto di riferimento, che verranno passati all'oggetto, insieme a un oggetto TLVWriter, quando i dati di riferimento devono essere pacchettizzati e inviati. La firma del callback è:

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

Dettagli
Parametri
[in] aWriteCallback
la funzione da chiamare quando è il momento di scrivere un po' di TLV.
[in] anAppState
un oggetto di stato dell'applicazione da passare al callback insieme all'autore.
Valori restituiti
WEAVE_NO_ERROR
In caso di successo.
WEAVE_ERROR_INVALID_ARGUMENT
Se non è disponibile il callback di scrittura.

isEmpty

bool isEmpty(
  void
)

Verifica se un oggetto ReferencedTLVData contiene qualcosa.

Un oggetto di questo tipo potrebbe "avere" qualcosa in due modi. Potrebbe avere lunghezza pari a 0 OPPURE non avere callback di scrittura.

Dettagli
Restituisce
true se il set di dati ha una lunghezza pari a 0 o non è presente alcun callback di scrittura, altrimenti false.

isFree

bool isFree(
  void
)

Controlla se un oggetto ReferencedTLVData è "senza costi", ad esempio

non definito.

Dettagli
Restituisce
true se l'oggetto non è definito, altrimenti false.

operatore==

bool operator==(
  const ReferencedTLVData &
) const 

Confronta un oggetto ReferencedTLVData con un altro per determinare che vi sia uguaglianza.

Nota che questo ha senso solo nel caso di due oggetti che contengono dati effettivi e supportati da un buffer o una stringa.

Dettagli
Parametri
[in] Another
un oggetto da confrontare
Valori restituiti
true
Gli oggetti sono uguali.
false
Le stringhe degli oggetti non sono uguali.

confezione

WEAVE_ERROR pack(
  System::PacketBuffer *buff
)

Compila un oggetto ReferencedTLVData direttamente in un PacketBuffer.

Dettagli
Parametri
[in] buff
riempire il buffer.
Restituisce
Un WEAVE_ERROR che indica l'esito positivo della chiamata al pacchetto sottostante.

confezione

WEAVE_ERROR pack(
  MessageIterator & i,
  uint32_t maxLen
)

packedLength

uint16_t packedLength(
  void
)

Restituisce la lunghezza dei dati supponendo che l'oggetto sia stato pacchettizzato in un buffer.

Dettagli
Restituisce
la lunghezza intera dei dati pacchettizzati.

Funzioni statiche pubbliche

parse

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

Analizza un oggetto ReferencedTLVData da un PacketBuffer fornito.

Analizza un oggetto ReferencedTLVData da un buffer inet (supponendo che contenga solo TLV).

Dettagli
Parametri
[in] buff
del buffer da cui leggere.
[out] aTarget
un oggetto ReferencedTLVData per "compilare" il risultato.
Restituisce
Un WEAVE_ERROR che riflette l'esito positivo della chiamata di analisi sottostante.

parse

WEAVE_ERROR parse(
  MessageIterator & i,
  ReferencedTLVData & aTarget
)

Analizza un oggetto ReferencedTLVData da un oggetto MessageIterator fornito.

Analizza un oggetto ReferenceTLVData di un oggetto MessageIterator che si presume rimandi alla parte TLV di un messaggio.

Tieni presente che non viene eseguita alcuna "analisi" effettiva qui, poiché il TLV viene lasciato nel buffer e non viene affatto manipolato. Questo metodo configura principalmente la struttura ReferencedTLVData per l'uso successivo.

Dettagli
Parametri
[in] i
Un iteratore del messaggio da analizzare.
[out] aTarget
Un posto in cui inserire il risultato dell'analisi.
Valori restituiti
WEAVE_NO_ERROR
Incondizionatamente