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

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

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

สรุป

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

การเข้ารหัสจะทำพร้อมกันโดยเมธอด 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 อย่างน้อยหนึ่งรายการได้รับการเข้ารหัสใน DataList ของเพย์โหลด
WEAVE_ERROR_BUFFER_TOO_SMALL
DataElement แรกโหลดในเพย์โหลดไม่ได้
WEAVE_ERROR_INVALID_ARGUMENT
กำหนดค่าเริ่มต้นให้กับบริบทด้วยค่าที่ไม่ถูกต้อง
other
ข้อผิดพลาดอื่นๆ จากออบเจ็กต์ระดับล่าง (TLVWriter, SchemaEngine เป็นต้น)

InsertInProgressUpdateItem

WEAVE_ERROR InsertInProgressUpdateItem(
  const TraitPath & aItem
)

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

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

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

UpdateEncoder

 UpdateEncoder()

~โปรแกรมเปลี่ยนไฟล์

 ~UpdateEncoder()