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{
|
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 )