nl::Weave::Profiles::DataManagement_Current::Command

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

สรุป

หมายเหตุ: คลาสนี้ออกแบบมาเพื่อซ่อนรายละเอียดบางอย่างในการจัดการคำสั่ง ได้มีการตัดสินใจซ่อนรายละเอียดของ ExchangeContext และการตรวจสอบ Authenticator พร้อมกับปล่อยให้การจัดการ PacketBuffers ต่อไปในเลเยอร์ของแอปพลิเคชัน ประโยชน์ของ Wrapper เกี่ยวกับการจัดการคําสั่งนี้มีข้อจํากัดอย่างแท้จริง โดยส่วนใหญ่แล้วเกิดจากความซับซ้อน/ความยืดหยุ่นที่เกี่ยวข้องกับการตรวจสอบความปลอดภัยและการทําให้เป็นอนุกรม/ยกเลิกการเรียงลําดับข้อมูล

รายละเอียดสำหรับการตรวจสอบคำสั่งยังคงเป็น TBD

ในการปรับเวลาการส่งใหม่สำหรับ "กำลังดำเนินการ" "รายงานสถานะ" และข้อความตอบกลับ เลเยอร์ของแอปพลิเคชันจะต้องจัดการกับออบเจ็กต์ ExchangeContext แนวทางปฏิบัติที่ดีที่สุดจะยังคงเป็น TBD แต่ชั้นแอปพลิเคชันมี 3 ตัวเลือก ดังนี้

1) รับบริบทของ Exchange ผ่าน GetExchangeContext และประเมิน/ปรับโดยตรง 2) จัดสรรล่วงหน้าและกำหนดค่าการเชื่อมโยงระหว่างการบูตก่อนที่คำสั่งใดๆ จะมาถึงและกำหนดค่าอย่างถูกต้อง 3) สร้างการเชื่อมโยงชั่วคราวโดยใช้ฟังก์ชันนี้ BindingPool::NewREPLerBindingFromExchangeContext

ทั้งใน (2) และ (3) เลเยอร์ของแอปพลิเคชันสามารถบังคับใช้การตั้งค่าความปลอดภัย/การกำหนดเวลาผ่าน Binding::ConfigureExistingExchangeContext และไม่มีการใช้การเชื่อมโยงในการสร้างบริบทการแลกเปลี่ยนใหม่สำหรับคำสั่งที่กำหนดเอง จึงไม่ต้องมีการจัดเก็บไว้ในแฮนเดิลนี้

และจะไม่จัดเก็บบัฟเฟอร์แพ็กเก็ตคำขอไว้ในแฮนเดิลนี้ด้วย เนื่องจากไม่มีการใช้งานที่ชัดเจน โดยเฉพาะอย่างยิ่งหากเลเยอร์ของแอปพลิเคชันสามารถจัดการคำสั่งนี้และส่งการตอบกลับได้โดยตรง

เลเยอร์ของแอปพลิเคชันจะได้รับบัฟเฟอร์แพ็กเก็ตจากโค้ดเรียกกลับที่เดิมได้รับแฮนเดิลคำสั่งนี้ หากเลือกที่จะจัดการคำสั่งนี้ในลักษณะที่ไม่พร้อมกัน ก็จะต้องจัดเก็บทั้งแฮนเดิลคำสั่งและบัฟเฟอร์แพ็กเก็ต

ประเภทสาธารณะ

CommandFlags{
  kCommandFlag_MustBeVersionValid = 0x0001,
  kCommandFlag_InitiationTimeValid = 0x0002,
  kCommandFlag_ActionTimeValid = 0x0004,
  kCommandFlag_ExpiryTimeValid = 0x0008,
  kCommandFlag_IsOneWay = 0x0010
}
enum
บิตของแฟล็ก Command
CommandFlags typedef
บิตของแฟล็ก Command

แอตทริบิวต์สาธารณะ

actionTimeMicroSecond
int64_t
commandType
uint64_t
expiryTimeMicroSecond
int64_t
initiationTimeMicroSecond
int64_t
mustBeVersion
uint64_t

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

Close(void)
void
GetExchangeContext(void) const
เรียกออบเจ็กต์บริบท Exchange ที่คำสั่งขาเข้านี้ใช้
IsActionTimeValid(void) const
bool
IsExpiryTimeValid(void) const
bool
IsInitiationTimeValid(void) const
bool
IsMustBeVersionValid(void) const
bool
IsOneWay(void) const
bool
SendError(uint32_t aProfileId, uint16_t aStatusCode, WEAVE_ERROR aWeaveError)
SendInProgress(void)
SendResponse(uint32_t traitInstanceVersion, nl::Weave::System::PacketBuffer *apPayload)
ValidateAuthenticator(nl::Weave::System::PacketBuffer *aRequestBuffer)

ประเภทสาธารณะ

CommandFlags

 CommandFlags

บิตของแฟล็ก Command

พร็อพเพอร์ตี้
kCommandFlag_ActionTimeValid

กำหนดเวลาการดำเนินการที่ถูกต้อง

kCommandFlag_ExpiryTimeValid

กำหนดเวลาหมดอายุ

kCommandFlag_InitiationTimeValid

กำหนดเวลาเริ่มต้นที่ถูกต้อง

kCommandFlag_IsOneWay

ตั้งค่าเมื่อคำสั่งเป็นแบบทางเดียว

kCommandFlag_MustBeVersionValid

กำหนดเวลาที่ช่องเวอร์ชันถูกต้อง

CommandFlags

enum nl::Weave::Profiles::DataManagement_Current::Command::CommandFlags CommandFlags

บิตของแฟล็ก Command

แอตทริบิวต์สาธารณะ

actionTimeMicroSecond

int64_t actionTimeMicroSecond

commandType

uint64_t commandType

expiryTimeMicroSecond

int64_t expiryTimeMicroSecond

initiationTimeMicroSecond

int64_t initiationTimeMicroSecond

mustBeVersion

uint64_t mustBeVersion

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

ปิด

void Close(
  void
)

GetExchangeContext

nl::Weave::ExchangeContext * GetExchangeContext(
  void
) const 

เรียกออบเจ็กต์บริบท Exchange ที่คำสั่งขาเข้านี้ใช้

รายละเอียด
การส่งคืน
ตัวชี้ไปยังออบเจ็กต์บริบท Exchange ที่คำสั่งขาเข้านี้ใช้

IsActionTimeValid

bool IsActionTimeValid(
  void
) const 

IsExpiryTimeValid

bool IsExpiryTimeValid(
  void
) const 

IsInitiationTimeValid

bool IsInitiationTimeValid(
  void
) const 

IsMustBeVersionValid

bool IsMustBeVersionValid(
  void
) const 

IsOneWay

bool IsOneWay(
  void
) const 

SendError

WEAVE_ERROR SendError(
  uint32_t aProfileId,
  uint16_t aStatusCode,
  WEAVE_ERROR aWeaveError
)

SendInProgress

WEAVE_ERROR SendInProgress(
  void
)

SendResponse

WEAVE_ERROR SendResponse(
  uint32_t traitInstanceVersion,
  nl::Weave::System::PacketBuffer *apPayload
)

ValidateAuthenticator

WEAVE_ERROR ValidateAuthenticator(
  nl::Weave::System::PacketBuffer *aRequestBuffer
)