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

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

ออบเจ็กต์นี้จะเข้ารหัสเพย์โหลด UpdateRequest ของ WDM และ บางส่วนของUpdateRequest

สรุป

โปรดทราบว่าคำขอทั้งสองมีรูปแบบเดียวกัน จะแยกความแตกต่างตามประเภทข้อความเท่านั้น ซึ่งอยู่นอกขอบเขตของออบเจ็กต์นี้

การเข้ารหัสจะทำพร้อมกันโดยเมธอด EncodeRequest วิธีสาธารณะอีกวิธีหนึ่งคือ InsertInProgressUpdateItem ซึ่งเรียกใช้โดย SchemaEngine เมื่อต้องพุชพจนานุกรมกลับไปยังคิว

ผู้ผลิตและผู้ทำลาย

UpdateEncoder()
~UpdateEncoder()

ฟังก์ชันสาธารณะ

EncodeRequest(Context & aContext)
เข้ารหัสเพย์โหลดคำขออัปเดต WDM
InsertInProgressUpdateItem(const TraitPath & aItem)
เพิ่มเส้นทางส่วนตัวในรายการเส้นทางที่กำลังดำเนินการ โดยแทรกเส้นทางหลังจากที่เข้ารหัสเส้นทางในขณะนั้น

โครงสร้าง

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

โครงสร้างนี้เก็บอาร์กิวเมนต์ I/O กับเมธอด EncodeRequest

ฟังก์ชันสาธารณะ

EncodeRequest

WEAVE_ERROR EncodeRequest(
  Context & aContext
)

เข้ารหัสเพย์โหลดคำขออัปเดต WDM

ดู UpdateEncoder::Context ความยาวของข้อมูล PacketBuffer จะได้รับการอัปเดตในกรณีที่ดำเนินการสำเร็จเท่านั้น แต่จะไม่เก็บรักษาเนื้อหาในบัฟเฟอร์

รายละเอียด
ผลลัพธ์
WEAVE_NO_ERROR
DataElement อย่างน้อย 1 รายการมีการเข้ารหัสใน DataList ของเพย์โหลด
WEAVE_ERROR_BUFFER_TOO_SMALL
DataElement แรกไม่สามารถใส่ในเพย์โหลดได้
WEAVE_ERROR_INVALID_ARGUMENT
เริ่มต้น aContext ด้วยค่าที่ไม่ถูกต้อง
other
ข้อผิดพลาดอื่นๆ จากออบเจ็กต์ระดับล่าง (TLVWriter, SchemaEngine ฯลฯ)

InsertInProgressUpdateItem

WEAVE_ERROR InsertInProgressUpdateItem(
  const TraitPath & aItem
)

เพิ่มเส้นทางส่วนตัวในรายการเส้นทางที่กำลังดำเนินการ โดยแทรกเส้นทางหลังจากที่เข้ารหัสเส้นทางในขณะนั้น

เมธอดนี้ควรถูกเรียกโดย SchemaEngine ขณะที่ข้ามแผนผังสคีมา และจะต้องพุชพจนานุกรมกลับไปยังรายการ

รายละเอียด
พารามิเตอร์
[in] aItem
TraitPath ที่จะแทรกในรายการที่เข้ารหัส
ผลลัพธ์
WEAVE_NO_ERROR
แทรกรายการสำเร็จแล้ว
WEAVE_NO_MEMORY
ไม่มีพื้นที่ใน TraitPathStore สำหรับแทรกรายการ

UpdateEncoder

 UpdateEncoder()

~UpdateEncoder

 ~UpdateEncoder()