nl:: Weave:: Profiles:: DataManagement_Current:: TraitSchemaEngine
#include <src/lib/profiles/data-management/Current/TraitData.h>
Công cụ giản đồ này lấy thông tin giản đồ được liên kết với một đặc điểm cụ thể và cung cấp các phương tiện để phân tích cú pháp và dịch thông tin đó thành dạng có thể sử dụng được bằng máy WDM.
Tóm tắt
Điều này 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 giản đồ và các phương thức để giúp đọc/ghi dữ liệu đến/từ TLV dựa trên một tên người dùng cụ thể.
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 mọi đặc điểm nhất định. Các bảng này sẽ 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 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
|
Các 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 2 tên người dùng tài sản, hãy tính toán tên người dùng thấp nhất đóng vai trò là thành phần mẹ của cả 2 tên người dùng này.
|
GetChildHandle(PropertyPathHandle aParentHandle, uint8_t aContextTag) const
|
|
GetDepth(PropertyPathHandle aHandle) const
|
int32_t
Tính chiều sâu trong cây giản đồ cho một tên người dùng cho trước.
|
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 mẹ cụ thể.
|
GetHighestForwardVersion(SchemaVersion aVersion) const
|
SchemaVersion
Với phiên bản giản đồ dữ liệu đã cung cấp, giá trị 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, giá trị 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ề 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 cung cấp tên người dùng cho một thành phần con hiện có, hãy trả về tên người dùng con tiếp theo được 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 mẹ 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 PropertyPathHandle thành một mảng thẻ ngữ cảnh.
|
GetTag(PropertyPathHandle aHandle) const
|
uint64_t
Trả về thẻ liên kết với một ô điều khiển đường dẫn.
|
GetVersionIntersection(SchemaVersionRange & aVersion, SchemaVersionRange & aIntersection) const
|
bool
Khi đưa ra phạm vi phiên bản, hàm này sẽ kiểm tra xem có điểm tương thích nào giữa phiên bản đó và nội dung được giản đồ đang hỗ trợ công cụ giản đồ này hỗ trợ 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 (và không có trong từ điển – xem phương thức bên dưới).
|
IsEphemeral(PropertyPathHandle aHandle) const
|
bool
|
IsInDictionary(PropertyPathHandle aHandle, PropertyPathHandle & aDictionaryItemHandle) const
|
bool
Trả về true nếu tên người dùng bên trong từ điển (một phần tử trong 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 một 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
|
Với 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
|
Với bản trình bày một 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 tương đương cho đường dẫn.
|
MatchesProfileId(uint32_t aProfileId) const
|
bool
Trả về true nếu profileId đã chuyển khớp với giá trị được lưu trữ trong giản đồ.
|
RetrieveData(PropertyPathHandle aHandle, uint64_t aTagToWrite, nl::Weave::TLV::TLVWriter & aWriter, IGetDataDelegate *aDelegate, IDirtyPathCut *apDirtyPathCut) const
|
Khi bạn cung cấp một ô điều khiển đường dẫn và vị trí của trình ghi trên phần tử dữ liệu tương ứng, hãy truy xuất dữ liệu leaf từ nguồn và ghi dữ liệu đó vào vùng đệm mà người viết chỉ đế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ó một ô điều khiển đường dẫn và một trình đọc được đặt 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 và lưu trữ vào bồn lưu trữ dữ liệu bằng cách gọi lệnh gọi SetLeafData mỗi khi gặp mục dữ liệu leaf.
|
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
Các 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
Với 2 tên người dùng tài sản, hãy tính toán tên người dùng thấp nhất đóng vai trò là thành phần mẹ của cả 2 tên người dùng này.
Ngoài ra, hãy trả về 2 nhánh con chứa từng tên 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 chiều sâu trong cây giản đồ cho một tên người dùng cho trước.
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 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, giá trị 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, giá trị 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ề 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 cung cấp tên người dùng cho một thành phần con hiện có, hãy trả về tên người dùng con tiếp theo được 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 mẹ của một tên người dùng đường dẫn con cụ thể.
Các khoá từ điển trong ô điều khiển được giữ nguyên trong trường hợp ô điều khiển mẹ cũng là 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 PropertyPathHandle thành một mảng thẻ ngữ cảnh.
Thông tin chi tiết | |||||||||
---|---|---|---|---|---|---|---|---|---|
Tham 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ẻ liên kết với một ô điều khiển đường dẫn.
Nếu đó là một phần tử từ điển, hàm này sẽ trả về ProfileTag. Nếu không, hàm này sẽ trả về thẻ ngữ cảnh.
Thông tin chi tiết | |||
---|---|---|---|
Giá trị trả về |
|
GetVersionIntersection
bool GetVersionIntersection( SchemaVersionRange & aVersion, SchemaVersionRange & aIntersection ) const
Khi đưa ra phạm vi phiên bản, hàm này sẽ kiểm tra xem có điểm tương thích nào giữa phiên bản đó và nội dung được giản đồ đang hỗ trợ công cụ giản đồ này hỗ trợ hay không.
Nếu có một giao lộ, hàm sẽ trả về giá trị true và cập nhật đối số aIntersection được truyền vào để phản ánh kết quả kiểm thử giao lộ đó.
IsDictionary
bool IsDictionary( PropertyPathHandle aHandle ) const
Trả về true nếu tên người dùng là một từ điển (và không có trong từ điển – xem phương thức bên dưới).
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 bên trong từ điển (một phần tử trong từ điển).
Một người dùng được truyền vào tên người dùng (aKeywordItemHandle) được cập nhật để trỏ đến xử lý phần tử từ điển cấp cao nhất 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 ô điều khiển 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 một tên người dùng khác hay không.
Đây có thể là tài khoản 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
Với 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
Với bản trình bày một 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 tương đương cho đường dẫn.
Đường dẫn WDM được biểu thị dưới dạng chuỗi bằng cách sử dụ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 thành chuỗi, tức là mã hoá số thập phân (mặc định) KHÔNG ĐƯỢC chứa số 0 ở đầu, phương thức mã hoá hệ thập lục phân PHẢI bắt đầu bằng
0x
và phương thức 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 profileId đã chuyển khớp với giá trị đượ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
Khi bạn cung cấp một ô điều khiển đường dẫn và vị trí của trình ghi trên phần tử dữ liệu tương ứng, hãy truy xuất dữ liệu leaf từ nguồn và ghi dữ liệu đó vào vùng đệm mà người viết chỉ đế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ó một ô điều khiển đường dẫn và một trình đọc được đặt 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 và lưu trữ vào bồn lưu trữ dữ liệu bằng cách gọi lệnh gọi SetLeafData mỗi khi gặp mục dữ liệu leaf.
Thông tin chi tiết | |||||
---|---|---|---|---|---|
Giá trị trả về |
|