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

NL::編織::簡介:: DataManagement_Legacy

此命名空間包括 Weave 中即將棄用的 Weave 數據管理 (WDM) 配置文件的所有接口。

概括

枚舉

@103 {
kStatus_CancelSuccess = 0x0001,
kStatus_InvalidPath = 0x0013,
kStatus_UnknownTopic = 0x0014,
kStatus_IllegalReadRequest = 0x0015,
kStatus_IllegalWriteRequest = 0x0016,
kStatus_InvalidVersion = 0x0017,
kStatus_UnsupportedSubscriptionMode = 0x0018
}
枚舉
@166 {
kViewPoolSize = WEAVE_CONFIG_WDM_VIEW_POOL_SIZE,
kSubscribePoolSize = WEAVE_CONFIG_WDM_SUBSCRIBE_POOL_SIZE,
kCancelSubscriptionPoolSize = WEAVE_CONFIG_WDM_CANCEL_SUBSCRIPTION_POOL_SIZE,
kUpdatePoolSize = WEAVE_CONFIG_WDM_UPDATE_POOL_SIZE,
kNotifyPoolSize = WEAVE_CONFIG_WDM_NOTIFY_POOL_SIZE,
kTransactionTableSize = WEAVE_CONFIG_WDM_TRANSACTION_TABLE_SIZE,
kBindingTableSize = WEAVE_CONFIG_WDM_BINDING_TABLE_SIZE,
kNotifierTableSize = WEAVE_CONFIG_WDM_NOTIFIER_TABLE_SIZE,
kSubscriptionMgrTableSize = WEAVE_CONFIG_WDM_SUBSCRIPTION_MGR_TABLE_SIZE
}
枚舉
WDM 池和表大小。
@167 {
kMsgType_ViewRequest = 0x10,
kMsgType_ViewResponse = 0x11,
kMsgType_SubscribeRequest = 0x12,
kMsgType_SubscribeResponse = 0x13,
kMsgType_CancelSubscriptionRequest = 0x14,
kMsgType_UpdateRequest = 0x15,
kMsgType_NotifyRequest = 0x16,
kMsgType_ViewRequest_Deprecated = 0x00,
kMsgType_ViewResponse_Deprecated = 0x01,
kMsgType_SubscribeRequest_Deprecated = 0x02,
kMsgType_SubscribeResponse_Deprecated = 0x03,
kMsgType_CancelSubscriptionRequest_Deprecated = 0x04,
kMsgType_UpdateRequest_Deprecated = 0x05,
kMsgType_NotifyRequest_Deprecated = 0x06
}
枚舉
WDM 配置文件消息類型。
@168 {
kTransactionIdNotSpecified = 0,
kResponseTimeoutNotSpecified = 0,
kVersionNotSpecified = 0xFFFFFFFFFFFFFFFFULL,
kInstanceIdNotSpecified = 0,
kDefaultBindingTableIndex = 0,
kWeaveTLVTagLen = 8,
kWeaveTLVControlByteLen = 1
}
枚舉
雜項 WDM 特定常數。
@169 {
kStatus_CancelSuccess = 0x0001,
kStatus_InvalidPath = 0x0013,
kStatus_UnknownTopic = 0x0014,
kStatus_IllegalReadRequest = 0x0015,
kStatus_IllegalWriteRequest = 0x0016,
kStatus_InvalidVersion = 0x0017,
kStatus_UnsupportedSubscriptionMode = 0x0018
}
枚舉
WDM 特定的狀態代碼。
@170 {
kTag_WDMPathList = 100,
kTag_WDMPathProfile = 101,
kTag_WDMPathProfileId = 1,
kTag_WDMPathProfileInstance = 2,
kTag_WDMPathProfileId_Deprecated = 102,
kTag_WDMPathProfileInstance_Deprecated = 103,
kTag_WDMPathArrayIndexSelector = 104,
kTag_WDMPathArrayValueSelector = 105,
kTag_WDMDataList = 200,
kTag_WDMDataListElementPath = 3,
kTag_WDMDataListElementVersion = 4,
kTag_WDMDataListElementData = 5,
kTag_WDMDataListElementPath_Deprecated = 201,
kTag_WDMDataListElementVersion_Deprecated = 202,
kTag_WDMDataListElementData_Deprecated = 203
}
枚舉
數據管理協議標籤。
@171 {
kTopicIdPublisherSpecificMask = 0xFFFF000000000000ULL,
kTopicIdNotSpecified = 0x0000000000000000ULL,
kAnyTopicId = 0xFFFFFFFFFFFFFFFFULL
}
枚舉
可分辨的主題 ID。
WeaveTransportOption {
kTransport_TCP = 1,
kTransport_WRMP = 2,
kTransport_UDP = 3
}
枚舉
WDM 傳輸選項。

類型定義

TopicIdentifier類型定義
uint64_t
主題標識符。

職能

CheckTLVType ( nl::Weave::TLV::TLVType aType,nl::Weave::TLV::TLVReader & aReader)
bool
檢查一個TLV元素是讀有預期的TLV類型。
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, ...)
使用字符串實例 ID 對 WDM 路徑進行編碼。
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)
驗證一個TLV元素被讀取所期待的TLV類型。
ValidateWDMTag (uint32_t aTagNum,nl::Weave::TLV::TLVReader & aReader)
驗證一個TLV元素被讀取所期待的WDM標籤。

班級

NL ::編織::概況:: DataManagement_Legacy ::綁定

綁定類管理代表用紡織品的應用實體的通信狀態。

NL ::編織::概況:: DataManagement_Legacy :: ClientDataManager

包含 WDM 客戶端所需的確認和指示方法定義的抽像類。

NL ::編織::概況:: DataManagement_Legacy :: ClientNotifier

當 WDM 客戶端需要訂閱和通知支持時使用的輔助類。

NL ::編織::概況:: DataManagement_Legacy :: DMClient

特定於應用程序的 WDM 客戶端的抽象基類。

NL ::編織::概況:: DataManagement_Legacy :: DMPublisher

特定於應用程序的 WDM 發布者的抽象基類。

NL ::編織::概況:: DataManagement_Legacy :: ProfileDatabase

抽象ProfileDatabase輔助類。

NL ::編織::概況:: DataManagement_Legacy :: ProtocolEngine

WDM 協議引擎類。

NL ::編織::概況:: DataManagement_Legacy :: PublisherDataManager

包含 WDM 發布者所需的確認和通知方法定義的抽像類。

枚舉

@103

 @103
特性
kStatus_CancelSuccess

此舊狀態代碼表示訂閱已成功取消。

此狀態代碼表示訂閱已成功取消。

kStatus_IllegalReadRequest

此舊狀態代碼意味著發出讀取特定數據項請求的節點無權這樣做。

此狀態代碼意味著發出讀取特定數據項請求的節點無權這樣做。

kStatus_IllegalWriteRequest

此舊狀態代碼意味著發出寫入特定數據項請求的節點無權這樣做。

此狀態代碼意味著發出寫入特定數據項請求的節點無權這樣做。

kStatus_InvalidPath

此舊狀態代碼意味著來自視圖或更新請求幀的路徑列表的路徑與響應者的節點駐留模式不匹配。

此狀態代碼表示視圖或更新請求幀的路徑列表中的路徑與響應者的節點駐留模式不匹配。

kStatus_InvalidVersion

此舊狀態代碼意味著更新請求中包含的數據版本與發布者上的最新版本不匹配,因此無法應用更新。

此狀態代碼表示更新請求中包含的數據版本與發布者上的最新版本不匹配,因此無法應用更新。

kStatus_UnknownTopic

此舊狀態代碼意味著取消請求或通知中給出的主題標識符與接收節點上現有的任何訂閱都不匹配。

此狀態代碼表示取消請求或通知中給出的主題標識符與接收節點上現有的任何訂閱都不匹配。

kStatus_UnsupportedSubscriptionMode

此舊狀態代碼意味著接收設備不支持請求的訂閱模式。

此狀態代碼表示接收設備不支持請求的訂閱模式。

@166

 @166

WDM 池和表大小。

WDM 定義了其操作所需的各種池和表,如下所示。

客戶端交易池:

  • 視圖池大小
  • 訂閱池大小
  • kCancelSubscriptionPoolSize
  • k更新池大小

發布者交易池:

  • kNotifyPoolSize

協議引擎表:

  • 事務表大小
  • 綁定表大小

訂閱相關表:

  • 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 年第一季度,WDM 以前版本中使用的消息類型已被棄用,並定義了新的消息類型,這反映了過去打包和解析細節的充分轉變,證明徹底打破是合理的。

特性
kMsgType_CancelSubscriptionRequest

取消訂閱請求消息。

kMsgType_CancelSubscriptionRequest_Deprecated

已棄用

kMsgType_NotifyRequest

通知請求消息。

kMsgType_NotifyRequest_Deprecated

已棄用

kMsgType_SubscribeRequest

訂閱請求消息。

kMsgType_SubscribeRequest_Deprecated

已棄用

kMsgType_SubscribeResponse

訂閱響應消息。

kMsgType_SubscribeResponse_Deprecated

已棄用

kMsgType_UpdateRequest

更新請求消息。

kMsgType_UpdateRequest_Deprecated

已棄用

kMsgType_ViewRequest

查看請求消息。

kMsgType_ViewRequest_Deprecated

已棄用

kMsgType_ViewResponse

查看響應消息。

kMsgType_ViewResponse_Deprecated

已棄用

@168

 @168

雜項 WDM 特定常數。

特性
kDefaultBindingTableIndex

具有多個條目的協議引擎綁定表中默認綁定的索引。

kInstanceIdNotSpecified

在需要配置文件實例規範的調用中,指示“無”。

大多數情況下,這意味著相關實體上僅存在配置文件的一個實例。

kResponseTimeoutNotSpecified

在請求事務的方法中,指示調用者已拒絕指定超時。

通常這意味著應該使用默認值。

kTransactionIdNotSpecified

在採用事務 ID 的方法和數據結構中,指示“無”或通配符值。

kVersionNotSpecified

在需要數據版本規範的調用中,指示“沒有特定版本”。

kWeaveTLVControlByteLen

一個的長度TLV控制字節,以支持方法,在編碼WDM結構中使用TLV

kWeaveTLVTagLen

標準長度在全合格的字節TLV標籤,在支持的方法,在編碼WDM結構中使用TLV

@169

 @169

WDM 特定的狀態代碼。

特性
kStatus_CancelSuccess

此舊狀態代碼表示訂閱已成功取消。

此狀態代碼表示訂閱已成功取消。

kStatus_IllegalReadRequest

此舊狀態代碼意味著發出讀取特定數據項請求的節點無權這樣做。

此狀態代碼意味著發出讀取特定數據項請求的節點無權這樣做。

kStatus_IllegalWriteRequest

此舊狀態代碼意味著發出寫入特定數據項請求的節點無權這樣做。

此狀態代碼意味著發出寫入特定數據項請求的節點無權這樣做。

kStatus_InvalidPath

此舊狀態代碼意味著來自視圖或更新請求幀的路徑列表的路徑與響應者的節點駐留模式不匹配。

此狀態代碼表示視圖或更新請求幀的路徑列表中的路徑與響應者的節點駐留模式不匹配。

kStatus_InvalidVersion

此舊狀態代碼意味著更新請求中包含的數據版本與發布者上的最新版本不匹配,因此無法應用更新。

此狀態代碼表示更新請求中包含的數據版本與發布者上的最新版本不匹配,因此無法應用更新。

kStatus_UnknownTopic

此舊狀態代碼意味著取消請求或通知中給出的主題標識符與接收節點上現有的任何訂閱都不匹配。

此狀態代碼表示取消請求或通知中給出的主題標識符與接收節點上現有的任何訂閱都不匹配。

kStatus_UnsupportedSubscriptionMode

此舊狀態代碼意味著接收設備不支持請求的訂閱模式。

此狀態代碼表示接收設備不支持請求的訂閱模式。

@170

 @170

數據管理協議標籤。

數據管理協議定義了要使用多個標籤TLV簡檔數據的表示。

像往常一樣,新 WDM 和舊 WDM 之間存在兼容性問題。在過去的壞日子裡,所有這些標籤都被應用為特定於配置文件,這是一種浪費空間。現在我們在可能的情況下使用上下文標籤,但我們需要在適當的地方保留舊的標籤(並有一種將路徑編碼到位的機制)。

kTag_WDMDataListElementData 標記在之前的版本中沒有使用,並且被代碼完全忽略,因此我們不必提供棄用版本。

特性
kTag_WDMDataList

該元素是一個包含路徑、可選版本和數據元素的結構列表。

標記類型:特定於配置文件的元素類型:陣列處置:頂級

kTag_WDMDataListElementData

該元素表示給定路徑指向並具有給定版本的數據。

標籤類型:特定於上下文的元素類型:任何處置:必需

kTag_WDMDataListElementData_Deprecated

已棄用。

標籤類型:特定於上下文的元素類型:任何處置:必需

kTag_WDMDataListElementPath

該元素是數據列表元素的路徑組件。

標記類型:特定於上下文的元素類型:路徑處置:必需

kTag_WDMDataListElementPath_Deprecated

已棄用。

標記類型:特定於配置文件的元素類型:路徑處置:必需

kTag_WDMDataListElementVersion

該元素是數據列表元素的版本組件。

標籤類型:特定於上下文的元素類型:整數處置:必需

kTag_WDMDataListElementVersion_Deprecated

已棄用。

標籤類型:特定於配置文件的元素類型:整數處置:必需

kTag_WDMPathArrayIndexSelector

path 元素對應於模式中的一個數組,包含的整數元素將用作該數組的索引。

標籤類型:配置文件特定元素類型:整數處置:可選

kTag_WDMPathArrayValueSelector

path 元素對應於模式中的一個數組,封裝的元素將用作記錄選擇器。

標籤類型:特定於配置文件的元素類型:結構配置:可選

kTag_WDMPathList

該元件是列表TLV路徑。

標籤類型:特定於配置文件的元素類型:陣列配置:頂級

kTag_WDMPathProfile

元素是用於開始路徑的結構,並且包含要根據其解釋路徑中的標籤的配置文件信息。

標籤類型:特定於配置文件的元素類型:結構處置:必需

kTag_WDMPathProfileId

該元件是開頭的路徑剖面元件的配置文件ID部件TLV路徑。

標籤類型:特定於上下文的元素類型:整數處置:必需

kTag_WDMPathProfileId_Deprecated

已棄用。

標籤類型:配置文件特定元素類型:整數處置:必需

kTag_WDMPathProfileInstance

該元件是一個簡檔實例,它可以跟隨配置文件ID在TLV路徑。

請注意,一個節點可能有也可能沒有特定配置文件的多個實例,並且在只有一個的情況下,可以省略該元素。

標籤類型:特定於上下文的元素類型:任何處置:可選

kTag_WDMPathProfileInstance_Deprecated

已棄用。

標籤類型:配置文件特定元素類型:任何處置:可選

@171

 @171

可分辨的主題 ID。

有三個不同的感興趣的主題 ID,所有三個都被格式化為“特定於發布者”。

特性
kAnyTopicId

這被保留為通配符主題 ID。

kTopicIdNotSpecified

這是一個保留的特殊值,用於表示無效或通配符主題 ID。

kTopicIdPublisherSpecificMask

這用作創建或分解 topci ID 的掩碼。

編織傳輸選項

 WeaveTransportOption

WDM 傳輸選項。

這些是 WDM 互斥的傳輸選項。

特性
kTransport_TCP

底層傳輸是 TCP。

可以使用服務管理器或直接使用消息層來完成綁定。

kTransport_UDP

底層傳輸完全是 UDP。

kTransport_WRMP

底層傳輸完全是 UDP,但具有“應用程序支持層”可靠性增強。

類型定義

主題標識符

uint64_t TopicIdentifier

主題標識符。

主題標識符是具有兩個相關用途/語義的 64 位數量。首先,它們可以用作一組眾所周知的路徑的常規簡寫,例如“Nest 煙霧探測器”。以這種方式使用的主題 ID 應與配置文件標識符一樣,包含一個供應商代碼,以防止不同供應商自主選擇的主題 ID 發生衝突,如下所示:

位 48 - 63位 0 - 47
供應商編號話題號
主題標識符的第二種用途/語義出現在 WDM 客戶端和發布者之間的動態訂閱的情況下。在這種情況下,發布者應始終提供代表特定訂閱的唯一主題 ID,無論訂閱是使用眾所周知的主題 ID 還是任意路徑列表請求,它都應這樣做。這種形式的主題標識符通過供應商代碼 0xFFFF 來區分。

也可以看看:
WeaveVendorIdentifiers.hpp

職能

檢查TLV類型

bool CheckTLVType(
  nl::Weave::TLV::TLVType aType,
  nl::Weave::TLV::TLVReader & aReader
)

檢查一個TLV元素是讀有預期的TLV類型。

檢查給定的TLV在的頭靠在元素類型類型TLV讀者。

細節
參數
[in] aType
要針對特定元素檢查的 TLVType
[in] aReader
到的參考TLV定位在元件讀取器進行檢查
退貨
如果元素的 TLVType 和 aType 匹配,則為 true。
也可以看看:
WeaveTLVTypes.h

檢查WDMT標籤

bool CheckWDMTag(
  uint32_t aTagNum,
  nl::Weave::TLV::TLVReader & aReader
)

檢查 WDM 特定標籤。

檢查WDM-特定標籤的數量,從... /數據管理/ DMConstants.h,對在頭部的實際標記TLV讀者。

細節
參數
[in] aTagNum
針對具體要檢查的標籤號TLV元素。
[in] aReader
到的參考TLV讀者指向的元素進行檢查。
退貨
如果 aReader.GetTag() 生成的標籤與給定標籤編號的預期標籤形式之一匹配,則為 true。

關閉數據列表元素

WEAVE_ERROR CloseDataListElement(
  nl::Weave::TLV::TLVReader & aReader
)

停止讀取 WDM 數據列表元素。

此方法假定所討論的元素是 WDM 數據列表的一部分,因此將 kTLVType_Array 傳遞給 ExitContainer()。

細節
參數
[in,out] aReader
TLV讀者定位在WDM數據列表元素。
退貨
WEAVE_NO_ERROR上的成功。否則返回WEAVE_ERROR反映了不能退出的容器。

關閉列表

WEAVE_ERROR CloseList(
  nl::Weave::TLV::TLVReader & aReader
)

停止讀取 WDM 路徑或數據列表。

此方法假設所討論的列表是最頂層TLV元件等傳遞到kTLVType_Sructure ExitContainer()。

細節
參數
[in,out] aReader
TLV讀者定位在WDM路徑或數據列表。
退貨
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 路徑進行編碼。

注:使用編碼編織2.0版本之前,由服務接受過時的標籤設置的路徑。此版本的方法採用數字實例標識符。此方法使用 ProfileTag(kWeaveProfile_WDM, kTag_WDMPathProfile) 啟動容器,然後使用 ProfileTag(kWeaveProfile_WDM, kTag_WDMPathProfileId_Deprecated) 插入配置文件 ID。然後插入帶有 ProfileTag(kWeaveProfile_WDM, kTag_WDMPathProfileInstance_Deprecated) 的實例 ID。這是用於編碼路徑的已棄用版本之一,新設計應避免使用此格式。

細節
參數
[in] aWriter
在參考TLV作家來寫出來的路徑。
[in] aTag
引用到完全合格的TLV適用於這條道路標記。
[in] aProfileId
要在其下解釋路徑元素的配置文件 ID。
[in] aInstanceId
對要使用的配置文件的可選實例 ID 的引用。
[in] aPathLen
超出初始配置文件說明符的路徑元素列表的長度(可能為 0)。
[in] ...
附加路徑標記的可選可變長度列表。
退貨
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。這是用於編碼路徑的已棄用版本之一,新設計應避免使用此格式。

細節
參數
[in] aWriter
在參考TLV作家來寫出來的路徑。
[in] aTag
引用到完全合格的TLV適用於這條道路標記。
[in] aProfileId
要在其下解釋路徑元素的配置文件 ID。
[in] aInstanceId
用作配置文件實例標識符的可選字符串。如果未指定實例 ID,則此參數可能為 NULL。
[in] aPathLen
超出初始配置文件說明符的路徑元素列表的長度(可能為 0)。
[in] ...
附加路徑標記的可選可變長度列表。
退貨
WEAVE_NO_ERROR上的成功。否則返回WEAVE_ERROR反映了一個無法格式化給定的路徑。

編碼路徑

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,這是用於編碼路徑的最新版本。

細節
參數
[in] aWriter
在參考TLV作家來寫出來的路徑。
[in] aTag
引用到完全合格的TLV適用於這條道路標記。
[in] aProfileId
要在其下解釋路徑元素的配置文件 ID。
[in] aInstanceId
對要使用的配置文件的可選實例標識符的引用。如果不使用實例 ID,則此參數的值應為 kInstanceIdNotSpecified。
[in] aPathLen
超出初始配置文件說明符的路徑元素列表的長度(可能為 0)。
[in] ...
附加路徑標記的可選可變長度列表。
退貨
WEAVE_NO_ERROR上的成功。否則返回WEAVE_ERROR反映了一個無法格式化給定的路徑。

編碼路徑

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,這是用於編碼路徑的最新版本。

細節
參數
[in] aWriter
在參考TLV作家來寫出來的路徑。
[in] aTag
引用到完全合格的TLV適用於這條道路標記。
[in] aProfileId
要在其下解釋路徑元素的配置文件 ID。
[in] aInstanceIdLen
構成實例 ID 的字節數組的長度。如果沒有 ID,則該參數的值為 0。
[in] aInstanceId
用作配置文件實例標識符的可選字節數組。在未指定實例 ID 的情況下,此參數可能為 NULL。
[in] aPathLen
超出初始配置文件說明符的路徑元素列表的長度(可能為 0)。
[in] ...
附加路徑標記的可選可變長度列表。
退貨
WEAVE_NO_ERROR上的成功。否則返回WEAVE_ERROR反映了一個無法格式化給定的路徑。

編碼路徑

WEAVE_ERROR EncodePath(
  TLVWriter & aWriter,
  const uint64_t & aTag,
  uint32_t aProfileId,
  const char *aInstanceId,
  uint32_t aPathLen,
  ...
)

使用字符串實例 ID 對 WDM 路徑進行編碼。

注:TLV數據管理使用的那種地方,特別是有一個輪廓指定為了讓後續的路徑元素的解釋放在開頭的路徑。此版本的方法採用字符串配置文件實例 ID。

此方法使用 ContextTag(kTag_WDMPathProfileInstance) 插入實例 ID,這是用於編碼路徑的最新版本。

細節
參數
[in] aWriter
在參考TLV作家來寫出來的路徑。
[in] aTag
引用到完全合格的TLV適用於這條道路標記。
[in] aProfileId
要在其下解釋路徑元素的配置文件 ID。
[in] aInstanceId
用作配置文件實例標識符的可選字符串。如果未指定實例 ID,則此參數可能為 NULL。
[in] aPathLen
超出初始配置文件說明符的路徑元素列表的長度(可能為 0)。
[in] ...
附加路徑標記的可選可變長度列表。
退貨
WEAVE_NO_ERROR上的成功。否則返回WEAVE_ERROR反映了一個無法格式化給定的路徑。

結束數據列表元素

WEAVE_ERROR EndDataListElement(
  nl::Weave::TLV::TLVWriter & aWriter
)

完成數據列表元素的編寫。

TLV的WDM數據列表元素的結束。請注意,假設我們始終關閉列表項,這會自動將 kTLVType_Array 類型傳遞給 EndContainer() 調用。

細節
參數
[in] aWriter
到的參考TLV作家用其中寫入項的結束。
退貨
WEAVE_NO_ERROR上的成功。否則返回一個WEAVE_ERROR反射一個無法結束的容器。

結束編碼路徑

WEAVE_ERROR EndEncodePath(
  TLVWriter & aWriter,
  TLVType & mOuterContainer,
  WEAVE_ERROR mError
)

結束列表

WEAVE_ERROR EndList(
  nl::Weave::TLV::TLVWriter & aWriter
)

完成寫入路徑列表或數據列表。

TLV的WDM路徑或數據列表的末尾。另外,最後確定作者。

細節
參數
[in,out] aWriter
一個參考TLV作家與寫列表的末尾。
退貨
WEAVE_NO_ERROR上的成功。否則返回一個WEAVE_ERROR反射一個無法結束的容器。

結束列表

WEAVE_ERROR EndList(
  ReferencedTLVData & aList,
  nl::Weave::TLV::TLVWriter & aWriter
)

完成寫入路徑列表或數據列表。

TLV的WDM路徑或數據列表的末尾。另外,最後確定作者。在這種情況下, ReferencedTLVData要將對象TLV是被寫入在被傳遞和修改,以反映寫入的數據的量。

細節
參數
[in,out] aList
對要寫入列表的 ReferenceTLVData 對象的引用。
[in] aWriter
一個參考TLV作家與寫列表的末尾。
退貨
WEAVE_NO_ERROR上的成功。否則返回一個WEAVE_ERROR反射一個無法結束的容器。

特定於發布者

bool IsPublisherSpecific(
  const TopicIdentifier & aTopicId
)

檢查主題 ID 是否特定於發布者。

細節
參數
[in] aTopicId
主題標識符 ot 檢查
退貨
如果主題 ID 是特定於發布者的,則為 true,否則為 false

開放數據列表

WEAVE_ERROR OpenDataList(
  ReferencedTLVData & aDataList,
  nl::Weave::TLV::TLVReader & aReader
)

開始讀取數據列表。

給定一個新的閱讀器和一個數據列表,開始閱讀列表並驗證過程中最初遇到的標籤和類型。如果一切順利,閱讀器在進入列表容器後停止。

細節
參數
[in] aDataList
作為所涉及的引用傳遞的數據列表ReferencedTLVData對象。正常用例是列表在接收後實際上仍在緩衝區中。
[out] aReader
到參考TLV讀者用於讀取數據列表。該讀取器將指向列表中的第一項之前。
退貨
WEAVE_NO_ERROR上的成功。否則返回WEAVE_ERROR反映故障打開數據表和/或驗證有關的標籤和類型。

打開數據列表元素

WEAVE_ERROR OpenDataListElement(
  nl::Weave::TLV::TLVReader & aReader,
  nl::Weave::TLV::TLVReader & aPathReader,
  uint64_t & aVersion
)

開始讀取數據列表元素。

給定一個位於數據列表元素的閱讀器,開始閱讀該元素並驗證過程中最初遇到的標籤和類型。如果一切順利,閱讀器最終會定位在數據元素數據處,而輸入/輸出路徑閱讀器將定位在相應的路徑上。

細節
參數
[in] aReader
到的參考TLV讀取器定位在數據列表元素。
[out] aPathReader
到的參考TLV讀者是在所述數據列表元素的路徑組件尖。
[out] aVersion
對 64 位整數的引用,該整數將設置為數據列表元素版本(如果存在)或 kVersionNotSpecified。
退貨
WEAVE_NO_ERROR成功要不然WEAVE_ERROR與打開和讀取數據列表元素相關聯。

開放路徑列表

WEAVE_ERROR OpenPathList(
  ReferencedTLVData & aPathList,
  nl::Weave::TLV::TLVReader & aReader
)

開始閱讀路徑列表。

給定一個新的閱讀器和一個路徑列表,開始閱讀列表並驗證過程中最初遇到的標籤和類型。如果一切順利,閱讀器在進入列表容器後停止。

細節
參數
[in] aPathList
作為所涉及的引用傳遞的路徑列表ReferencedTLVData對象。正常用例是列表在接收後實際上仍在緩衝區中。
[out] aReader
一個參考TLV閱讀器用於讀取路徑列表。此讀取器將指向列表中的第一條路徑之前。
退貨
WEAVE_NO_ERROR成功;否則, WEAVE_ERROR反映故障的打開路徑列表和/或驗證有關的標籤和類型。

發布者特定主題 ID

TopicIdentifier PublisherSpecificTopicId(
  void
)

從頭開始生成特定於發布者的主題 ID。

細節
退貨
新的主題標識符。

發送狀態報告

WEAVE_ERROR SendStatusReport(
  ExchangeContext *aExchangeCtx,
  StatusReport & aStatus
)

起始數據列表

WEAVE_ERROR StartDataList(
  nl::Weave::TLV::TLVWriter & aWriter
)

開始編寫數據列表。

TLV用於WDM數據列表的開頭,例如,作為一個UpdateRequest的主要參數()。

細節
參數
[in] aWriter
一個參考TLV作家開始寫入。
退貨
WEAVE_NO_ERROR上的成功。否則返回WEAVE_ERROR反映的無法啟動的容器。

起始數據列表

WEAVE_ERROR StartDataList(
  ReferencedTLVData & aDataList,
  nl::Weave::TLV::TLVWriter & aWriter
)

開始寫一個數據表給定ReferencedTLVData對象。

TLV的WDM數據列表的開始。在這種情況下,我們假設我們正在寫出來的數據列表中引用的TLV數據結構。假定 writer 未初始化 - 或者,無論如何,將被初始化為指向給定對象。

細節
參數
[out] aDataList
一個參考ReferencedTLVData對象是成為作家的目標,並最終包含感興趣的數據。
[in] aWriter
一個參考TLV作家開始寫入。
退貨
WEAVE_NO_ERROR上的成功。否則返回WEAVE_ERROR反映的無法啟動的容器。

起始數據列表元素

WEAVE_ERROR StartDataListElement(
  nl::Weave::TLV::TLVWriter & aWriter
)

開始編寫數據列表元素。

TLV的WDM數據列表元素的開始。

細節
參數
[in] aWriter
一個參考TLV作家開始寫入。
退貨
WEAVE_NO_ERROR上的成功。否則返回WEAVE_ERROR反映的無法啟動的容器。

起始編碼路徑

WEAVE_ERROR StartEncodePath(
  TLVWriter & aWriter,
  const uint64_t & aTag,
  uint32_t aProfileId,
  TLVType & mOuterContainer,
  TLVType & mPath
)

起始路徑列表

WEAVE_ERROR StartPathList(
  nl::Weave::TLV::TLVWriter & aWriter
)

開始編寫路徑列表。

TLV的WDM路徑列表的開頭,例如作為ViewRequest的主要參數()。

細節
參數
[in] aWriter
一個參考TLV作家開始寫入。
退貨
WEAVE_NO_ERROR上的成功。否則返回WEAVE_ERROR反映的無法啟動的容器。

發送響應處理程序

void TxnResponseHandler(
  ExchangeContext *anExchangeCtx,
  const IPPacketInfo *anAddrInfo,
  const WeaveMessageInfo *aMsgInfo,
  uint32_t aProfileId,
  uint8_t aMsgType,
  PacketBuffer *aMsg
)

TxnTimeoutHandler

void TxnTimeoutHandler(
  ExchangeContext *anExchangeCtx
)

驗證TLV類型

WEAVE_ERROR ValidateTLVType(
  nl::Weave::TLV::TLVType aType,
  nl::Weave::TLV::TLVReader & aReader
)

驗證一個TLV元素被讀取所期待的TLV類型。

檢查給定的TLV對元素類型類型在頭TLV讀者,如果沒有匹配返回一個錯誤。

細節
參數
[in] aType
要針對特定元素驗證的 TLVType。
[in] aReader
到的參考TLV定位在元件讀取器進行驗證。
退貨
WEAVE_NO_ERROR如果有匹配或WEAVE_ERROR_WRONG_TLV_TYPE如果不是。
也可以看看:
WeaveTLVTypes.h

驗證WDMT標籤

WEAVE_ERROR ValidateWDMTag(
  uint32_t aTagNum,
  nl::Weave::TLV::TLVReader & aReader
)

驗證一個TLV元素被讀取所期待的WDM標籤。

細節
參數
[in] aTagNum
預期 WDM 標籤的 32 位標籤編號。
[in] aReader
TLV定位在元件讀取器進行驗證。
退貨
WEAVE_NO_ERROR上的成功。否則WEAVE_ERROR_INVALID_TLV_TAG如果標籤沒有當解釋為WDM標籤匹配給定的標籤號碼。