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