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

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

สรุป

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

รายละเอียดของการตรวจสอบคำสั่งยังอยู่ระหว่างดำเนินการ

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

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

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

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

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

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

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
)