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