透過集合功能整理內容 你可以依據偏好儲存及分類內容。

nl::編織::設定檔::參考參考:LLVData

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

同樣地,我們需要能夠呈現 TLV 資料的大型舊 blob。

總結

繼承

沿用來源: 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)
初始化指定 MessageIteratorReferencedTLVData 物件。
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)

公開屬性

數據

uint8_t * theData

長度

uint16_t theLength

長度上限

uint16_t theMaxLength

公開函式

參照 TLVData

 ReferencedTLVData(
  void
)

-------------- TLV 資料定義 --------------

TLV 資料的無真實建構函式。提供免費的/未初始化物件,其必須遵循這裡定義的其中一個 init() 方法,才能派上用場。

免費

void free(
  void
)

免費提供 ReferencedTLVData 物件,也就是取消定義該物件。

init

WEAVE_ERROR init(
  System::PacketBuffer *aBuffer
)

初始化指定 PacketBuffer 的 ReferencedTLVData 物件。

初始化一個 ReferencedTLVData 對象,請為滿足 TLV。此假設緩衝區「只」包含 TLV

詳細資料
參數
[in] aBuffer
TLV 所在的訊息緩衝區。
傳回值
WEAVE_NO_ERROR
無條件

init

WEAVE_ERROR init(
  MessageIterator & i
)

初始化指定 MessageIteratorReferencedTLVData 物件。

初始化指定 MessageIteratorReferencedTLVData 物件。在這種情況下,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。

免費

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
)

封包長度

uint16_t packedLength(
  void
)

假設物件已裝入緩衝區,傳回資料長度。

詳細資料
傳回
已封裝資料的整數長度。

公開的靜態函式

parse

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

從提供的 PacketBuffer 剖析 ReferencedTLVData 物件。

ReferencedTLVData 物件排除在獨立緩衝區中 (假設該物件僅包含 TLV)。

詳細資料
參數
[in] buff
要讀取的緩衝區
[out] aTarget
ReferencedTLVData 物件,用於傳回結果。
傳回
WEAVE_ERROR 代表基礎剖析呼叫成功。

parse

WEAVE_ERROR parse(
  MessageIterator & i,
  ReferencedTLVData & aTarget
)

從提供的 MessageIterator 剖析 ReferencedTLVData 物件。

MessageIterator 物件剖析參照 T/VVData 物件,並假設該標頭指向訊息的 TLV 部分。

請注意,由於 TLV 保留在緩衝區中且並未受到操控,所以這裡並沒有實際執行「等於」的情形。此方法主要只會設定 ReferencedTLVData 結構,以供日後使用。

詳細資料
參數
[in] i
要剖析的訊息的疊代器。
[out] aTarget
要放置剖析結果的位置。
傳回值
WEAVE_NO_ERROR
無條件