Google cam kết thúc đẩy công bằng chủng tộc cho Cộng đồng người da đen. Xem cách thực hiện.
Trang này được dịch bởi Cloud Translation API.
Switch to English

nl :: Dệt :: Hồ sơ :: DataManagement_Current :: TraitSchemaEngine

#include <src/lib/profiles/data-management/Current/TraitData.h>

Công cụ lược đồ lấy thông tin lược đồ liên quan đến 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 một dạng mà máy WDM có thể sử dụng được.

Tóm lược

Điều này bao gồm chuyển đổi từ PathHandles sang các đường dẫn WDM (và ngược lại), các phương pháp để diễn giải / truy vấn bản thân lược đồ và các phương pháp giúp đọc / ghi dữ liệu ra / từ TLV được cung cấp.

Bản thân lược đồ được lưu trữ dưới dạng bảng, được mô tả đầy đủ để cho phép phân tích cú pháp / thành phần chung của đường dẫn / dữ liệu WDM cho bất kỳ đặc điểm nhất định nào. 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 hơi gây hiểu nhầ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 cộng

mSchema
const Schema

Chức năng công cộng

FindLowestCommonAncestor ( PropertyPathHandle aHandle1, PropertyPathHandle aHandle2, PropertyPathHandle *aHandle1BranchChild, PropertyPathHandle *aHandle2BranchChild) const
Cho hai xử lý thuộc tính, hãy tính toán xử lý thấp nhất đóng vai trò là cha mẹ của cả hai xử lý này.
GetChildHandle ( PropertyPathHandle aParentHandle, uint8_t aContextTag) const
GetDepth ( PropertyPathHandle aHandle) const
int32_t
Tính toán độ sâu trong cây lược đồ cho một xử lý nhất định.
GetDictionaryItemHandle ( PropertyPathHandle aParentHandle, uint16_t aDictionaryKey) const
GetFirstChild ( PropertyPathHandle aParentHandle) const
Trả về xử lý con đầu tiên được liên kết với một phụ huynh cụ thể.
GetHighestForwardVersion (SchemaVersion aVersion) const
SchemaVersion
Với một phiên bản giản đồ dữ liệu được cung cấp, điều này sẽ trả về phiên bản lược đồ 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 được cung cấp, điều 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 xử lý đường dẫn cụ thể.
GetMaxVersion () const
SchemaVersion
GetMinVersion () const
SchemaVersion
GetNextChild ( PropertyPathHandle aParentId, PropertyPathHandle aChildHandle) const
Đưa ra một xử lý cho một con hiện có, trả về một xử lý con tiếp theo được liên kết với một phụ huynh cụ thể.
GetParent ( PropertyPathHandle aHandle) const
Trả về xử lý cha của một xử lý đường dẫn con đã cho.
GetProfileId (void) const
uint32_t
Trả về id cấu hình 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 một 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 chốt đường dẫn.
GetVersionIntersection ( SchemaVersionRange & aVersion, SchemaVersionRange & aIntersection) const
bool
Với một phạm vi phiên bản, hàm này sẽ kiểm tra xem liệu có sự tương thích nào giữa phạm vi đó và những gì được hỗ trợ bởi lược đồ đang hỗ trợ công cụ lược đồ này hay không.
IsDictionary ( PropertyPathHandle aHandle) const
bool
Trả về true nếu xử lý là một từ điển (và không phải trong từ điển - 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 xử lý nằm trong từ điển (phần tử từ điển).
IsLeaf ( PropertyPathHandle aPropertyHandle) const
bool
Trả về true nếu xử lý tham chiếu đến một nút lá trong cây lược đồ.
IsNullable ( PropertyPathHandle aHandle) const
bool
IsOptional ( PropertyPathHandle aHandle) const
bool
IsParent ( PropertyPathHandle aChildHandle, PropertyPathHandle aParentHandle) const
bool
Kiểm tra xem một tay cầm đã cho có phải là con của một tay cầm khác không.
MapHandleToPath ( PropertyPathHandle aHandle,nl::Weave::TLV::TLVWriter & aPathWriter) const
Chuyển đổi đường dẫn điều khiển thành đường dẫn TLV .
MapPathToHandle (nl::Weave::TLV::TLVReader & aPathReader, PropertyPathHandle & aHandle) const
Đưa ra một trình đọc được đặt ở 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 trình xử lý đường dẫn tương đương.
MapPathToHandle (const char *aPathString, PropertyPathHandle & aHandle) const
Đưa ra biểu diễn chuỗi của đường dẫn WDM, hãy đọc các thẻ có liên quan và cung cấp trình xử lý đường dẫn tương đương.
MatchesProfileId (uint32_t aProfileId) const
bool
Trả về true nếu giá trị được truyền trong profileId khớp với giá trị được lưu trữ trong lược đồ.
RetrieveData ( PropertyPathHandle aHandle, uint64_t aTagToWrite,nl::Weave::TLV::TLVWriter & aWriter, IGetDataDelegate *aDelegate, IDirtyPathCut *apDirtyPathCut) const
Đưa ra một chốt điều khiển đường dẫn và một vị trí người viết trên phần tử dữ liệu tương ứng, lấy dữ liệu lá từ nguồn và ghi nó vào bộ đệm do người viết trỏ đến theo cách tuân thủ lược đồ.
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
Đưa ra một bộ xử lý đường dẫn và một bộ đọc được định vị trên phần tử dữ liệu tương ứng, xử lý bộ đệm dữ liệu được bộ đọc trỏ đến và lưu trữ nó vào bộ nhớ bằng cách gọi lệnh SetLeafData bất cứ khi nào gặp một mục dữ liệu lá.

Các lớp học

nl :: Weave :: Profiles :: DataManagement_Current :: TraitSchemaEngine :: IGetDataDelegate
nl :: Weave :: Profiles :: DataManagement_Current :: TraitSchemaEngine :: ISetDataDelegate

Cấu trúc

nl :: Weave :: Profiles :: DataManagement_Current :: TraitSchemaEngine :: PropertyInfo
nl :: Weave :: Profiles :: DataManagement_Current :: TraitSchemaEngine :: Schema

Cấu trúc lược đồ chính chứa thông tin lược đồ.

Thuộc tính tĩnh công khai

kHandleTableOffset

const uint32_t kHandleTableOffset = 2

Thuộc tính công cộng

mSchema

const Schema mSchema

Chức năng công cộng

FindLowestCommonAncestor

PropertyPathHandle FindLowestCommonAncestor(
  PropertyPathHandle aHandle1,
  PropertyPathHandle aHandle2,
  PropertyPathHandle *aHandle1BranchChild,
  PropertyPathHandle *aHandle2BranchChild
) const 

Cho hai xử lý thuộc tính, hãy tính toán xử lý thấp nhất đóng vai trò là cha mẹ của cả hai điều khiển này.

Ngoài ra, trả về hai nhánh con chứa mỗi nhánh trong số hai xử lý (ngay cả khi chúng giống nhau).

Chi tiết
Giá trị trả lại
PropertyPathHandle
Xử lý cho phụ huynh thấp nhất.

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 lược đồ cho một xử lý nhất định.

Chi tiết
Giá trị trả lại
int32_t
Độ sâu trong cây

GetDictionaryItemHandle

PropertyPathHandle GetDictionaryItemHandle(
  PropertyPathHandle aParentHandle,
  uint16_t aDictionaryKey
) const 

GetFirstChild

PropertyPathHandle GetFirstChild(
  PropertyPathHandle aParentHandle
) const 

Trả về xử lý con đầu tiên được liên kết với một phụ huynh cụ thể.

Chi tiết
Giá trị trả lại
PropertyPathHandle
Xử lý con đầu lòng.

GetHighestForwardVersion

SchemaVersion GetHighestForwardVersion(
  SchemaVersion aVersion
) const 

Với một phiên bản giản đồ dữ liệu được cung cấp, điều này sẽ trả về phiên bản lược đồ tương thích chuyển tiếp cao nhất.

GetLowestComp Tương thíchVersion

SchemaVersion GetLowestCompatibleVersion(
  SchemaVersion aVersion
) const 

Với một phiên bản giản đồ dữ liệu được cung cấp, điều này sẽ trả về phiên bản lược đồ 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 xử lý đường dẫn cụ thể.

Chi tiết
Giá trị trả lại
PropertyInfo*

GetMaxVersion

SchemaVersion GetMaxVersion() const 

GetMinVersion

SchemaVersion GetMinVersion() const 

GetNextChild

PropertyPathHandle GetNextChild(
  PropertyPathHandle aParentId,
  PropertyPathHandle aChildHandle
) const 

Đưa ra một xử lý cho một con hiện có, trả về một xử lý con tiếp theo được liên kết với một cha mẹ cụ thể.

Chi tiết
Giá trị trả lại
PropertyPathHandle
Xử lý con tiếp theo.

GetParent

PropertyPathHandle GetParent(
  PropertyPathHandle aHandle
) const 

Trả về xử lý cha của một xử lý đường dẫn con đã cho.

Các khóa từ điển trong xử lý được giữ nguyên trong trường hợp xử lý mẹ cũng là một phần tử từ điển.

Chi tiết
Giá trị trả lại
PropertyPathHandle
Xử lý của phụ huynh.

GetProfileId

uint32_t GetProfileId(
  void
) const 

Trả về id cấu hình của đặc điểm được liên kết.

Chi tiết
Giá trị trả lại
Trait
id hồ sơ

GetRelativePathTags

WEAVE_ERROR GetRelativePathTags(
  const PropertyPathHandle aCandidateHandle,
  uint64_t *aTags,
  const uint32_t aTagsSize,
  uint32_t & aNumTags
) const 

Chuyển đổi một PropertyPathHandle thành một mảng thẻ ngữ cảnh.

Chi tiết
Thông số
[in] aCandidateHandle
PropertyPathHandle sẽ được chuyển đổi.
[in] aTags
Con trỏ đến mảng đầu ra.
[in] aTagsSize
Kích thước của mảng aTags, theo số phần tử.
[out] aNumTags
Số lượng thẻ được ghi vào aTags
Lợi nhuận
WEAVE_NO_ERROR trong trường hợp thành công; WEAVE_ERROR_NO_MEMORY nếu aTags 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 một chốt đường dẫn.

Nếu đó là một phần tử từ điển, hàm này trả về ProfileTag. Nếu không, nó trả về các thẻ ngữ cảnh.

Chi tiết
Giá trị trả lại
uint64_t

GetVersionIntersection

bool GetVersionIntersection(
  SchemaVersionRange & aVersion,
  SchemaVersionRange & aIntersection
) const 

Với một phạm vi phiên bản, hàm này sẽ kiểm tra xem liệu có sự tương thích giữa phạm vi đó và những gì được hỗ trợ bởi lược đồ đang hỗ trợ công cụ lược đồ này hay không.

Nếu có một giao lộ, hàm sẽ trả về true và cập nhật đối số aIntersection được truyền vào để phản ánh kết quả của kiểm tra giao lộ đó.

IsDictionary

bool IsDictionary(
  PropertyPathHandle aHandle
) const 

Trả về true nếu xử lý là một từ điển (và không phải trong từ điển - xem phương pháp bên dưới).

Chi tiết
Giá trị trả lại
bool

IsEphemeral

bool IsEphemeral(
  PropertyPathHandle aHandle
) const 

IsInDictionary

bool IsInDictionary(
  PropertyPathHandle aHandle,
  PropertyPathHandle & aDictionaryItemHandle
) const 

Trả về true nếu xử lý nằm trong từ điển (phần tử từ điển).

Một người dùng được chuyển vào ô điều khiển (aDictionaryItemHandle) được cập nhật để trỏ đến ô điều khiển phần tử từ điển cao nhất trong từ điển.

Chi tiết
Giá trị trả lại
bool

IsLeaf

bool IsLeaf(
  PropertyPathHandle aPropertyHandle
) const 

Trả về true nếu xử lý tham chiếu đến một nút lá trong cây lược đồ.

Chi tiết
Giá trị trả lại
bool

IsNullable

bool IsNullable(
  PropertyPathHandle aHandle
) const 

Là tùy chọn

bool IsOptional(
  PropertyPathHandle aHandle
) const 

IsParent

bool IsParent(
  PropertyPathHandle aChildHandle,
  PropertyPathHandle aParentHandle
) const 

Kiểm tra xem một tay cầm đã cho có phải là con của một tay cầm khác không.

Đây có thể là cha mẹ trực tiếp.

Chi tiết
Giá trị trả lại
bool

MapHandleToPath

WEAVE_ERROR MapHandleToPath(
  PropertyPathHandle aHandle,
  nl::Weave::TLV::TLVWriter & aPathWriter
) const 

Chuyển đổi chốt điều khiển đường dẫn thành đường dẫn TLV .

Chi tiết
Giá trị trả lại
WEAVE_NO_ERROR
Về thành công.
other
Không thể chuyển đổi chốt điều khiển thành đường dẫn TLV

MapPathToHandle

WEAVE_ERROR MapPathToHandle(
  nl::Weave::TLV::TLVReader & aPathReader,
  PropertyPathHandle & aHandle
) const 

Đưa ra một trình đọc được đặt ở 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 trình xử lý đường dẫn tương đương.

Chi tiết
Giá trị trả lại
WEAVE_NO_ERROR
Về thành công.
WEAVE_ERROR_TLV_TAG_NOT_FOUND
Nếu không thể tìm thấy chốt điều khiển phù hợp do đường dẫn không đúng định dạng / được chỉ định không chính xác.

MapPathToHandle

WEAVE_ERROR MapPathToHandle(
  const char *aPathString,
  PropertyPathHandle & aHandle
) const 

Đưa ra biểu diễn chuỗi của đường dẫn WDM, hãy đọc các thẻ có liên quan và cung cấp trình xử lý đường dẫn tương đương.

Đường dẫn WDM được biểu diễn dưới dạng một chuỗi 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 dấu đầu / và KHÔNG ĐƯỢC chứa 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 tiêu chuẩn cho mã hóa từ nguyên sang chuỗi, nghĩa là mã hóa thập phân (mặc định) KHÔNG ĐƯỢC chứa số 0 đứ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ứa số 0 đứng đầu.

Chi tiết
Giá trị trả lại
WEAVE_NO_ERROR
Về thành công.
WEAVE_ERROR_TLV_TAG_NOT_FOUND
Nếu không thể tìm thấy một chốt điều khiển phù hợp.
WEAVE_ERROR_INVALID_ARGUMENT
Nếu một chuỗi đường dẫn không đúng định dạng

MatchesProfileId

bool MatchesProfileId(
  uint32_t aProfileId
) const 

Trả về true nếu giá trị được truyền trong profileId khớp với giá trị được lưu trữ trong lược đồ.

Chi tiết
Giá trị trả lại
bool

Khôi phục dữ liệu

WEAVE_ERROR RetrieveData(
  PropertyPathHandle aHandle,
  uint64_t aTagToWrite,
  nl::Weave::TLV::TLVWriter & aWriter,
  IGetDataDelegate *aDelegate,
  IDirtyPathCut *apDirtyPathCut
) const 

Đưa ra một xử lý đường dẫn và một vị trí người viết trên phần tử dữ liệu tương ứng, lấy dữ liệu lá từ nguồn và ghi nó vào bộ đệm do người viết trỏ tới theo cách tuân thủ lược đồ.

Chi tiết
Giá trị trả lại
WEAVE_NO_ERROR
Về thành công.
other
Đã gặp lỗi khi ghi dữ liệu.

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 

Đưa ra một bộ xử lý đường dẫn và một bộ đọc được định vị trên phần tử dữ liệu tương ứng, xử lý bộ đệm dữ liệu được bộ đọc trỏ đến và lưu trữ nó vào bộ nhớ bằng cách gọi lệnh SetLeafData bất cứ khi nào gặp một mục dữ liệu lá.

Chi tiết
Giá trị trả lại
WEAVE_NO_ERROR
Về thành công.
other
Đã gặp lỗi phân tích cú pháp / xử lý dữ liệu.