nl:: بافت:: پروفایل ها:: DataManagement_Current:: فرمان

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

خلاصه

توجه: این کلاس برای پنهان کردن جزئیات خاصی در مدیریت فرمان طراحی شده است. تصمیم گرفته شده است که جزئیات ExchangeContext و اعتبارسنجی authenticator پنهان شود، در حالی که مدیریت PacketBuffers به ​​لایه برنامه واگذار شود. کاربرد این پوشش در مورد مدیریت فرمان در واقع محدود است، عمدتاً به دلیل پیچیدگی/انعطاف پذیری موجود در اعتبار سنجی امنیتی و سریال سازی/سریالی سازی داده ها.

جزئیات برای اعتبار سنجی فرمان هنوز TBD است

برای تنظیم زمان ارسال مجدد برای پیام در حال پیشرفت، گزارش وضعیت و همچنین پیام پاسخ، لایه برنامه باید به نحوی با شی ExchangeContext مقابله کند. بهترین روش همچنان TBD است، اما لایه برنامه دارای این سه انتخاب است:

1) Context Exchange را از طریق GetExchangeContext بدست آورید و مستقیماً آن را ارزیابی/تنظیم کنید. 2) یک Binding را در هنگام بوت کردن، قبل از رسیدن هر دستوری از قبل اختصاص داده و پیکربندی کنید و آن را به درستی پیکربندی کنید. 3) با استفاده از این تابع BindingPool::NewResponderBindingFromExchangeContext یک Binding موقت ایجاد کنید

در هر دو (2) و (3)، لایه برنامه می تواند تنظیمات امنیتی/زمان بندی را از طریق Binding::ConfigureExistingExchangeContext اعمال کند. Binding هرگز برای ایجاد زمینه های تبادل جدید برای دستورات سفارشی استفاده نمی شود، بنابراین لازم نیست در این دسته ذخیره شود.

بافر بسته درخواست نیز در این دسته ذخیره نمی شود، زیرا هیچ استفاده آشکاری از آن وجود ندارد. این امر مخصوصاً زمانی صادق است که لایه برنامه بتواند این دستور را مدیریت کند و مستقیماً پاسخ ارسال کند.

لایه برنامه بافر بسته را از همان بازگشتی که این دسته دستور را دریافت می کند، دریافت می کند. اگر تصمیم بگیرد این دستور را به صورت ناهمگام مدیریت کند، باید هم دسته فرمان و هم بافر بسته را ذخیره کند.

انواع عمومی

CommandFlags {
kCommandFlag_MustBeVersionValid = 0x0001,
kCommandFlag_InitiationTimeValid = 0x0002,
kCommandFlag_ActionTimeValid = 0x0004,
kCommandFlag_ExpiryTimeValid = 0x0008,
kCommandFlag_IsOneWay = 0x0010
}
enum
پرچم فرمان بیت می شود.
CommandFlags typedef
پرچم Command بیت می شود.

صفات عمومی

actionTimeMicroSecond
int64_t
commandType
uint64_t
expiryTimeMicroSecond
int64_t
initiationTimeMicroSecond
int64_t
mustBeVersion
uint64_t

توابع عمومی

Close (void)
void
GetExchangeContext (void) const
شئ متن مبادله مورد استفاده توسط این دستور ورودی را بازیابی کنید.
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

پرچم فرمان بیت می شود.

صفات عمومی

actionTimeMicroSecond

int64_t actionTimeMicroSecond

نوع فرمان

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 

شئ متن مبادله مورد استفاده توسط این دستور ورودی را بازیابی کنید.

جزئیات
برمی گرداند
یک اشاره گر به شی زمینه تبادل که توسط این دستور ورودی استفاده می شود

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
)