nl:: Weave:: Profiles:: ReferencedTLVData
#include <src/lib/profiles/common/WeaveMessage.h>
同樣地,我們需要能夠表示 TLV 資料中的大型舊 blob。
摘要
繼承
沿用自: nl::Weave::Profiles::RetainedPacketBuffer
建構函式和解構函式 |
|
---|---|
ReferencedTLVData(void)
-------------- TLV 資料定義 --------------
|
公開類型 |
|
---|---|
TLVWriteCallback)(TLV::TLVWriter &aWriter, void *aAppState)
|
typedefvoid(*
|
公開屬性 |
|
---|---|
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 )
init
WEAVE_ERROR init( System::PacketBuffer *aBuffer )
初始化具有 PacketBuffer 的 ReferencedTLVData 物件。
針對具有完整 TLV 的緩衝區初始化 ReferencedTLVData 物件。上述情況假設緩衝區「只有」包含 TLV。
詳細資料 | |||
---|---|---|---|
參數 |
|
||
傳回值 |
|
init
WEAVE_ERROR init( MessageIterator & i )
初始化指定 MessageIterator 的 ReferencedTLVData 物件。
初始化指定 MessageIterator 的 ReferencedTLVData 物件。在此情況下,TLV 就是緩衝區的最後一個部分,我們會傳遞指向該緩衝區的訊息疊代器。
詳細資料 | |||
---|---|---|---|
參數 |
|
||
傳回值 |
|
init
WEAVE_ERROR init( uint16_t aLength, uint16_t aMaxLength, uint8_t *aByteString )
指定位元組字串的 ReferencedTLVObject。
使用內含 TLV 的位元組字串初始化 ReferencedTLVData 物件。如果沒有 PacketrBuffer,我們會使用這個初始化器來建立封裝和傳送。
詳細資料 | |||||||
---|---|---|---|---|---|---|---|
參數 |
|
||||||
傳回值 |
|
init
WEAVE_ERROR init( TLVWriteCallback aWriteCallback, void *anAppState )
根據回呼函式初始化 RefererencedTLVData 物件。
初始化 ReferencedTLVData 物件。這個版本不會明確提供資料,而是在需要封裝和傳送參照資料時,提供函式、寫入回呼和參照物件,這個物件會連同 TLVWriter 物件一併傳遞至該物件。該回呼的簽名為:
typedef void (*TLVWriteCallback)(TLV::TLVWriter &aWriter, void *aAppState);
詳細資料 | |||||
---|---|---|---|---|---|
參數 |
|
||||
傳回值 |
|
空白
bool isEmpty( void )
檢查 ReferencedTLVData 物件中是否有任何內容。
這類物件有以下兩種可能的方式例如文字、圖片、模型可以長度為 0,「或是」無法寫入回呼。
詳細資料 | |
---|---|
傳回 |
如果資料集長度為 0 或目前沒有寫入回呼,傳回 true,否則傳回 false。
|
isFree
bool isFree( void )
運算子==
bool operator==( const ReferencedTLVData & ) const
檢查 ReferencedTLVData 物件並比較另一個物件是否相等。
請注意,只有在兩個物件具備實際資料,且由緩衝區或字串支援時,才適合使用這個方法。
詳細資料 | |||||
---|---|---|---|---|---|
參數 |
|
||||
傳回值 |
|
包
WEAVE_ERROR pack( System::PacketBuffer *buff )
包
WEAVE_ERROR pack( MessageIterator & i, uint32_t maxLen )
packedLength
uint16_t packedLength( void )
系統會假設物件已封裝至緩衝區中,才傳回資料長度。
詳細資料 | |
---|---|
傳回 |
已封裝資料的整數長度。
|
公開的靜態函式
parse
WEAVE_ERROR parse( System::PacketBuffer *buff, ReferencedTLVData & aTarget )
從提供的 PacketBuffer 剖析 ReferencedTLVData 物件。
將 ReferencedTLVData 物件從內緩衝區剖析 (假設該物件僅包含 TLV)。
詳細資料 | |||||
---|---|---|---|---|---|
參數 |
|
||||
傳回 |
WEAVE_ERROR 表示基礎剖析呼叫成功。
|
parse
WEAVE_ERROR parse( MessageIterator & i, ReferencedTLVData & aTarget )
從提供的 MessageIterator 剖析 ReferencedTLVData 物件。
從 MessageIterator 物件剖析 ReferenceTLVData 物件,該物件會假設為位於訊息的 TLV 部分。
請注意,系統不會顯示實際的「剖析」會執行此作業,因為 TLV 會留在緩衝區中,並未進行任何操作。這個方法主要只設定 ReferencedTLVData 結構,供日後使用。
詳細資料 | |||||
---|---|---|---|---|---|
參數 |
|
||||
傳回值 |
|