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ỉ được phân biệt theo 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 là InsertInProgressUpdateItem, được SchemaEngine gọi khi cần đẩy một từ điển trở lại hàng đợi.

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

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 đường dẫn riêng tư vào danh sách các đường dẫn đang xử lý, chèn đường dẫn này sau đường dẫn đang được mã hoá tại thời điểm này.

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 phần UpdateEncoder::Context. Độ dài dữ liệu của PacketBuffer chỉ được cập nhật trong trường hợp thành công, nhưng nội dung bộ đệ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 DataList của tải trọng.
WEAVE_ERROR_BUFFER_TOO_SMALL
DataElement đầu tiên không thể vừa với tải trọng.
WEAVE_ERROR_INVALID_ARGUMENT
aContext đã được khởi tạo bằng các giá trị không hợp lệ.
other
Các lỗi khác từ các đối tượng cấp thấp hơn (TLVWriter, SchemaEngine, v.v.).

InsertInProgressUpdateItem

WEAVE_ERROR InsertInProgressUpdateItem(
  const TraitPath & aItem
)

Thêm đường dẫn riêng tư vào danh sách các đường dẫn đang xử lý, chèn đường dẫn này sau đường dẫn đang được mã hoá tại thời điểm này.

Phương thức này đượ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
Tham số
[in] aItem
TraitPath để chèn vào danh sách đang được mã hoá.
Giá trị trả về
WEAVE_NO_ERROR
Mục đã được chèn thành công.
WEAVE_NO_MEMORY
Không có khoảng trống trong TraitPathStore để chèn mục này.

UpdateEncoder

 UpdateEncoder()

~UpdateEncoder

 ~UpdateEncoder()