nl::Weave::Profiles::ReferencedTLVData

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

De manera similar, necesitamos poder representar un BLOB antiguo de datos TLV.

Resumen

Herencia

Se hereda de: nl::Weave::Profiles::RetainedPacketBuffer

Constructores y destructores

ReferencedTLVData(void)
-------------- para los datos TLV --------------

Tipos públicos

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

Atributos públicos

theData
uint8_t *
theLength
uint16_t
theMaxLength
uint16_t

Funciones públicas

free(void)
void
Liberar un objeto ReferencedTLVData, es decir, anular la definición
init(System::PacketBuffer *aBuffer)
Inicializa el objeto ReferencedTLVData con un objeto PackageBuffer.
init(MessageIterator & i)
Inicializa un objeto ReferencedTLVData según un MessageIterator.
init(uint16_t aLength, uint16_t aMaxLength, uint8_t *aByteString)
Inicializar un ReferencedTLVObject según una string de bytes
init(TLVWriteCallback aWriteCallback, void *anAppState)
Inicializa un objeto RefererencedTLVData con una función de devolución de llamada.
isEmpty(void)
bool
Comprueba si un objeto ReferencedTLVData tiene algo.
isFree(void)
bool
Verifica si un objeto ReferencedTLVData es "gratuito", es decir,
operator==(const ReferencedTLVData &) const
bool
Verifica la igualdad de un objeto ReferencedTLVData contra otro.
pack(System::PacketBuffer *buff)
Empaqueta un objeto ReferencedTLVData directamente en un packageBuffer.
pack(MessageIterator & i, uint32_t maxLen)
packedLength(void)
uint16_t
Muestra la longitud de los datos suponiendo que el objeto se empaquetó en un búfer.

Funciones estáticas públicas

parse(System::PacketBuffer *buff, ReferencedTLVData & aTarget)
Analizar un objeto ReferencedTLVData desde un packageBuffer proporcionado
parse(MessageIterator & i, ReferencedTLVData & aTarget)
Analizar un objeto ReferencedTLVData desde un MessageIterator suministrado

Tipos públicos

TLVWriteCallback

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

Atributos públicos

theData

uint8_t * theData

theLength

uint16_t theLength

theMaxLength

uint16_t theMaxLength

Funciones públicas

ReferencedTLVData

 ReferencedTLVData(
  void
)

-------------- para los datos TLV --------------

El constructor sin argumentos para datos TLV. Entrega un objeto libre o no inicializado que debe estar sujeto a uno de los métodos init() que se definen aquí para que pueda ser útil.

gratis

void free(
  void
)

Liberar un objeto ReferencedTLVData, es decir, anular la definición

init

WEAVE_ERROR init(
  System::PacketBuffer *aBuffer
)

Inicializa el objeto ReferencedTLVData con un objeto PackageBuffer.

Inicializa un objeto ReferencedTLVData con un búfer lleno de TLV. Esto supone que el búfer SOLO contiene TLV.

Detalles
Parámetros
[in] aBuffer
Un búfer de mensajes en el que reside el TLV.
Valores de retorno
WEAVE_NO_ERROR
Incondicionalmente

init

WEAVE_ERROR init(
  MessageIterator & i
)

Inicializa un objeto ReferencedTLVData según un MessageIterator.

Inicializa un objeto ReferencedTLVData según un MessageIterator. En este caso, el TLV es la última parte del búfer y pasamos un iterador de mensajes que apunta a ella.

Detalles
Parámetros
[in] i
Un iterador de mensajes que apunta a TLV para que se extraiga.
Valores de retorno
WEAVE_NO_ERROR
Incondicionalmente

init

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

Inicializar un ReferencedTLVObject según una string de bytes

Inicializa el objeto ReferencedTLVData con una cadena de bytes que contenga TLV. Este inicializador es el que usamos si no hay PackagerBuffer, ya que estamos creando uno para empaquetar y enviar.

Detalles
Parámetros
[in] aLength
Una longitud para los datos de TLV
[in] aMaxLength
La longitud total del búfer
[in] aByteString
Un puntero para los datos de cadenas
Valores de retorno
WEAVE_NO_ERROR
Incondicionalmente

init

WEAVE_ERROR init(
  TLVWriteCallback aWriteCallback,
  void *anAppState
)

Inicializa un objeto RefererencedTLVData con una función de devolución de llamada.

Inicializa un objeto ReferencedTLVData. En lugar de proporcionar los datos de forma explícita, esta versión proporciona una función, la devolución de llamada de escritura y un objeto de referencia, que se le pasará, junto con un objeto TLVWriter, cuando se supone que los datos referenciados se deben empaquetar y enviar. La firma de esa devolución de llamada es la siguiente:

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

Detalles
Parámetros
[in] aWriteCallback
la función a la que se llamará cuando sea el momento de escribir algún TLV.
[in] anAppState
un objeto de estado de la aplicación que se pasará a la devolución de llamada junto con el escritor.
Valores de retorno
WEAVE_NO_ERROR
Si tiene éxito.
WEAVE_ERROR_INVALID_ARGUMENT
Si no se proporciona la devolución de llamada de escritura.

estáVacío

bool isEmpty(
  void
)

Comprueba si un objeto ReferencedTLVData tiene algo.

Existen dos formas posibles en que un objeto “tener” o algo. Puede tener una longitud de 0 O puede no tener una devolución de llamada de escritura.

Detalles
Resultado que se muestra
true si el conjunto de datos tiene una longitud de 0 o no hay una devolución de llamada de escritura disponible; de lo contrario, es false.

isFree

bool isFree(
  void
)

Verifica si un objeto ReferencedTLVData es "gratuito", es decir,

indefinido.

Detalles
Resultado que se muestra
true si el objeto no está definido, de lo contrario, false.

operador==

bool operator==(
  const ReferencedTLVData &
) const 

Verifica la igualdad de un objeto ReferencedTLVData frente a otro.

Ten en cuenta que esto solo tiene sentido en el caso de dos objetos que tengan datos reales respaldados por un búfer o una cadena.

Detalles
Parámetros
[in] Another
un objeto para verificar
Valores de retorno
true
Los objetos son iguales.
false
Las cadenas de los objetos no son iguales.

paquete

WEAVE_ERROR pack(
  System::PacketBuffer *buff
)

Empaqueta un objeto ReferencedTLVData directamente en un packageBuffer.

Detalles
Parámetros
[in] buff
el búfer que se debe llenar.
Resultado que se muestra
un error WEAVE_ERROR que refleja el éxito de la llamada al paquete subyacente.

paquete

WEAVE_ERROR pack(
  MessageIterator & i,
  uint32_t maxLen
)

packedLength

uint16_t packedLength(
  void
)

Muestra la longitud de los datos suponiendo que el objeto se empaquetó en un búfer.

Detalles
Resultado que se muestra
la longitud de número entero de los datos empaquetados.

Funciones estáticas públicas

parse

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

Analizar un objeto ReferencedTLVData de un packageBuffer proporcionado

Analizar un objeto ReferencedTLVData fuera de un búfer inet (suponiendo que solo contiene TLV)

Detalles
Parámetros
[in] buff
el búfer del que se leerá.
[out] aTarget
un objeto ReferencedTLVData para "fill" con el resultado.
Resultado que se muestra
un error WEAVE_ERROR que refleja el éxito de la llamada de análisis subyacente.

parse

WEAVE_ERROR parse(
  MessageIterator & i,
  ReferencedTLVData & aTarget
)

Analizar un objeto ReferencedTLVData desde un MessageIterator suministrado

Analizar un objeto ReferenceTLVData de un objeto MessageIterator que se supone que apunta a la parte de TLV de un mensaje

Ten en cuenta que no hay "análisis" reales se realiza aquí, ya que el TLV se deja en el búfer y no se manipula en absoluto. Este método solo configura la estructura ReferencedTLVData para su uso posterior.

Detalles
Parámetros
[in] i
Un iterador sobre el mensaje que se analiza.
[out] aTarget
Un lugar para colocar el resultado del análisis.
Valores de retorno
WEAVE_NO_ERROR
Incondicionalmente