nl::Weave::Profiles::ReferencedTLVData

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

同样,我们需要能够表示大量旧的 TLV 数据。

摘要

继承

沿用自: nl::Weave::Profiles::RetainedPacketBuffer

构造函数和析构函数

ReferencedTLVData(void)
-------------- TLV 数据定义 --------------

公共类型

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

公共属性

theData
uint8_t *
theLength
uint16_t
theMaxLength
uint16_t

公共函数

free(void)
void
释放 ReferencedTLVData 对象,也就是说,取消定义该对象。
init(System::PacketBuffer *aBuffer)
在给定 PacketBuffer 的情况下,初始化 ReferencedTLVData 对象。
init(MessageIterator & i)
在给定了 MessageIterator 的情况下,初始化 ReferencedTLVData 对象。
init(uint16_t aLength, uint16_t aMaxLength, uint8_t *aByteString)
给定字节字符串,初始化 ReferencedTLVObject。
init(TLVWriteCallback aWriteCallback, void *anAppState)
在给定回调函数的情况下初始化 RefererencedTLVData 对象。
isEmpty(void)
bool
检查 ReferencedTLVData 对象是否包含任何内容。
isFree(void)
bool
检查 ReferencedTLVData 对象是否“免费”,即
operator==(const ReferencedTLVData &) const
bool
对照另一个对象检查 ReferencedTLVData 对象是否相等。
pack(System::PacketBuffer *buff)
ReferencedTLVData 对象直接封装到 PacketBuffer 中。
pack(MessageIterator & i, uint32_t maxLen)
packedLength(void)
uint16_t
返回数据长度(假设对象已被打包到缓冲区中)。

公共静态函数

parse(System::PacketBuffer *buff, ReferencedTLVData & aTarget)
从提供的 PacketBuffer 解析 ReferencedTLVData 对象。
parse(MessageIterator & i, ReferencedTLVData & aTarget)
从提供的 MessageIterator 解析 ReferencedTLVData 对象。

公共类型

TLVWriteCallback

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

公共属性

theData

uint8_t * theData

theLength

uint16_t theLength

theMaxLength

uint16_t theMaxLength

公共函数

ReferencedTLVData

 ReferencedTLVData(
  void
)

-------------- TLV 数据定义 --------------

TLV 数据的无参数构造函数。用于提供一个自由/未初始化的对象,该对象必须通过此处定义的 init() 方法之一发挥作用。

免费

void free(
  void
)

释放 ReferencedTLVData 对象,也就是说,取消定义该对象。

init

WEAVE_ERROR init(
  System::PacketBuffer *aBuffer
)

在给定 PacketBuffer 的情况下,初始化 ReferencedTLVData 对象。

给定一个满 TLV 的缓冲区,初始化 ReferencedTLVData 对象。这假设缓冲区仅包含 TLV

详细信息
参数
[in] aBuffer
TLV 所在的消息缓冲区。
返回值
WEAVE_NO_ERROR
无条件

init

WEAVE_ERROR init(
  MessageIterator & i
)

在给定了 MessageIterator 的情况下,初始化 ReferencedTLVData 对象。

在给定了 MessageIterator 的情况下,初始化 ReferencedTLVData 对象。在本例中,TLV 是缓冲区的最后一部分,我们传入指向它的消息迭代器。

详细信息
参数
[in] i
指向要提取的 TLV 的消息迭代器。
返回值
WEAVE_NO_ERROR
无条件

init

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

给定字节字符串,初始化 ReferencedTLVObject。

使用包含 TLV 的字节字符串初始化 ReferencedTLVData 对象。如果没有 PacketrBuffer,我们就可以使用此初始化程序,因为我们将创建其中一个来打包和发送。

详细信息
参数
[in] aLength
TLV 数据的长度
[in] aMaxLength
缓冲区的总长度
[in] aByteString
指向字符串数据的指针
返回值
WEAVE_NO_ERROR
无条件

init

WEAVE_ERROR init(
  TLVWriteCallback aWriteCallback,
  void *anAppState
)

在给定回调函数的情况下初始化 RefererencedTLVData 对象。

初始化 ReferencedTLVData 对象。此版本没有显式提供数据,而是提供函数、写入回调和一个引用对象。当引用的数据应该打包和发送时,这些内容将连同 TLVWriter 对象一起传递给它。该回调的签名为:

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

详细信息
参数
[in] aWriteCallback
在编写 TLV 时要调用的函数。
[in] anAppState
要与写入程序一起传递给回调的应用状态对象。
返回值
WEAVE_NO_ERROR
成功时。
WEAVE_ERROR_INVALID_ARGUMENT
如果未提供写入回调。

为空

bool isEmpty(
  void
)

检查 ReferencedTLVData 对象是否包含任何内容。

这种对象可以通过两种可能的方式什么。其长度可以为 0,或者没有写入回调。

详细信息
返回值
如果数据集的长度为 0 或没有写入回调,则返回 true,否则返回 false。

isFree

bool isFree(
  void
)

检查 ReferencedTLVData 对象是否“免费”,即

未定义。

详细信息
返回值
如果对象未定义,则返回 true,否则返回 false。

运算符==

bool operator==(
  const ReferencedTLVData &
) const 

对照另一个对象检查 ReferencedTLVData 对象是否相等。

请注意,这只有在两个对象中包含由缓冲区或字符串支持的实际数据时才有意义。

详细信息
参数
[in] Another
要检查的对象
返回值
true
两个对象相等。
false
对象字符串不相等。

WEAVE_ERROR pack(
  System::PacketBuffer *buff
)

ReferencedTLVData 对象直接封装到 PacketBuffer 中。

详细信息
参数
[in] buff
要填充的缓冲区。
返回值
WEAVE_ERROR ,用于表示底层软件包调用是否成功。

WEAVE_ERROR pack(
  MessageIterator & i,
  uint32_t maxLen
)

packedLength

uint16_t packedLength(
  void
)

返回数据长度(假设对象已被打包到缓冲区中)。

详细信息
返回值
打包数据的整数长度。

公共静态函数

parse

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

从提供的 PacketBuffer 解析 ReferencedTLVData 对象。

从 inet 缓冲区中解析 ReferencedTLVData 对象(假设该对象只包含 TLV)。

详细信息
参数
[in] buff
要读取的缓冲区空间。
[out] aTarget
ReferencedTLVData 对象“填充”结果。
返回值
WEAVE_ERROR ,用于表示底层解析调用是否成功。

parse

WEAVE_ERROR parse(
  MessageIterator & i,
  ReferencedTLVData & aTarget
)

从提供的 MessageIterator 解析 ReferencedTLVData 对象。

从假定指向消息的 TLV 部分的 MessageIterator 对象解析 ReferenceTLVData 对象。

请注意,没有实际的“解析”因为 TLV 留在缓冲区中,根本没有被操作,所以就在这里完成。此方法主要只是设置 ReferencedTLVData 结构以供稍后使用。

详细信息
参数
[in] i
正在解析的消息的迭代器。
[out] aTarget
放置解析结果的位置。
返回值
WEAVE_NO_ERROR
无条件