nl::Weave::Profiles::DataManagement_Legacy::ProfileDatabase

這是抽象類別。

#include <src/lib/profiles/data-management/Legacy/ProfileDatabase.h>

抽象 ProfileDatabase 輔助類別。

摘要

WDM 將通訊協定實作與資料管理實作分開,至少在原則上交由應用程式開發人員處理。WDM 中的所有有趣呼叫,以及設定檔開發人員在實作 TLV 編碼路徑清單或資料清單所需的所有抽象方法。這會對設定檔開發人員造成負擔,但實際上,開發人員在編寫和解壓縮 TLV 等封裝和解壓縮的相同程式碼後,就會像開發人員一樣進行大量程式碼重複的情形。為方便起見,我們提供了一種「資料管理工具包」。

在提供必要的具體 ProfileData 子類別並新增至下方的 LookupProfileData() 方法的情況下,這個輔助類別就能支援儲存及擷取資料。

公開函式

LookupDataFromProfileDescriptor(nl::Weave::TLV::TLVReader & aDescReader, ProfileData **aProfileData)
在資料庫中找出 ProfileData 物件。
LookupProfileData(nl::Weave::TLV::TLVReader & aPathReader, ProfileData **aProfileData)
在資料庫中找出 ProfileData 物件。
LookupProfileData(uint32_t aProfileId, nl::Weave::TLV::TLVReader *aInstanceIdRdr, ProfileData **aResult)=0
virtual WEAVE_ERROR
查詢 ProfileData 物件。
Retrieve(ReferencedTLVData & aPathList, ReferencedTLVData & aDataList)
根據路徑清單擷取資料清單。
Retrieve(ReferencedTLVData & aPathList, nl::Weave::TLV::TLVWriter & aWriter)
根據路徑清單寫出資料清單。
Store(ReferencedTLVData & aDataList)
儲存資料清單。

受保護的函式

StoreInternal(nl::Weave::TLV::TLVReader & aPathReader, uint64_t aVersion, nl::Weave::TLV::TLVReader & aDataReader)

類別

nl::Weave::Profiles::DataManagement_Legacy::ProfileDatabase::ProfileData

抽象 ProfileData 輔助內部類別。

公開函式

LookupDataFromProfileDescriptor

WEAVE_ERROR LookupDataFromProfileDescriptor(
  nl::Weave::TLV::TLVReader & aDescReader,
  ProfileData **aProfileData
)

在資料庫中找出 ProfileData 物件。

這個公用程式方法可用來尋找特定 ProfileDatabase 中的 ProfileData 物件。這主要取決於具體 ProfileDatabase 子類別的實作者提供的查詢方法。

詳細資料
參數
[in] aDescReader
位於 WDM 路徑的 TLV 讀取器參照,即包含第一個元素的 TLV 路徑,包含個人資料說明。
[out] aProfileData
指標,用於傳回相關 ProfileData 物件的指標。
傳回
成功時 WEAVE_NO_ERROR,否則會傳回 WEAVE_ERROR,表示無法查詢相符的 ProfileData 物件。

LookupProfileData

WEAVE_ERROR LookupProfileData(
  nl::Weave::TLV::TLVReader & aPathReader,
  ProfileData **aProfileData
)

在資料庫中找出 ProfileData 物件。

這個公用程式方法可用來尋找特定 ProfileDatabase 中的 ProfileData 物件。這主要取決於具體 ProfileDatabase 子類別的實作者提供的查詢方法。

詳細資料
參數
[in] aPathReader
位於 WDM 路徑的 TLV 讀取器參照,即包含第一個元素的 TLV 路徑,包含個人資料說明。
[out] aProfileData
指標,用於傳回相關 ProfileData 物件的指標。
傳回
成功時 WEAVE_NO_ERROR,否則會傳回 WEAVE_ERROR,表示無法查詢相符的 ProfileData 物件。

LookupProfileData

virtual WEAVE_ERROR LookupProfileData(
  uint32_t aProfileId,
  nl::Weave::TLV::TLVReader *aInstanceIdRdr,
  ProfileData **aResult
)=0

查詢 ProfileData 物件。

查詢指定設定檔 ID 和 (選用) 執行個體 ID 的特定 ProfileData 物件做為 TLV 讀取器使用

詳細資料
參數
[in] aProfileId
所需設定檔的 32 位元設定檔編號。
[in] aInstanceIdRdr
指向位於執行個體 ID 資料的 TLV 讀取器的指標。如果沒有提供執行個體 ID,則此值應為 NULL。
[out] aResult
指標,用於傳回相關 ProfileData 物件的指標。
傳回
WEAVE_NO_ERROR 即成功。否則,會傳回 WEAVE_ERROR,表示無法找到 ProfileData 物件。

擷取

WEAVE_ERROR Retrieve(
  ReferencedTLVData & aPathList,
  ReferencedTLVData & aDataList
)

根據路徑清單擷取資料清單。

取得路徑清單後,擷取路徑清單,其中包含路徑清單中每個路徑的資料清單元素資料清單,而這些資料是該路徑的終端機。

詳細資料
參數
[in] aPathList
ReferencedTLVData 物件的參照,其中包含以 TLV 編碼的路徑清單,代表要擷取的資料。此參數在整個函式執行期間都會保持不變。
[out] aDataList
ReferencedTLVData 物件的參照,用於寫入已擷取的結果。只有在成功執行這個函式後,資料長度才會調整。
傳回
WEAVE_NO_ERROR 即成功。否則,系統會傳回 WEAVE_ERROR,表示無法擷取所需資料清單。

擷取

WEAVE_ERROR Retrieve(
  ReferencedTLVData & aPathList,
  nl::Weave::TLV::TLVWriter & aWriter
)

根據路徑清單寫出資料清單。

假設有一個路徑清單和 TLV 寫入器,請寫出資料清單,其中包含路徑清單中每個路徑的資料清單元素,以及該路徑終端機的資料。

詳細資料
參數
[in] aPathList
ReferencedTLVData 物件的參照,其中包含代表待擷取資料的 TLV 路徑清單。此參數在整個函式執行期間都會保持不變。
[in] aWriter
要用於編寫擷取路徑清單的 TLV 寫入器的參照。發生錯誤時,寫入器的內部狀態可能無法復原。
傳回
WEAVE_NO_ERROR 即成功。否則,系統會傳回 WEAVE_ERROR,表示無法擷取資料或寫入所需資料清單。

商店

WEAVE_ERROR Store(
  ReferencedTLVData & aDataList
)

儲存資料清單。

根據 TLV 編碼的資料清單,此方法會執行剖析該清單的程序,並呼叫 ProfileDatabase 子類別實作者提供的具體方法,將參照的資料放在所屬的位置。

詳細資料
參數
[in] aDataList
ReferencedTLVData 物件的參照,其中包含以 TLV 編碼格式表示的感興趣資料。
傳回
WEAVE_NO_ERROR 即成功。否則,系統會傳回 WEAVE_ERROR,表示無法儲存所需資料。

受保護的函式

StoreInternal

WEAVE_ERROR StoreInternal(
  nl::Weave::TLV::TLVReader & aPathReader,
  uint64_t aVersion,
  nl::Weave::TLV::TLVReader & aDataReader
)