nl:: Weave:: Profiles:: DataManagement_Current:: Command
#include <src/lib/profiles/data-management/Current/Command.h>
סיכום
הערה:המחלקה הזו נועדה להסתיר פרט מסוים בטיפול בפקודות. התקבלה החלטה להסתיר את הפרטים של אימות ExchangeContext ושל המאמת, אבל להשאיר את הטיפול ב-PacketBuffers לשכבת האפליקציה. התועלת של wrapper זה לטיפול בפקודות אכן מוגבלת, בעיקר בשל המורכבות/הגמישות שכרוכות באימות אבטחה ובסידורי נתונים/ביטול סריאליזציה של נתונים.
הפרטים עבור אימות הפקודה עדיין טרם נקבעו
כדי לשנות את תזמון השידור החוזר עבור הודעות 'בתהליך', 'דוח סטטוס' וגם 'תשובה', שכבת האפליקציה תצטרך להתמודד בדרך כלשהי עם האובייקט ExchangeContext. השיטה הטובה ביותר עדיין לא נקבעה, אבל בשכבת האפליקציה יש שלוש אפשרויות אלה:
1) אפשר לרכוש את ההקשר ב-Exchange דרך GetExchangeContext ולהעריך/לתקן אותו באופן ישיר. 2) הקצאה מראש והגדרה של קישור במהלך האתחול, לפני שמתקבלת פקודה, והגדרת אותו כראוי 3) צור קישור זמני באמצעות הפונקציה BindingPole::NewReplyerBindingFromExchangeContext
בשני המקומות (2) ו-(3), שכבת האפליקציה יכולה לאכוף הגדרת אבטחה/תזמון באמצעות Binding::ConfigureExistingExchangeContext. הפונקציה Binding אף פעם לא משמשת ליצירת הקשרי החלפה חדשים לפקודות בהתאמה אישית, ולכן אין צורך לשמור אותה בתוך הכינוי הזה.
גם האחסון הזמני של חבילת הבקשות לא שמור בתוך הכינוי הזה, כי אין בו שימוש ברור. הדבר נכון במיוחד אם שכבת האפליקציה יכולה לטפל בפקודה הזו ולשלוח תגובה ישירות.
שכבת האפליקציה תקבל את מאגר החבילות מאותה קריאה חוזרת (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 )