nl::Weave::Profiles::DataManagement_Current::UpdateEncoder

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

Đối tượng này mã hoá các tải trọng UpdateRequest và PartialUpdateRequest của WDM.

Tóm tắt

Xin lưu ý rằng cả hai yêu cầu đều có cùng định dạng; chúng chỉ khác nhau ở loại thông báo, nằm ngoài phạm vi của đối tượng này.

Quá trình mã hoá được thực hiện đồng bộ bằng phương thức EncodeRequest. Phương thức công khai khác duy nhất khác là InsertInProgressUpdateItem. Phương thức này được SchemaEngine gọi khi cần đẩy từ điển trở lại hàng đợi.

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

UpdateEncoder()
~UpdateEncoder()

Hàm công khai

EncodeRequest(Context & aContext)
Mã hoá tải trọng yêu cầu Cập nhật WDM.
InsertInProgressUpdateItem(const TraitPath & aItem)
Thêm một đường dẫn riêng tư vào danh sách các đường dẫn đang được tiến hành, chèn đường dẫn đó vào sau đường dẫn đang được mã hóa hiện tại.

Cấu trúc

nl::Weave::Profiles::DataManagement_Current::UpdateEncoder::Context

Cấu trúc này lưu giữ các đối số I/O cho phương thức EncodeRequest.

Hàm công khai

EncodeRequest

WEAVE_ERROR EncodeRequest(
  Context & aContext
)

Mã hoá tải trọng yêu cầu Cập nhật WDM.

Hãy xem UpdateEncoder::Context. Độ dài dữ liệu của PacketBuffer chỉ được cập nhật khi thành công nhưng nội dung vùng đệm không được bảo toàn.

Thông tin chi tiết
Giá trị trả về
WEAVE_NO_ERROR
Ít nhất một DataElement đã được mã hoá trong Danh sách dữ liệu của tải trọng.
WEAVE_ERROR_BUFFER_TOO_SMALL
DataElement đầu tiên không thể vừa trong tải trọng.
WEAVE_ERROR_INVALID_ARGUMENT
Đã khởi động aContext bằng các giá trị không hợp lệ.
other
Các lỗi khác của đối tượng cấp thấp hơn (TLVWriter, SchemaEngine, v.v.).

InsertInProgressUpdateItem

WEAVE_ERROR InsertInProgressUpdateItem(
  const TraitPath & aItem
)

Thêm một đường dẫn riêng tư vào danh sách các đường dẫn đang được tiến hành, chèn đường dẫn đó vào sau đường dẫn đang được mã hóa hiện tại.

Phương thức này sẽ được SchemaEngine gọi khi truyền tải qua cây giản đồ và cần đẩy từ điển trở lại danh sách.

Thông tin chi tiết
Thông số
[in] aItem
TraitPath để chèn vào danh sách đang được mã hóa.
Giá trị trả về
WEAVE_NO_ERROR
Đã chèn mục này thành công.
WEAVE_NO_MEMORY
Không có khoảng trống trong TraitPathStore để chèn mục.

UpdateEncoder

 UpdateEncoder()

~UpdateEncoder

 ~UpdateEncoder()