nl::Weave::Profiles::DataManagement_Current::TraitUpdatableDataSink

Tóm tắt

Tính kế thừa

Kế thừa từ:
  nl::Weave::Profiles::DataManagement_Current::TraitDataSink
  nl::Weave::Profiles::DataManagement_Current::TraitSchemaEngine::IGetDataDelegate

Hàm khởi tạo và phá huỷ

TraitUpdatableDataSink(const TraitSchemaEngine *aEngine)

Hàm công khai

ClearUpdated(SubscriptionClient *apSubClient, PropertyPathHandle aPropertyHandle)
GetData(PropertyPathHandle aHandle, uint64_t aTagToWrite, nl::Weave::TLV::TLVWriter & aWriter, bool & aIsNull, bool & aIsPresent) __OVERRIDE
virtual WEAVE_ERROR
Khi cung cấp một xử lý đường dẫn đến một nút, một trình ghi TLV và các giá trị boolean cho biết giá trị có giá trị rỗng hay không hiện diện, hãy lấy dữ liệu từ nguồn trait sẽ tạo thông báo.
GetSubscriptionClient() __OVERRIDE
virtual SubscriptionClient *
GetUpdateEncoder() __OVERRIDE
virtual UpdateEncoder *
IsUpdatableDataSink(void) __OVERRIDE
virtual bool
Lock(SubscriptionClient *apSubClient)
void
ReadData(TraitDataHandle aTraitDataHandle, PropertyPathHandle aHandle, uint64_t aTagToWrite, TLV::TLVWriter & aWriter, PropertyPathHandle & aPropertyPathHandleOfDictItemToStartFrom)
SetSubscriptionClient(SubscriptionClient *apSubClient) __OVERRIDE
virtual WEAVE_ERROR
SetUpdateEncoder(UpdateEncoder *apEncoder) __OVERRIDE
virtual WEAVE_ERROR
SetUpdated(SubscriptionClient *apSubClient, PropertyPathHandle aPropertyHandle, bool aIsConditional)
Khai báo rằng PropertyPathHandle đã cho có các sửa đổi cục bộ.
Unlock(SubscriptionClient *apSubClient)
void

Hàm công khai

ClearUpdated

WEAVE_ERROR ClearUpdated(
  SubscriptionClient *apSubClient,
  PropertyPathHandle aPropertyHandle
)

GetData

virtual WEAVE_ERROR GetData(
  PropertyPathHandle aHandle,
  uint64_t aTagToWrite,
  nl::Weave::TLV::TLVWriter & aWriter,
  bool & aIsNull,
  bool & aIsPresent
) __OVERRIDE

Khi cung cấp một xử lý đường dẫn đến một nút, một trình ghi TLV và các giá trị boolean cho biết giá trị có giá trị rỗng hay không hiện diện, hãy lấy dữ liệu từ nguồn trait sẽ tạo thông báo.

Nếu ô xử lý đường dẫn không phải là một nút lá, TDM sẽ xử lý việc ghi giá trị cho trình ghi (như mở vùng chứa, rỗng cấu trúc, v.v.). Nếu một nút không phải là nút rỗng hoặc không xuất hiện, TDM sẽ không gọi GetData cho phần tử con.

Hàm này sẽ chỉ được gọi cho các tên người dùng có tính chất rỗng, không bắt buộc, tạm thời hoặc lá. Theo dự kiến, mọi đặc điểm có tên người dùng được bật các tuỳ chọn đó đều sẽ triển khai logic thích hợp để điền sẵn aIsNull và aIsis.

Thông tin chi tiết
Thông số
[in] aHandle
PropertyPathHandle được đề cập.
[in] aTagToWrite
Thẻ cần viết cho aHandle.
[in,out] aWriter
Tác giả để viết các phần tử TLV.
[out] aIsNull
Có phải aHandle là vô hiệu hoá không? Nếu có, TDM sẽ ghi một phần tử rỗng. Nếu mộtHandle không phải là một lá, thì TDM sẽ bỏ qua các phần tử con.
[out] aIsPresent
Có phải là aHandle với sự kiện này không? Nếu không và nếu aHandle không phải là một lá, TDM sẽ bỏ qua đường dẫn và các con của đường dẫn đó.
Giá trị trả về
WEAVE_NO_ERROR
Khi thành công.
other
Không thể truy xuất và ghi dữ liệu vào tác giả.

GetSubscriptionClient

virtual SubscriptionClient * GetSubscriptionClient() __OVERRIDE

GetUpdateEncoder

virtual UpdateEncoder * GetUpdateEncoder() __OVERRIDE

IsUpdatableDataSink

virtual bool IsUpdatableDataSink(
  void
) __OVERRIDE

Khoá

void Lock(
  SubscriptionClient *apSubClient
)

ReadData

WEAVE_ERROR ReadData(
  TraitDataHandle aTraitDataHandle,
  PropertyPathHandle aHandle,
  uint64_t aTagToWrite,
  TLV::TLVWriter & aWriter,
  PropertyPathHandle & aPropertyPathHandleOfDictItemToStartFrom
)

SetSubscriptionClient

virtual WEAVE_ERROR SetSubscriptionClient(
  SubscriptionClient *apSubClient
) __OVERRIDE

SetUpdateEncoder

virtual WEAVE_ERROR SetUpdateEncoder(
  UpdateEncoder *apEncoder
) __OVERRIDE

SetUpdated

WEAVE_ERROR SetUpdated(
  SubscriptionClient *apSubClient,
  PropertyPathHandle aPropertyHandle,
  bool aIsConditional
)

Khai báo rằng PropertyPathHandle đã cho có các sửa đổi cục bộ.

NotificationEngine sẽ không ghi đè xử lý và các thành phần con cháu của nó cho đến khi yêu cầu cập nhật được xử lý. Ứng dụng sẽ nhận được lệnh gọi lại kEvent_OnUpdateComplete cho trình điều khiển này hoặc cho một trong các đối tượng cấp trên của thao tác cập nhật. Sửa đổi có thể có điều kiện hoặc không. Bản cập nhật dữ liệu có điều kiện sẽ bị mất nếu bản sao cục bộ của bản sao trait không còn đồng bộ hoá với bản sao của nhà xuất bản nữa vì bản sao đó đã bị chính nhà xuất bản hoặc một khách hàng khác thay đổi. Đột biến có điều kiện và không có điều kiện không được hỗ trợ cùng lúc trong cùng một thực thể tính trạng.

Thông tin chi tiết
Thông số
[in] apSubClient
Con trỏ trỏ đến SubscriptionClient đang quản lý bồn lưu trữ dữ liệu này.
[in] aPropertyHandle
Mọi PropertyPathHandle hợp lệ cho thực thể Trait này.
[in] aIsConditional
True đối với cập nhật có điều kiện; false.
Giá trị trả về
WEAVE_NO_ERROR
nếu tên người dùng thuộc tính đã được thêm thành công vào tập hợp các thuộc tính sẽ được gửi đến chủ sở hữu của trait đó.
WEAVE_ERROR_INVALID_ARGUMENT
nếu tay điều khiển hoặc con trỏ SubscriptionClient không hợp lệ.
WEAVE_ERROR_WDM_INCONSISTENT_CONDITIONALITY
nếu thực thể trait đã được cập nhật với điều kiện ngược lại.
WEAVE_ERROR_WDM_LOCAL_DATA_INCONSISTENT
nếu aIsCondition là true (đúng) nhưng thực thể trait không có phiên bản hợp lệ.
WEAVE_ERROR_WDM_PATH_STORE_FULL
nếu không còn bộ nhớ để lưu trữ đường dẫn.
Other
Mã WEAVE_ERROR tuỳ theo lỗi.

TraitUpdatableDataSink

 TraitUpdatableDataSink(
  const TraitSchemaEngine *aEngine
)

Mở khoá

void Unlock(
  SubscriptionClient *apSubClient
)