nl:: Weave:: Profiles:: DataManagement_Legacy
這個命名空間包含 Weave 中即將淘汰的 Weave Data Management (WDM) 設定檔介面。
摘要
Typedefs |
|
---|---|
TopicIdentifier
|
typedefuint64_t
主題 ID。 |
函式 |
|
---|---|
CheckTLVType(nl::Weave::TLV::TLVType aType, nl::Weave::TLV::TLVReader & aReader)
|
bool
|
CheckWDMTag(uint32_t aTagNum, nl::Weave::TLV::TLVReader & aReader)
|
bool
檢查 WDM 專屬代碼。
|
CloseDataListElement(nl::Weave::TLV::TLVReader & aReader)
|
停止讀取 WDM 資料清單元素。
|
CloseList(nl::Weave::TLV::TLVReader & aReader)
|
停止讀取 WDM 路徑或資料清單。
|
EncodeDeprecatedPath(TLVWriter & aWriter, const uint64_t & aTag, uint32_t aProfileId, const uint64_t & aInstanceId, uint32_t aPathLen, ...)
|
使用已淘汰的標記和整數執行個體 ID 來編碼 WDM 路徑。
|
EncodeDeprecatedPath(TLVWriter & aWriter, const uint64_t & aTag, uint32_t aProfileId, const char *aInstanceId, uint32_t aPathLen, ...)
|
使用已淘汰的標記和字串執行個體 ID 對 WDM 路徑編碼。
|
EncodePath(TLVWriter & aWriter, const uint64_t & aTag, uint32_t aProfileId, const uint64_t & aInstanceId, uint32_t aPathLen, ...)
|
以整數設定檔執行個體 ID 編碼 WDM 路徑。
|
EncodePath(TLVWriter & aWriter, const uint64_t & aTag, uint32_t aProfileId, const uint32_t aInstanceIdLen, const uint8_t *aInstanceId, uint32_t aPathLen, ...)
|
使用位元組陣列執行個體 ID 編碼 WDM 路徑。
|
EncodePath(TLVWriter & aWriter, const uint64_t & aTag, uint32_t aProfileId, const char *aInstanceId, uint32_t aPathLen, ...)
|
將 WDM 路徑編碼為字串執行個體 ID。
|
EndDataListElement(nl::Weave::TLV::TLVWriter & aWriter)
|
完成資料清單元素寫入作業。
|
EndEncodePath(TLVWriter & aWriter, TLVType & mOuterContainer, WEAVE_ERROR mError)
|
|
EndList(nl::Weave::TLV::TLVWriter & aWriter)
|
完成路徑清單或資料清單的寫入作業。
|
EndList(ReferencedTLVData & aList, nl::Weave::TLV::TLVWriter & aWriter)
|
完成路徑清單或資料清單的寫入作業。
|
IsPublisherSpecific(const TopicIdentifier & aTopicId)
|
bool
檢查主題 ID 是否專屬於發布商。
|
OpenDataList(ReferencedTLVData & aDataList, nl::Weave::TLV::TLVReader & aReader)
|
開始讀取資料清單。
|
OpenDataListElement(nl::Weave::TLV::TLVReader & aReader, nl::Weave::TLV::TLVReader & aPathReader, uint64_t & aVersion)
|
開始讀取資料清單元素。
|
OpenPathList(ReferencedTLVData & aPathList, nl::Weave::TLV::TLVReader & aReader)
|
開始讀取路徑清單。
|
PublisherSpecificTopicId(void)
|
從頭開始產生發布者專屬主題 ID。
|
SendStatusReport(ExchangeContext *aExchangeCtx, StatusReport & aStatus)
|
|
StartDataList(nl::Weave::TLV::TLVWriter & aWriter)
|
開始寫入資料清單。
|
StartDataList(ReferencedTLVData & aDataList, nl::Weave::TLV::TLVWriter & aWriter)
|
開始將資料清單寫入指定的 ReferencedTLVData 物件。
|
StartDataListElement(nl::Weave::TLV::TLVWriter & aWriter)
|
開始寫入資料清單元素。
|
StartEncodePath(TLVWriter & aWriter, const uint64_t & aTag, uint32_t aProfileId, TLVType & mOuterContainer, TLVType & mPath)
|
|
StartPathList(nl::Weave::TLV::TLVWriter & aWriter)
|
開始編寫路徑清單。
|
TxnResponseHandler(ExchangeContext *anExchangeCtx, const IPPacketInfo *anAddrInfo, const WeaveMessageInfo *aMsgInfo, uint32_t aProfileId, uint8_t aMsgType, PacketBuffer *aMsg)
|
void
|
TxnTimeoutHandler(ExchangeContext *anExchangeCtx)
|
void
|
ValidateTLVType(nl::Weave::TLV::TLVType aType, nl::Weave::TLV::TLVReader & aReader)
|
|
ValidateWDMTag(uint32_t aTagNum, nl::Weave::TLV::TLVReader & aReader)
|
確認正在讀取的 TLV 元素具有預期的 WDM 標記。
|
類別 |
|
---|---|
nl:: |
Binding 類別可代表使用 Weave 管理應用程式實體的通訊狀態。 |
nl:: |
抽象類別,內含 WDM 用戶端所需的確認和指示方法定義。 |
nl:: |
使用者希望透過 WDM 用戶端取得訂閱和通知支援時,會採用的輔助類別。 |
nl:: |
應用程式專屬 WDM 用戶端的抽象基本類別。 |
nl:: |
應用程式專屬 WDM 發布商的抽象基本類別。 |
nl:: |
抽象的 ProfileDatabase 輔助類別。 |
nl:: |
WDM 通訊協定引擎類別。 |
nl:: |
抽象類別,其中包含 WDM 發布者所需的確認和通知方法定義。 |
列舉
@103
@103
屬性 | |
---|---|
kStatus_CancelSuccess
|
出現這個舊版狀態碼表示訂閱項目已成功取消。 這個狀態碼表示訂閱項目已成功取消。 |
kStatus_IllegalReadRequest
|
此舊版狀態碼表示,發出要求讀取特定資料項目的節點沒有相關權限。 此狀態碼表示發出要求讀取特定資料項目的節點不具備相關權限。 |
kStatus_IllegalWriteRequest
|
此舊版狀態碼表示,發出寫入特定資料項目的要求的節點沒有相關權限。 此狀態碼表示提出寫入特定資料項目的要求的節點沒有相關權限。 |
kStatus_InvalidPath
|
這個舊版狀態碼表示,檢視畫面或更新要求頁框的路徑清單與回應者的節點常駐結構定義不符。 這個狀態碼表示,檢視畫面或更新要求頁框的路徑清單中的路徑與回應者的節點常駐結構定義不符。 |
kStatus_InvalidVersion
|
這個舊版狀態碼表示更新要求所包含的資料版本與發布者的最新版本不符,因此無法套用更新。 這個狀態碼表示更新要求中包含的資料版本與發布者的最新版本不符,因此無法套用更新。 |
kStatus_UnknownTopic
|
這個舊版狀態碼表示取消要求或通知中指定的主題 ID,與接收節點上的任何訂閱項目資源不符。 這個狀態碼代表取消要求或通知中指定的主題 ID,與接收節點上的任何訂閱項目資源不符。 |
kStatus_UnsupportedSubscriptionMode
|
這個舊版狀態碼表示接收端的裝置不支援要求的訂閱模式。 這個狀態碼表示接收端裝置不支援您要求的訂閱模式。 |
@166
@166
WDM 集區和資料表大小。
WDM 定義運作所需的各種集區和資料表,如下所示。
用戶端交易集區:
- kViewPoolSize
- kSubscribePoolSize
- kCancelSubscriptionPoolSize
- kUpdatePoolSize
發布商交易集區:
- kNotifyPoolSize
通訊協定引擎資料表:
- kTransactionTableSize
- kBindingTableSize
訂閱相關資料表:
- kNotifierTableSize (僅限用戶端)
- kSubscriptionMgrTableSize (僅限發布商)
請注意,這是可設定的數量,且個別平台的值會顯示在相關聯的 WeaveConfig.h 中。
屬性 | |
---|---|
kBindingTableSize
|
這是 WDM 通訊協定引擎中繫結資料表的預設大小。 您可以透過 WEAVE_CONFIG_WDM_BINDING_TABLE_SIZE 設定這個值。 |
kCancelSubscriptionPoolSize
|
這是 WDM 用戶端取消訂閱要求交易集區的預設大小。 您可以透過 WEAVE_CONFIG_WDM_CANCEL_SUBSCRIPTION_POOL_SIZE 設定這個值。 |
kNotifierTableSize
|
這是 WDM 用戶端的通知表格預設大小。 您可以透過 WEAVE_CONFIG_WDM_NOTIFIER_TABLE_SIZE 設定這個值。 |
kNotifyPoolSize
|
這是 WDM 發布商通知要求交易集區的預設大小。 您可以透過 WEAVE_CONFIG_WDM_NOTIFY_POOL_SIZE 設定這個值。 |
kSubscribePoolSize
|
這是 WDM 用戶端訂閱要求交易集區的預設大小。 您可以透過 WEAVE_CONFIG_WDM_SUBSCRIBE_POOL_SIZE 設定這個值。 |
kSubscriptionMgrTableSize
|
這是 WDM 發布商訂閱表格的預設大小。 您可以透過 WEAVE_CONFIG_WDM_SUBSCRIPTION_MGR_TABLE_SIZE 設定這個值。 |
kTransactionTableSize
|
這是 WDM 通訊協定引擎中交易資料表的預設大小。 您可以透過 WEAVE_CONFIG_WDM_TRANSACTION_TABLE_SIZE 設定這個值。 |
kUpdatePoolSize
|
這是 WDM 用戶端更新要求交易集區的預設大小。 您可以透過 WEAVE_CONFIG_WDM_UPDATE_POOL_SIZE 設定這個值。 |
kViewPoolSize
|
這是 WDM 用戶端的檢視要求交易集區預設大小。 您可以透過 WEAVE_CONFIG_WDM_VIEW_POOL_SIZE 設定這個值。 |
@167
@167
WDM 設定檔訊息類型。
這些值會在資料管理規格中說明。
注意!自 2015 年第 1 季起,舊版 WDM 中使用的訊息類型已淘汰,並定義了新的訊息類型。這可充分反映過去封裝和剖析詳細資料中的變動,以證明乾淨的休息時間。
@168
@168
其他 WDM 專屬常數。
屬性 | |
---|---|
kDefaultBindingTableIndex
|
通訊協定引擎繫結資料表中,預設繫結的索引含有多個項目。 |
kInstanceIdNotSpecified
|
在需要設定檔執行個體規格的呼叫中,指出「無」。 在大多數情況下,這通常代表相關實體中只有一個個人資料。 |
kResponseTimeoutNotSpecified
|
在要求交易的方法中,表示呼叫端已拒絕指定逾時。 一般來說,您應使用預設值 |
kTransactionIdNotSpecified
|
在採用交易 ID 的方法和資料結構中,「無」或萬用字元值。 |
kVersionNotSpecified
|
在需要資料版本規格的呼叫中,指出「沒有特定版本」。 |
kWeaveTLVControlByteLen
|
|
kWeaveTLVTagLen
|
@169
@169
WDM 專屬狀態碼。
屬性 | |
---|---|
kStatus_CancelSuccess
|
出現這個舊版狀態碼表示訂閱項目已成功取消。 這個狀態碼表示訂閱項目已成功取消。 |
kStatus_IllegalReadRequest
|
此舊版狀態碼表示,發出要求讀取特定資料項目的節點沒有相關權限。 此狀態碼表示發出要求讀取特定資料項目的節點不具備相關權限。 |
kStatus_IllegalWriteRequest
|
此舊版狀態碼表示,發出寫入特定資料項目的要求的節點沒有相關權限。 此狀態碼表示提出寫入特定資料項目的要求的節點沒有相關權限。 |
kStatus_InvalidPath
|
這個舊版狀態碼表示,檢視畫面或更新要求頁框的路徑清單與回應者的節點常駐結構定義不符。 這個狀態碼表示,檢視畫面或更新要求頁框的路徑清單中的路徑與回應者的節點常駐結構定義不符。 |
kStatus_InvalidVersion
|
這個舊版狀態碼表示更新要求所包含的資料版本與發布者的最新版本不符,因此無法套用更新。 這個狀態碼表示更新要求中包含的資料版本與發布者的最新版本不符,因此無法套用更新。 |
kStatus_UnknownTopic
|
這個舊版狀態碼表示取消要求或通知中指定的主題 ID,與接收節點上的任何訂閱項目資源不符。 這個狀態碼代表取消要求或通知中指定的主題 ID,與接收節點上的任何訂閱項目資源不符。 |
kStatus_UnsupportedSubscriptionMode
|
這個舊版狀態碼表示接收端的裝置不支援要求的訂閱模式。 這個狀態碼表示接收端裝置不支援您要求的訂閱模式。 |
@170
@170
資料管理通訊協定標記。
資料管理通訊協定定義了要在設定檔資料呈現 TLV 中使用的標記。
一般而言,新的 WDM 和舊版 WDM 之間存在相容性問題,所有這些標記都是以設定檔特定的形式使用,這會造成浪費。現在我們盡可能使用內容標記,但需要視情況保留舊的 WDM 路徑,並妥善安排。
先前版本中沒有使用 kTag_WDMDataListElementData 標記,而程式碼完全予以忽略,因此無須提供已淘汰的版本。
屬性 | |
---|---|
kTag_WDMDataList
|
元素是結構清單,內含路徑、選用版本和資料元素。 代碼類型:設定檔專屬元素類型:陣列處理:頂層 |
kTag_WDMDataListElementData
|
元素代表指向特定路徑且擁有特定版本的資料。 代碼類型:內容專屬元素類型:任何處理:必要 |
kTag_WDMDataListElementData_Deprecated
|
已淘汰, 代碼類型:內容專屬元素類型:任何處理:必要 |
kTag_WDMDataListElementPath
|
元素是資料清單元素的路徑元件。 代碼類型:內容專屬元素類型:路徑處理:必要 |
kTag_WDMDataListElementPath_Deprecated
|
已淘汰, 代碼類型:設定檔專屬元素類型:路徑處理:必要 |
kTag_WDMDataListElementVersion
|
元素是資料清單元素的版本元件。 代碼類型:內容專屬元素類型:整數處理:必要 |
kTag_WDMDataListElementVersion_Deprecated
|
已淘汰, 代碼類型:設定檔專屬元素類型:整數處理:必要 |
kTag_WDMPathArrayIndexSelector
|
路徑元素會與結構定義中的陣列對應,而內含的整數元素將用來當做該陣列的索引。 代碼類型:設定檔專屬元素類型:整數處理:選填 |
kTag_WDMPathArrayValueSelector
|
路徑元素會對應至結構定義中的陣列,而封裝的元素會做為記錄選取器使用。 代碼類型:設定檔專屬元素類型:結構處理:選用 |
kTag_WDMPathList
|
這個元素是 TLV 路徑清單。 代碼類型:設定檔專屬元素類型:陣列處理:頂層 |
kTag_WDMPathProfile
|
元素是一個用於開始路徑的結構,其中包含設定檔資訊,可讓系統解讀路徑中的標記。 代碼類型:設定檔專屬元素類型:結構處理:必填 |
kTag_WDMPathProfileId
|
這個元素是路徑設定檔元素中,起始 TLV 路徑的設定檔 ID 元件。 代碼類型:內容專屬元素類型:整數處理:必要 |
kTag_WDMPathProfileId_Deprecated
|
已淘汰, 代碼類型:設定檔專屬元素類型:整數處理:必要 |
kTag_WDMPathProfileInstance
|
元素是設定檔例項,可能會接在 TLV 路徑中的設定檔 ID。 請注意,一個節點不一定會有多個特定設定檔例項,如果只有一個節點,系統可能會省略這個元素。 代碼類型:內容專屬元素類型:任何處理:選用 |
kTag_WDMPathProfileInstance_Deprecated
|
已淘汰, 代碼類型:設定檔專屬元素類型:任何處理:選填 |
@171
@171
不同的主題 ID。
感興趣的三個區分主題 ID 皆採用「特定發布商專屬」的格式。
屬性 | |
---|---|
kAnyTopicId
|
這個名稱會當做萬用字元主題 ID。 |
kTopicIdNotSpecified
|
這是保留的特殊值,用於表示無效或萬用字元主題 ID。 |
kTopicIdPublisherSpecificMask
|
此屬性可用做建立或分解頂層 ID 的遮罩。 |
WeaveTransportOption
WeaveTransportOption
WDM 傳輸選項。
這些是 WDM 的互斥交通方式。
屬性 | |
---|---|
kTransport_TCP
|
基礎傳輸是 TCP。 您可以透過服務管理員或直接使用訊息層完成繫結。 |
kTransport_UDP
|
基礎傳輸僅是 UDP。 |
kTransport_WRMP
|
基礎傳輸僅是 UDP,但已增強「應用程式支援層」的可靠性。 |
Typedefs
TopicIdentifier
uint64_t TopicIdentifier
主題 ID。
主題 ID 為 64 位元數量,搭配兩種相關用途/語意。首先,這些路徑可用來當做一組已知路徑 (例如「Nest 煙霧偵測器」) 的傳統簡寫。這種方式使用的主題 ID 與設定檔 ID 一樣,會包含廠商程式碼,防止不同廠商自動選擇主題 ID,如下所示:
位元 48 - 63 | 位元 0 - 47 |
供應商 ID | 主題編號 |
WeaveVendorIdentifiers.hpp
函式
CheckTLVType
bool CheckTLVType( nl::Weave::TLV::TLVType aType, nl::Weave::TLV::TLVReader & aReader )
CheckWDMTag
bool CheckWDMTag( uint32_t aTagNum, nl::Weave::TLV::TLVReader & aReader )
CloseDataListElement
WEAVE_ERROR CloseDataListElement( nl::Weave::TLV::TLVReader & aReader )
停止讀取 WDM 資料清單元素。
這個方法假設有問題的元素是 WDM 資料清單的一部分,因此會將 kTLVType_Array 傳遞至 ExitContainer()。
詳細說明 | |||
---|---|---|---|
參數 |
|
||
傳回 |
WEAVE_NO_ERROR:成功後。否則,系統會傳回 WEAVE_ERROR,表示無法離開容器。
|
CloseList
WEAVE_ERROR CloseList( nl::Weave::TLV::TLVReader & aReader )
停止讀取 WDM 路徑或資料清單。
這個方法假設有問題的清單是最頂層 TLV 元素,因此會將 kTLVType_Sructure 傳遞至 ExitContainer()。
詳細說明 | |||
---|---|---|---|
參數 |
|
||
傳回 |
WEAVE_NO_ERROR:成功後。否則,系統會傳回 WEAVE_ERROR,表示無法離開容器。
|
EncodeDeprecatedPath
WEAVE_ERROR EncodeDeprecatedPath( TLVWriter & aWriter, const uint64_t & aTag, uint32_t aProfileId, const uint64_t & aInstanceId, uint32_t aPathLen, ... )
使用已淘汰的標記和整數執行個體 ID 來編碼 WDM 路徑。
注意:在 Weave 2.0 版之前,請使用服務接受的已淘汰標記組合來編碼路徑。這個版本的方法會使用數字執行個體 ID。這個方法會以 ProfileTag(kWeaveProfile_WDM, kTag_WDMPathProfile) 啟動容器,然後使用 ProfileTag(kWeaveProfile_WDM, kTag_WDMPathProfileId_Deprecated) 插入設定檔 ID。接著使用 ProfileTag(kWeaveProfile_WDM, kTag_WDMPathProfileInstance_Deprecated) 插入執行個體 ID。這是編碼路徑的已淘汰版本之一,而新版設計應避免使用此格式。
詳細說明 | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
參數 |
|
||||||||||||
傳回 |
WEAVE_NO_ERROR:成功後。否則會傳回 WEAVE_ERROR,反映無法格式化指定路徑。
|
EncodeDeprecatedPath
WEAVE_ERROR EncodeDeprecatedPath( TLVWriter & aWriter, const uint64_t & aTag, uint32_t aProfileId, const char *aInstanceId, uint32_t aPathLen, ... )
使用已淘汰的標記和字串執行個體 ID 對 WDM 路徑編碼。
注意:使用已淘汰的代碼集來編碼路徑 (請參閱 DMConstants.h)。這個版本的方法會使用執行個體 ID 字串。這個方法會以 ProfileTag(kWeaveProfile_WDM, kTag_WDMPathProfile) 啟動容器,然後使用 ProfileTag(kWeaveProfile_WDM, kTag_WDMPathProfileId_Deprecated) 插入設定檔 ID。接著使用 ProfileTag(kWeaveProfile_WDM, kTag_WDMPathProfileInstance_Deprecated) 插入執行個體 ID。這是編碼路徑的已淘汰版本之一,而新版設計應避免使用此格式。
詳細說明 | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
參數 |
|
||||||||||||
傳回 |
WEAVE_NO_ERROR:成功後。否則會傳回 WEAVE_ERROR,反映無法格式化指定路徑。
|
EncodePath
WEAVE_ERROR EncodePath( TLVWriter & aWriter, const uint64_t & aTag, uint32_t aProfileId, const uint64_t & aInstanceId, uint32_t aPathLen, ... )
以整數設定檔執行個體 ID 編碼 WDM 路徑。
注意:撰寫資料管理中所用種類的 TLV 路徑,特別是在開頭放置設定檔指定,以便解譯後續路徑元素。 這個版本的方法採用整數設定檔執行個體 ID。
這個方法會使用 ContextTag(kTag_WDMPathProfileInstance) 插入執行個體 ID,這是將路徑編碼的最新版本。
詳細說明 | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
參數 |
|
||||||||||||
傳回 |
WEAVE_NO_ERROR:成功後。否則會傳回 WEAVE_ERROR,反映無法格式化指定路徑。
|
EncodePath
WEAVE_ERROR EncodePath( TLVWriter & aWriter, const uint64_t & aTag, uint32_t aProfileId, const uint32_t aInstanceIdLen, const uint8_t *aInstanceId, uint32_t aPathLen, ... )
使用位元組陣列執行個體 ID 編碼 WDM 路徑。
注意:撰寫資料管理中所用種類的 TLV 路徑,特別是在開頭放置設定檔指定,以便解譯後續路徑元素。 這個版本的方法使用位元組陣列設定檔執行個體 ID 及長度。
這個方法會使用 ContextTag(kTag_WDMPathProfileInstance) 插入執行個體 ID,這是將路徑編碼的最新版本。
詳細說明 | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
參數 |
|
||||||||||||||
傳回 |
WEAVE_NO_ERROR:成功後。否則會傳回 WEAVE_ERROR,反映無法格式化指定路徑。
|
EncodePath
WEAVE_ERROR EncodePath( TLVWriter & aWriter, const uint64_t & aTag, uint32_t aProfileId, const char *aInstanceId, uint32_t aPathLen, ... )
將 WDM 路徑編碼為字串執行個體 ID。
注意:撰寫資料管理中所用種類的 TLV 路徑,特別是在開頭放置設定檔指定,以便解譯後續路徑元素。 這個版本的方法採用字串設定檔執行個體 ID。
這個方法會使用 ContextTag(kTag_WDMPathProfileInstance) 插入執行個體 ID,這是將路徑編碼的最新版本。
詳細說明 | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
參數 |
|
||||||||||||
傳回 |
WEAVE_NO_ERROR:成功後。否則會傳回 WEAVE_ERROR,反映無法格式化指定路徑。
|
EndDataListElement
WEAVE_ERROR EndDataListElement( nl::Weave::TLV::TLVWriter & aWriter )
完成資料清單元素寫入作業。
編寫 WDM 資料清單元素結尾的 TLV。請注意,假設我們一律會關閉清單項目,這會將類型的 kTLVType_Array 自動傳遞至 EndContainer() 呼叫。
詳細說明 | |||
---|---|---|---|
參數 |
|
||
傳回 |
WEAVE_NO_ERROR:成功後。否則,系統會傳回 WEAVE_ERROR,表示無法結束容器。
|
EndEncodePath
WEAVE_ERROR EndEncodePath( TLVWriter & aWriter, TLVType & mOuterContainer, WEAVE_ERROR mError )
EndList
WEAVE_ERROR EndList( nl::Weave::TLV::TLVWriter & aWriter )
完成路徑清單或資料清單的寫入作業。
編寫 WDM 路徑或資料清單結尾的 TLV。此外,請最終編寫寫入者。
詳細說明 | |||
---|---|---|---|
參數 |
|
||
傳回 |
WEAVE_NO_ERROR:成功後。否則,系統會傳回 WEAVE_ERROR,表示無法結束容器。
|
EndList
WEAVE_ERROR EndList( ReferencedTLVData & aList, nl::Weave::TLV::TLVWriter & aWriter )
完成路徑清單或資料清單的寫入作業。
編寫 WDM 路徑或資料清單結尾的 TLV。此外,請最終編寫寫入者。在此情況下,系統會傳入並修改要寫入 TLV 的 ReferencedTLVData 物件,並進行修改,以反映寫入的資料量。
詳細說明 | |||||
---|---|---|---|---|---|
參數 |
|
||||
傳回 |
WEAVE_NO_ERROR:成功後。否則,系統會傳回 WEAVE_ERROR,表示無法結束容器。
|
IsPublisherSpecific
bool IsPublisherSpecific( const TopicIdentifier & aTopicId )
檢查主題 ID 是否專屬於發布商。
詳細說明 | |||
---|---|---|---|
參數 |
|
||
傳回 |
如果發布商專屬的主題 ID 為「true」,否則傳回「false」
|
OpenDataList
WEAVE_ERROR OpenDataList( ReferencedTLVData & aDataList, nl::Weave::TLV::TLVReader & aReader )
開始讀取資料清單。
以全新的讀者和資料清單為依據,開始閱讀清單,並驗證最初在過程中遇到的標記和類型。如果一切順利,讀者在輸入清單容器後就會停止。
詳細說明 | |||||
---|---|---|---|---|---|
參數 |
|
||||
傳回 |
WEAVE_NO_ERROR:成功後。否則,請傳回 WEAVE_ERROR,表示開啟資料清單失敗和/或驗證相關標記和類型。
|
OpenDataListElement
WEAVE_ERROR OpenDataListElement( nl::Weave::TLV::TLVReader & aReader, nl::Weave::TLV::TLVReader & aPathReader, uint64_t & aVersion )
開始讀取資料清單元素。
假設讀者已定位在資料清單元素,請開始讀取元素,並驗證過程中一開始遇到的標記和類型。如果一切順利,讀卡機最後位於資料元素資料上,進入/輸出路徑讀取器則位於對應的路徑。
詳細說明 | |||||||
---|---|---|---|---|---|---|---|
參數 |
|
||||||
傳回 |
WEAVE_NO_ERROR,或其他與開啟及讀取資料清單元素相關聯的 WEAVE_ERROR。
|
OpenPathList
WEAVE_ERROR OpenPathList( ReferencedTLVData & aPathList, nl::Weave::TLV::TLVReader & aReader )
開始讀取路徑清單。
以全新的讀取器和路徑清單為基礎,開始讀取清單,並驗證最初在過程中遇到的標記和類型。如果一切順利,讀者在輸入清單容器後就會停止。
詳細說明 | |||||
---|---|---|---|---|---|
參數 |
|
||||
傳回 |
成功時傳回 WEAVE_NO_ERROR,否則代表 WEAVE_ERROR 表示無法開啟路徑清單和/或驗證相關標記和類型。
|
PublisherSpecificTopicId
TopicIdentifier PublisherSpecificTopicId( void )
從頭開始產生發布者專屬主題 ID。
詳細說明 | |
---|---|
傳回 |
新的主題 ID
|
SendStatusReport
WEAVE_ERROR SendStatusReport( ExchangeContext *aExchangeCtx, StatusReport & aStatus )
StartDataList
WEAVE_ERROR StartDataList( nl::Weave::TLV::TLVWriter & aWriter )
開始寫入資料清單。
撰寫 WDM 資料清單開頭的 TLV,例如做為 UpdateRequest() 的主要引數。
詳細說明 | |||
---|---|---|---|
參數 |
|
||
傳回 |
WEAVE_NO_ERROR:成功後。否則,系統會傳回 WEAVE_ERROR,表示無法啟動容器。
|
StartDataList
WEAVE_ERROR StartDataList( ReferencedTLVData & aDataList, nl::Weave::TLV::TLVWriter & aWriter )
開始將資料清單寫入指定的 ReferencedTLVData 物件。
撰寫 WDM 資料清單開頭的 TLV。在這個案例中,我們假設要將資料清單寫入參照的 TLV 資料結構。系統會將寫入者假設為未初始化,或視情況初始化為指向指定的物件。
詳細說明 | |||||
---|---|---|---|---|---|
參數 |
|
||||
傳回 |
WEAVE_NO_ERROR:成功後。否則,系統會傳回 WEAVE_ERROR,表示無法啟動容器。
|
StartDataListElement
WEAVE_ERROR StartDataListElement( nl::Weave::TLV::TLVWriter & aWriter )
開始寫入資料清單元素。
編寫 WDM 資料清單元素開頭的 TLV。
詳細說明 | |||
---|---|---|---|
參數 |
|
||
傳回 |
WEAVE_NO_ERROR:成功後。否則,系統會傳回 WEAVE_ERROR,表示無法啟動容器。
|
StartEncodePath
WEAVE_ERROR StartEncodePath( TLVWriter & aWriter, const uint64_t & aTag, uint32_t aProfileId, TLVType & mOuterContainer, TLVType & mPath )
StartPathList
WEAVE_ERROR StartPathList( nl::Weave::TLV::TLVWriter & aWriter )
開始編寫路徑清單。
撰寫 WDM 路徑清單開頭的 TLV,例如做為 ViewRequest() 的主要引數。
詳細說明 | |||
---|---|---|---|
參數 |
|
||
傳回 |
WEAVE_NO_ERROR:成功後。否則,系統會傳回 WEAVE_ERROR,表示無法啟動容器。
|
TxnResponseHandler
void TxnResponseHandler( ExchangeContext *anExchangeCtx, const IPPacketInfo *anAddrInfo, const WeaveMessageInfo *aMsgInfo, uint32_t aProfileId, uint8_t aMsgType, PacketBuffer *aMsg )
TxnTimeoutHandler
void TxnTimeoutHandler( ExchangeContext *anExchangeCtx )
ValidateTLVType
WEAVE_ERROR ValidateTLVType( nl::Weave::TLV::TLVType aType, nl::Weave::TLV::TLVReader & aReader )
請在 TLV 讀取器的頂部檢查指定的 TLV 類型,並在沒有相符項目時傳回錯誤。
詳細說明 | |||||
---|---|---|---|---|---|
參數 |
|
||||
傳回 |
如果有相符項目,則為 WEAVE_NO_ERROR;如果沒有相符項目,則傳回 WEAVE_ERROR_WRONG_TLV_TYPE。
|
WeaveTLVTypes.h
ValidateWDMTag
WEAVE_ERROR ValidateWDMTag( uint32_t aTagNum, nl::Weave::TLV::TLVReader & aReader )
確認正在讀取的 TLV 元素具有預期的 WDM 標記。
詳細說明 | |||||
---|---|---|---|---|---|
參數 |
|
||||
傳回 |
WEAVE_NO_ERROR:成功後。否則,如果代碼與指定的標記編號不符,且解讀為 WDM 標記時,則傳回 WEAVE_ERROR_INVALID_TLV_TAG。
|