nl:: Weave:: Hồ sơ:: DataManagement_Current:: TraitSchemaengine
#include <src/lib/profiles/data-management/Current/TraitData.h>
Công cụ giản đồ lấy thông tin giản đồ liên kết với 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 biểu mẫu có thể được sử dụng bởi máy móc WDM.
Tóm tắt
Phương thức này bao gồm việc chuyển đổi từ PathPathles 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 xử lý.
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/tạo thành dữ liệu/đường dẫn WDM chung cho bất kỳ đặc điểm nhất định nào. Các bảng này sẽ là đầu ra cuối cùng của ' code-gen (# 39; (Bản thân thuật ngữ hơi gây hiểu lầm do không có bất kỳ mã nào được tạ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
|
Với hai ô điều khiển thuộc tính, hãy tính toán ô điều khiển thấp nhất phân phát dưới dạng phần tử mẹ cho cả hai ô điều khiển này.
|
GetChildHandle(PropertyPathHandle aParentHandle, uint8_t aContextTag) const
|
|
GetDepth(PropertyPathHandle aHandle) const
|
int32_t
Tính toán chiều 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 cha mẹ cụ thể.
|
GetHighestForwardVersion(SchemaVersion aVersion) const
|
SchemaVersion
Trong một phiên bản giản đồ dữ liệu được cung cấp, phiên bản này sẽ trả về phiên bản giản đồ tương thích cao nhất.
|
GetLowestCompatibleVersion(SchemaVersion aVersion) const
|
SchemaVersion
Phiên bản giản đồ dữ liệu được cung cấp 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ề con trỏ đến cấu trúc PropertyInfo mô tả xử lý đường dẫn cụ thể.
|
GetMaxVersion() const
|
SchemaVersion
|
GetMinVersion() const
|
SchemaVersion
|
GetNextChild(PropertyPathHandle aParentId, PropertyPathHandle aChildHandle) const
|
Đã cung cấp một tên người dùng cho một tài khoản con hiện có, trả về tên người dùng con tiếp theo được liên kết với một nhà xuất bản mẹ cụ thể.
|
GetParent(PropertyPathHandle aHandle) const
|
Trả về tên người dùng mẹ của một tên người dùng con cho một đường dẫn con nhất định.
|
GetProfileId(void) const
|
uint32_t
Trả về mã hồ sơ của đặc điểm được liên kết.
|
GetRelativePathTags(const PropertyPathHandle aCandidateHandle, uint64_t *aTags, const uint32_t aTagsSize, uint32_t & aNumTags) const
|
Chuyển đổi PropertyPathhandle 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 một trình xử lý đường dẫn.
|
GetVersionIntersection(SchemaVersionRange & aVersion, SchemaVersionRange & aIntersection) const
|
bool
Dựa trên một phạm vi phiên bản, hàm này sẽ kiểm tra xem liệu có sự tương quan giữa khả năng tương thích giữa phiên bản đó và yếu tố nào được hỗ trợ bởi giản đồ đ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à từ điển (không phải trong từ điển – hãy xem phương pháp bên dưới).
|
IsEphemeral(PropertyPathHandle aHandle) const
|
bool
|
IsInDictionary(PropertyPathHandle aHandle, PropertyPathHandle & aDictionaryItemHandle) const
|
bool
Trả về true nếu ô điều khiển nằm bên trong từ điển (phần tử từ điển).
|
IsLeaf(PropertyPathHandle aPropertyHandle) const
|
bool
Trả về true nếu ô điều khiển 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 không.
|
MapHandleToPath(PropertyPathHandle aHandle, nl::Weave::TLV::TLVWriter & aPathWriter) const
|
Chuyển đổi ô điều khiển đường dẫn thành một đường dẫn TLV.
|
MapPathToHandle(nl::Weave::TLV::TLVReader & aPathReader, PropertyPathHandle & aHandle) const
|
Khi trình đọc nằm ở gốc của phần tử đường dẫn WDM, hãy đọc các thẻ có liên quan và cung cấp tên người dùng tương đương.
|
MapPathToHandle(const char *aPathString, PropertyPathHandle & aHandle) const
|
Do biểu diễn dạng chuỗi của đường dẫn WDM, hãy đọc các thẻ liên quan và cung cấp tên người dùng tương đương.
|
MatchesProfileId(uint32_t aProfileId) const
|
bool
Trả về true nếu itemId được chuyển vào khớp với dữ liệu được lưu trữ trong giản đồ.
|
RetrieveData(PropertyPathHandle aHandle, uint64_t aTagToWrite, nl::Weave::TLV::TLVWriter & aWriter, IGetDataDelegate *aDelegate, IDirtyPathCut *apDirtyPathCut) const
|
Do một trình xử lý đường dẫn và vị trí người viết trên phần tử dữ liệu tương ứng, hãy truy xuất dữ liệu lá từ nguồn và ghi dữ liệu đó vào bộ đệm mà người viết đã 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
|
Với một trình xử lý đường dẫn và trình đọc vị trí trên phần tử dữ liệu tương ứng, hãy xử lý bộ đệm dữ liệu mà trình đọc trỏ đến và lưu vào bộ chứa bằng cách gọi lệnh gọi SetLeafData bất cứ khi nào gặp mục dữ liệu chi tiết.
|
Lớp |
|
---|---|
nl:: |
|
nl:: |
Cấu trúc |
|
---|---|
nl:: |
|
nl:: |
Cấu trúc giản đồ chính lưu trữ thông tin giản đồ. |
Thuộc tính tĩnh công khai
Tập viết khandleTableoffset
const uint32_t kHandleTableOffset = 2
Thuộc tính công khai
Giản đồ
const Schema mSchema
Hàm công khai
FindThấpCommonAncestor
PropertyPathHandle FindLowestCommonAncestor( PropertyPathHandle aHandle1, PropertyPathHandle aHandle2, PropertyPathHandle *aHandle1BranchChild, PropertyPathHandle *aHandle2BranchChild ) const
Với hai ô điều khiển thuộc tính, hãy tính toán ô điều khiển thấp nhất phân phát dưới dạng phần tử mẹ cho cả hai ô điều khiển này.
Ngoài ra, hãy trả về hai nhánh con chứa từng ô trong hai ô điều khiển (ngay cả khi chúng giống nhau).
Chi tiết | |||
---|---|---|---|
Giá trị trả về |
|
Get Sử dụng
PropertyPathHandle GetChildHandle( PropertyPathHandle aParentHandle, uint8_t aContextTag ) const
Tải xuống
int32_t GetDepth( PropertyPathHandle aHandle ) const
Tính toán chiều sâu trong cây giản đồ cho một tên người dùng cụ thể.
Chi tiết | |||
---|---|---|---|
Giá trị trả về |
|
GetcácItemItemlele
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 cha mẹ cụ thể.
Chi tiết | |||
---|---|---|---|
Giá trị trả về |
|
Phiên bản getGiải chuyển tiếp
SchemaVersion GetHighestForwardVersion( SchemaVersion aVersion ) const
Trong một phiên bản giản đồ dữ liệu được cung cấp, phiên bản này sẽ trả về phiên bản giản đồ tương thích cao nhất.
Phiên bản getthấp tương thích thấp nhất
SchemaVersion GetLowestCompatibleVersion( SchemaVersion aVersion ) const
Phiên bản giản đồ dữ liệu được cung cấp 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ề con trỏ đến cấu trúc PropertyInfo mô tả xử lý đường dẫn cụ thể.
Chi tiết | |||
---|---|---|---|
Giá trị trả về |
|
Phiên bản GetMax
SchemaVersion GetMaxVersion() const
GetMinVersion
SchemaVersion GetMinVersion() const
GetNextChild
PropertyPathHandle GetNextChild( PropertyPathHandle aParentId, PropertyPathHandle aChildHandle ) const
Đã cung cấp một tên người dùng cho một tài khoản con hiện có, trả về tên người dùng con tiếp theo được liên kết với một nhà xuất bản mẹ cụ thể.
Chi tiết | |||
---|---|---|---|
Giá trị trả về |
|
Mua
PropertyPathHandle GetParent( PropertyPathHandle aHandle ) const
Trả về tên người dùng mẹ của một tên người dùng con cho một đường dẫn con nhất định.
Khóa 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 gốc cũng là một phần tử từ điển.
Chi tiết | |||
---|---|---|---|
Giá trị trả về |
|
GetProfileId
uint32_t GetProfileId( void ) const
Trả về mã hồ sơ của đặc điểm được liên kết.
Chi tiết | |||
---|---|---|---|
Giá trị trả về |
|
GetTagPathTag
WEAVE_ERROR GetRelativePathTags( const PropertyPathHandle aCandidateHandle, uint64_t *aTags, const uint32_t aTagsSize, uint32_t & aNumTags ) const
Chuyển đổi PropertyPathhandle thành một mảng thẻ ngữ cảnh.
Chi tiết | |||||||||
---|---|---|---|---|---|---|---|---|---|
Các 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 đủ.
|
Thẻ
uint64_t GetTag( PropertyPathHandle aHandle ) const
Trả về thẻ được liên kết với một trình xử lý đường dẫn.
Nếu đó là phần tử từ điển, hàm này sẽ trả về Thẻ hồ sơ. Nếu không, hàm này sẽ trả về các thẻ ngữ cảnh.
Chi tiết | |||
---|---|---|---|
Giá trị trả về |
|
GetVersionIntersection
bool GetVersionIntersection( SchemaVersionRange & aVersion, SchemaVersionRange & aIntersection ) const
Dựa trên một phạm vi phiên bản, hàm này sẽ kiểm tra xem liệu có sự tương quan giữa khả năng tương thích giữa phiên bản đó và yếu tố nào được hỗ trợ bởi giản đồ đang hỗ trợ công cụ giản đồ này hay không.
Nếu có giao lộ, hàm sẽ trả về true và cập nhật đối số aIntersection được chuyển vào để phản ánh kết quả của quá trình kiểm tra giao điểm đó.
Là từ điển
bool IsDictionary( PropertyPathHandle aHandle ) const
Trả về true nếu tên người dùng là từ điển (không phải trong từ điển – hãy xem phương pháp bên dưới).
Chi tiết | |||
---|---|---|---|
Giá trị trả về |
|
Tạm thời
bool IsEphemeral( PropertyPathHandle aHandle ) const
Từ điển liên quan
bool IsInDictionary( PropertyPathHandle aHandle, PropertyPathHandle & aDictionaryItemHandle ) const
Trả về true nếu ô điều khiển nằm bên trong từ điển (phần tử từ điển).
Người dùng được chuyển vào xử lý (atừItemItemlele) được cập nhật để trỏ đến trình xử lý thành phần từ điển ở trên cùng trong từ điển.
Chi tiết | |||
---|---|---|---|
Giá trị trả về |
|
Lê IsLeaf
bool IsLeaf( PropertyPathHandle aPropertyHandle ) const
Trả về true nếu ô điều khiển tham chiếu đến một nút lá trong cây giản đồ.
Chi tiết | |||
---|---|---|---|
Giá trị trả về |
|
Có thể tắt
bool IsNullable( PropertyPathHandle aHandle ) const
Không bắt buộc
bool IsOptional( PropertyPathHandle aHandle ) const
Là cha mẹ
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 không.
Đây có thể là cha mẹ gián tiếp.
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
Khi trình đọc nằm ở gốc của phần tử đường dẫn WDM, hãy đọc các thẻ có liên quan và cung cấp tên người dùng tương đương.
Chi tiết | |||||
---|---|---|---|---|---|
Giá trị trả về |
|
MapPathTohandle
WEAVE_ERROR MapPathToHandle( const char *aPathString, PropertyPathHandle & aHandle ) const
Do biểu diễn dạng chuỗi của đường dẫn WDM, hãy đọc các thẻ liên quan và cung cấp tên người dùng tương đương.
Đường dẫn WDM được biểu thị dưới dạng một chuỗi bằng các quy tắc sau:
- phân tách các thẻ bằng
/
- đường dẫn PHẢI bắt đầu bằng
/
và KHÔNG PHẢI bằng dấu gạch chéo - các thẻ số trong đường dẫn WDM PHẢI được mã hóa bằng thư viện C chuẩn cho số nguyên để mã hóa chuỗi, tức là mã hóa thập phân (mặc định) PHẢI chứa mã 0 hàng đầu, mã hóa thập lục phân PHẢI bắt đầu bằng
0x
và mã hóa bát phân PHẢI chứa0
ở đầu.
Chi tiết | |||||||
---|---|---|---|---|---|---|---|
Giá trị trả về |
|
MatchesProfileId
bool MatchesProfileId( uint32_t aProfileId ) const
Trả về true nếu itemId được chuyển vào khớp với dữ liệu được lưu trữ trong giản đồ.
Chi tiết | |||
---|---|---|---|
Giá trị trả về |
|
Truy xuất dữ liệu
WEAVE_ERROR RetrieveData( PropertyPathHandle aHandle, uint64_t aTagToWrite, nl::Weave::TLV::TLVWriter & aWriter, IGetDataDelegate *aDelegate, IDirtyPathCut *apDirtyPathCut ) const
Do một trình xử lý đường dẫn và vị trí người viết trên phần tử dữ liệu tương ứng, hãy truy xuất dữ liệu lá từ nguồn và ghi dữ liệu đó vào bộ đệm mà người viết đã trỏ đến theo cách tuân thủ giản đồ.
Chi tiết | |||||
---|---|---|---|---|---|
Giá trị trả về |
|
takeoutUpdatableDictionaryData
WEAVE_ERROR RetrieveUpdatableDictionaryData( PropertyPathHandle aHandle, uint64_t aTagToWrite, nl::Weave::TLV::TLVWriter & aWriter, IGetDataDelegate *aDelegate, PropertyPathHandle & aPropertyPathHandleOfDictItemToStartFrom ) const
Dữ liệu cửa hàng
WEAVE_ERROR StoreData( PropertyPathHandle aHandle, nl::Weave::TLV::TLVReader & aReader, ISetDataDelegate *aDelegate, IPathFilter *aPathFilter ) const
Với một trình xử lý đường dẫn và trình đọc vị trí trên phần tử dữ liệu tương ứng, hãy xử lý bộ đệm dữ liệu mà trình đọc trỏ đến và lưu vào bộ chứa bằng cách gọi lệnh gọi SetLeafData bất cứ khi nào gặp mục dữ liệu chi tiết.
Chi tiết | |||||
---|---|---|---|---|---|
Giá trị trả về |
|