nl:: Weave:: Profiles:: DataManagement_Current:: TraitSchemaEngine
#include <src/lib/profiles/data-management/Current/TraitData.h>
Công cụ giản đồ sử dụng thông tin giản đồ liên quan đến một đặc điểm cụ thể và cung cấp các cơ sở để phân tích cú pháp và dịch thông tin đó thành một dạng mà máy móc WDM có thể sử dụng.
Tóm tắt
Trong đó bao gồm việc chuyển đổi từ PathHandles sang đường dẫn WDM (và ngược lại), các phương thức để diễn giải/truy vấn chính giản đồ và các phương thức để giúp đọc/ghi dữ liệu vào/từ TLV đã được cung cấp.
Bản thân giản đồ được lưu trữ ở dạng bảng, được mô tả đầy đủ để cho phép phân tích cú pháp/kết hợp chung các đường dẫn/dữ liệu WDM cho bất kỳ trait nhất định nào. Các bảng này là kết quả cuối cùng của "code-gen" (Bản thân thuật ngữ này có phần gây hiểu lầm khi không có bất kỳ mã được tạo nào :P)
Thuộc tính tĩnh công khai |
|
---|---|
kHandleTableOffset = 2
|
const uint32_t
|
Thuộc tính công khai |
|
---|---|
mSchema
|
const Schema
|
Hàm công khai |
|
---|---|
FindLowestCommonAncestor(PropertyPathHandle aHandle1, PropertyPathHandle aHandle2, PropertyPathHandle *aHandle1BranchChild, PropertyPathHandle *aHandle2BranchChild) const
|
Khi có 2 tên người dùng thuộc tính, hãy tính tên người dùng thấp nhất đóng vai trò là cha mẹ của cả hai tên người dùng này.
|
GetChildHandle(PropertyPathHandle aParentHandle, uint8_t aContextTag) const
|
|
GetDepth(PropertyPathHandle aHandle) const
|
int32_t
Tính toán độ sâu trong cây giản đồ cho một tên người dùng cụ thể.
|
GetDictionaryItemHandle(PropertyPathHandle aParentHandle, uint16_t aDictionaryKey) const
|
|
GetFirstChild(PropertyPathHandle aParentHandle) const
|
Trả về tên người dùng con đầu tiên liên kết với một phần tử mẹ cụ thể.
|
GetHighestForwardVersion(SchemaVersion aVersion) const
|
SchemaVersion
Với phiên bản giản đồ dữ liệu đã cung cấp, thao tác này sẽ trả về phiên bản giản đồ tương thích chuyển tiếp cao nhất.
|
GetLowestCompatibleVersion(SchemaVersion aVersion) const
|
SchemaVersion
Với phiên bản giản đồ dữ liệu đã cung cấp, hàm này sẽ trả về phiên bản giản đồ tương thích tối thiểu.
|
GetMap(PropertyPathHandle aHandle) const
|
const PropertyInfo *
Trả về một con trỏ đến cấu trúc PropertyInfo mô tả một ô điều khiển đường dẫn cụ thể.
|
GetMaxVersion() const
|
SchemaVersion
|
GetMinVersion() const
|
SchemaVersion
|
GetNextChild(PropertyPathHandle aParentId, PropertyPathHandle aChildHandle) const
|
Khi được cung cấp tên người dùng cho một thành phần con hiện có, hàm này trả về tên người dùng con tiếp theo liên kết với một thành phần mẹ cụ thể.
|
GetParent(PropertyPathHandle aHandle) const
|
Trả về tên người dùng cha của một tên người dùng đường dẫn con cụ thể.
|
GetProfileId(void) const
|
uint32_t
Trả về mã hồ sơ của trait được liên kết.
|
GetRelativePathTags(const PropertyPathHandle aCandidateHandle, uint64_t *aTags, const uint32_t aTagsSize, uint32_t & aNumTags) const
|
Chuyển đổi PropertiesPathHandle thành một mảng thẻ ngữ cảnh.
|
GetTag(PropertyPathHandle aHandle) const
|
uint64_t
Trả về thẻ được liên kết với tên người dùng đường dẫn.
|
GetVersionIntersection(SchemaVersionRange & aVersion, SchemaVersionRange & aIntersection) const
|
bool
Khi có một phạm vi phiên bản, hàm này sẽ kiểm tra xem có điểm giao nhau tương thích giữa phạm vi phiên bản đó và yếu tố nào được giản đồ hỗ trợ đang hỗ trợ công cụ giản đồ này hay không.
|
IsDictionary(PropertyPathHandle aHandle) const
|
bool
Trả về true nếu tên người dùng là một từ điển (chứ không phải trong từ điển - hãy xem phương thức dưới đây).
|
IsEphemeral(PropertyPathHandle aHandle) const
|
bool
|
IsInDictionary(PropertyPathHandle aHandle, PropertyPathHandle & aDictionaryItemHandle) const
|
bool
Trả về true nếu tên người dùng nằm trong từ điển (phần tử từ điển).
|
IsLeaf(PropertyPathHandle aPropertyHandle) const
|
bool
Trả về true nếu tên người dùng tham chiếu đến một nút lá trong cây giản đồ.
|
IsNullable(PropertyPathHandle aHandle) const
|
bool
|
IsOptional(PropertyPathHandle aHandle) const
|
bool
|
IsParent(PropertyPathHandle aChildHandle, PropertyPathHandle aParentHandle) const
|
bool
Kiểm tra xem một tên người dùng cụ thể có phải là con của tên người dùng khác hay không.
|
MapHandleToPath(PropertyPathHandle aHandle, nl::Weave::TLV::TLVWriter & aPathWriter) const
|
Chuyển đổi ô điều khiển đường dẫn thành đường dẫn TLV.
|
MapPathToHandle(nl::Weave::TLV::TLVReader & aPathReader, PropertyPathHandle & aHandle) const
|
Cho một trình đọc nằm ở gốc của phần tử đường dẫn WDM, hãy đọc to các thẻ có liên quan và cung cấp tên người dùng đường dẫn tương đương.
|
MapPathToHandle(const char *aPathString, PropertyPathHandle & aHandle) const
|
Cho biết cách biểu diễn dạng chuỗi của đường dẫn WDM, hãy đọc to các thẻ có liên quan và cung cấp tên người dùng đường dẫn tương đương.
|
MatchesProfileId(uint32_t aProfileId) const
|
bool
Trả về true nếu mã hồ sơ đã truyền khớp với mã được lưu trữ trong giản đồ.
|
RetrieveData(PropertyPathHandle aHandle, uint64_t aTagToWrite, nl::Weave::TLV::TLVWriter & aWriter, IGetDataDelegate *aDelegate, IDirtyPathCut *apDirtyPathCut) const
|
Cho một ô điều khiển đường dẫn và vị trí trình ghi trên phần tử dữ liệu tương ứng, truy xuất dữ liệu lá từ nguồn và ghi dữ liệu đó vào vùng đệm mà trình ghi trỏ đến theo cách tuân thủ giản đồ.
|
RetrieveUpdatableDictionaryData(PropertyPathHandle aHandle, uint64_t aTagToWrite, nl::Weave::TLV::TLVWriter & aWriter, IGetDataDelegate *aDelegate, PropertyPathHandle & aPropertyPathHandleOfDictItemToStartFrom) const
|
|
StoreData(PropertyPathHandle aHandle, nl::Weave::TLV::TLVReader & aReader, ISetDataDelegate *aDelegate, IPathFilter *aPathFilter) const
|
Khi được cung cấp một ô điều khiển đường dẫn và trình đọc đã định vị trên phần tử dữ liệu tương ứng, hãy xử lý vùng đệm dữ liệu mà trình đọc trỏ đến rồi lưu trữ vùng đệm đó vào bồn lưu trữ dữ liệu bằng cách gọi lệnh gọi SetLeafData bất cứ khi nào gặp một mục dữ liệu lá.
|
Lớp |
|
---|---|
nl:: |
|
nl:: |
Cấu trúc |
|
---|---|
nl:: |
|
nl:: |
Cấu trúc giản đồ chính chứa thông tin giản đồ. |
Thuộc tính tĩnh công khai
kHandleTableOffset
const uint32_t kHandleTableOffset = 2
Thuộc tính công khai
mSchema
const Schema mSchema
Hàm công khai
FindLowestCommonAncestor
PropertyPathHandle FindLowestCommonAncestor( PropertyPathHandle aHandle1, PropertyPathHandle aHandle2, PropertyPathHandle *aHandle1BranchChild, PropertyPathHandle *aHandle2BranchChild ) const
Khi có 2 tên người dùng thuộc tính, hãy tính tên người dùng thấp nhất đóng vai trò là cha mẹ của cả hai tên người dùng này.
Ngoài ra, hãy trả về 2 nhánh con chứa mỗi nhánh trong số 2 tên người dùng (ngay cả khi chúng giống nhau).
Thông tin chi tiết | |||
---|---|---|---|
Giá trị trả về |
|
GetChildHandle
PropertyPathHandle GetChildHandle( PropertyPathHandle aParentHandle, uint8_t aContextTag ) const
GetDepth
int32_t GetDepth( PropertyPathHandle aHandle ) const
Tính toán độ sâu trong cây giản đồ cho một tên người dùng cụ thể.
Thông tin chi tiết | |||
---|---|---|---|
Giá trị trả về |
|
GetDictionaryItemHandle
PropertyPathHandle GetDictionaryItemHandle( PropertyPathHandle aParentHandle, uint16_t aDictionaryKey ) const
GetFirstChild
PropertyPathHandle GetFirstChild( PropertyPathHandle aParentHandle ) const
Trả về tên người dùng con đầu tiên liên kết với một phần tử mẹ cụ thể.
Thông tin chi tiết | |||
---|---|---|---|
Giá trị trả về |
|
GetHighestForwardVersion
SchemaVersion GetHighestForwardVersion( SchemaVersion aVersion ) const
Với phiên bản giản đồ dữ liệu đã cung cấp, thao tác này sẽ trả về phiên bản giản đồ tương thích chuyển tiếp cao nhất.
GetLowestCompatibleVersion
SchemaVersion GetLowestCompatibleVersion( SchemaVersion aVersion ) const
Với phiên bản giản đồ dữ liệu đã cung cấp, hàm này sẽ trả về phiên bản giản đồ tương thích tối thiểu.
GetMap
const PropertyInfo * GetMap( PropertyPathHandle aHandle ) const
Trả về một con trỏ đến cấu trúc PropertyInfo mô tả một ô điều khiển đường dẫn cụ thể.
Thông tin chi tiết | |||
---|---|---|---|
Giá trị trả về |
|
GetMaxVersion
SchemaVersion GetMaxVersion() const
GetMinVersion
SchemaVersion GetMinVersion() const
GetNextChild
PropertyPathHandle GetNextChild( PropertyPathHandle aParentId, PropertyPathHandle aChildHandle ) const
Khi được cung cấp tên người dùng cho một thành phần con hiện có, hàm này trả về tên người dùng con tiếp theo liên kết với một thành phần mẹ cụ thể.
Thông tin chi tiết | |||
---|---|---|---|
Giá trị trả về |
|
GetParent
PropertyPathHandle GetParent( PropertyPathHandle aHandle ) const
Trả về tên người dùng cha của một tên người dùng đường dẫn con cụ thể.
Các khoá từ điển trong tên người dùng được giữ nguyên trong trường hợp tên người dùng mẹ cũng là một phần tử từ điển.
Thông tin chi tiết | |||
---|---|---|---|
Giá trị trả về |
|
GetProfileId
uint32_t GetProfileId( void ) const
Trả về mã hồ sơ của trait được liên kết.
Thông tin chi tiết | |||
---|---|---|---|
Giá trị trả về |
|
GetRelativePathTags
WEAVE_ERROR GetRelativePathTags( const PropertyPathHandle aCandidateHandle, uint64_t *aTags, const uint32_t aTagsSize, uint32_t & aNumTags ) const
Chuyển đổi PropertiesPathHandle thành một mảng thẻ ngữ cảnh.
Thông tin chi tiết | |||||||||
---|---|---|---|---|---|---|---|---|---|
Thông số |
|
||||||||
Trả về |
WEAVE_NO_ERROR trong trường hợp thành công; WEAVE_ERROR_NO_MEMORY nếu aTag quá nhỏ để lưu trữ đường dẫn đầy đủ.
|
GetTag
uint64_t GetTag( PropertyPathHandle aHandle ) const
Trả về thẻ được liên kết với tên người dùng đường dẫn.
Nếu đó là phần tử từ điển, hàm này sẽ trả về ProfileTag. Nếu không, toán tử này sẽ trả về các thẻ ngữ cảnh.
Thông tin chi tiết | |||
---|---|---|---|
Giá trị trả về |
|
GetVersionIntersection
bool GetVersionIntersection( SchemaVersionRange & aVersion, SchemaVersionRange & aIntersection ) const
Khi có một phạm vi phiên bản, hàm này sẽ kiểm tra xem có điểm giao nhau tương thích giữa phạm vi phiên bản đó và yếu tố nào được giản đồ hỗ trợ đang hỗ trợ công cụ giản đồ này hay không.
Nếu có một điểm giao cắt, hàm sẽ trả về giá trị true và cập nhật đối số Giao điểm được truyền vào để phản ánh kết quả của quá trình kiểm thử nút giao đó.
IsDictionary
bool IsDictionary( PropertyPathHandle aHandle ) const
Trả về true nếu tên người dùng là một từ điển (chứ không phải trong từ điển - hãy xem phương thức dưới đây).
Thông tin chi tiết | |||
---|---|---|---|
Giá trị trả về |
|
IsEphemeral
bool IsEphemeral( PropertyPathHandle aHandle ) const
IsInDictionary
bool IsInDictionary( PropertyPathHandle aHandle, PropertyPathHandle & aDictionaryItemHandle ) const
Trả về true nếu tên người dùng nằm trong từ điển (phần tử từ điển).
Hệ thống sẽ cập nhật một người dùng đã chuyển tên người dùng vào tên người dùng (aDichuyểnItemHandle) để trỏ đến tên người dùng phần tử từ điển ở trên cùng trong từ điển.
Thông tin chi tiết | |||
---|---|---|---|
Giá trị trả về |
|
IsLeaf
bool IsLeaf( PropertyPathHandle aPropertyHandle ) const
Trả về true nếu tên người dùng tham chiếu đến một nút lá trong cây giản đồ.
Thông tin chi tiết | |||
---|---|---|---|
Giá trị trả về |
|
IsNullable
bool IsNullable( PropertyPathHandle aHandle ) const
IsOptional
bool IsOptional( PropertyPathHandle aHandle ) const
IsParent
bool IsParent( PropertyPathHandle aChildHandle, PropertyPathHandle aParentHandle ) const
Kiểm tra xem một tên người dùng cụ thể có phải là con của tên người dùng khác hay không.
Đây có thể là cha mẹ gián tiếp.
Thông tin chi tiết | |||
---|---|---|---|
Giá trị trả về |
|
MapHandleToPath
WEAVE_ERROR MapHandleToPath( PropertyPathHandle aHandle, nl::Weave::TLV::TLVWriter & aPathWriter ) const
MapPathToHandle
WEAVE_ERROR MapPathToHandle( nl::Weave::TLV::TLVReader & aPathReader, PropertyPathHandle & aHandle ) const
Cho một trình đọc nằm ở gốc của phần tử đường dẫn WDM, hãy đọc to các thẻ có liên quan và cung cấp tên người dùng đường dẫn tương đương.
Thông tin chi tiết | |||||
---|---|---|---|---|---|
Giá trị trả về |
|
MapPathToHandle
WEAVE_ERROR MapPathToHandle( const char *aPathString, PropertyPathHandle & aHandle ) const
Cho biết cách biểu diễn dạng chuỗi của đường dẫn WDM, hãy đọc to các thẻ có liên quan và cung cấp tên người dùng đường dẫn tương đương.
Đường dẫn WDM được biểu thị dưới dạng chuỗi bằng các quy tắc sau:
- các thẻ được phân tách bằng
/
- đường dẫn PHẢI bắt đầu bằng
/
ở đầu và KHÔNG được chứa dấu gạch chéo ở cuối - Các thẻ số trong đường dẫn WDM PHẢI được mã hoá bằng thư viện C tiêu chuẩn để mã hoá số nguyên sang chuỗi, tức là mã hoá số thập phân (mặc định) KHÔNG ĐƯỢC chứa số 0 đứng đầu, mã hoá thập lục phân PHẢI bắt đầu bằng
0x
và mã hoá bát phân PHẢI chứa0
đứng đầu.
Thông tin chi tiết | |||||||
---|---|---|---|---|---|---|---|
Giá trị trả về |
|
MatchesProfileId
bool MatchesProfileId( uint32_t aProfileId ) const
Trả về true nếu mã hồ sơ đã truyền khớp với mã được lưu trữ trong giản đồ.
Thông tin chi tiết | |||
---|---|---|---|
Giá trị trả về |
|
RetrieveData
WEAVE_ERROR RetrieveData( PropertyPathHandle aHandle, uint64_t aTagToWrite, nl::Weave::TLV::TLVWriter & aWriter, IGetDataDelegate *aDelegate, IDirtyPathCut *apDirtyPathCut ) const
Cho một ô điều khiển đường dẫn và vị trí trình ghi trên phần tử dữ liệu tương ứng, truy xuất dữ liệu lá từ nguồn và ghi dữ liệu đó vào vùng đệm mà trình ghi trỏ đến theo cách tuân thủ giản đồ.
Thông tin chi tiết | |||||
---|---|---|---|---|---|
Giá trị trả về |
|
RetrieveUpdatableDictionaryData
WEAVE_ERROR RetrieveUpdatableDictionaryData( PropertyPathHandle aHandle, uint64_t aTagToWrite, nl::Weave::TLV::TLVWriter & aWriter, IGetDataDelegate *aDelegate, PropertyPathHandle & aPropertyPathHandleOfDictItemToStartFrom ) const
StoreData
WEAVE_ERROR StoreData( PropertyPathHandle aHandle, nl::Weave::TLV::TLVReader & aReader, ISetDataDelegate *aDelegate, IPathFilter *aPathFilter ) const
Khi được cung cấp một ô điều khiển đường dẫn và trình đọc đã định vị trên phần tử dữ liệu tương ứng, hãy xử lý vùng đệm dữ liệu mà trình đọc trỏ đến rồi lưu trữ vùng đệm đó vào bồn lưu trữ dữ liệu bằng cách gọi lệnh gọi SetLeafData bất cứ khi nào gặp một mục dữ liệu lá.
Thông tin chi tiết | |||||
---|---|---|---|---|---|
Giá trị trả về |
|