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à hàm phá

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 được cung cấp một ô điều khiển đườ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ó rỗng hay không, hãy lấy dữ liệu từ nguồn trait sẽ tạo một 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 PropertiesPathHandle đã 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 được cung cấp một ô điều khiển đườ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ó rỗng hay không, hãy lấy dữ liệu từ nguồn trait sẽ tạo một thông báo.

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

Hàm này chỉ được gọi cho những tên người dùng có thể nhận giá trị 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 đã bật các tuỳ chọn đó sẽ triển khai logic thích hợp để điền aIsNull và aIsPresent.

Thông tin chi tiết
Thông số
[in] aHandle
PropertiesPathHandle được đề cập.
[in] aTagToWrite
Thẻ cần ghi cho aHandle.
[in,out] aWriter
Người viết các phần tử TLV.
[out] aIsNull
aHandle có bị vô hiệu hóa không? Nếu có, TDM sẽ ghi một phần tử rỗng. Nếu aHandle không phải là một lá, TDM sẽ bỏ qua các thành phần con của nó.
[out] aIsPresent
aHandle có xuất hiện 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 đường dẫn con.
Giá trị trả về
WEAVE_NO_ERROR
Khi thành công.
other
Không thể truy xuất dữ liệu và ghi dữ liệu vào người viết.

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 PropertiesPathHandle đã cho có các sửa đổi cục bộ.

NotificationEngine sẽ không ghi đè tên người dùng và các thành phần con cho đến khi yêu cầu cập nhật được xử lý. Ứng dụng sẽ nhận được các lệnh gọi lại kEvent_OnUpdateComplete cho tên người dùng này hoặc cho một trong các đối tượng cấp trên của ứng dụng qua kết quả của thao tác cập nhật. Hoạt động sửa đổi có thể có điều kiện hoặc không. Yêu cầu 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 phiên bản trait không còn đồng bộ với bản sao của nhà xuất bản vì bản sao đó đã bị chính nhà xuất bản hoặc ứng dụ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 trường hợp của đặc điểm.

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

TraitUpdatableDataSink

 TraitUpdatableDataSink(
  const TraitSchemaEngine *aEngine
)

Mở khoá

void Unlock(
  SubscriptionClient *apSubClient
)