nl::Weave::Profiles::DataManagement_Current::Command

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

ملخّص

ملاحظة:تم تصميم هذه الفئة لإخفاء تفاصيل معيّنة في معالجة الأوامر. تم اتخاذ قرار بإخفاء تفاصيل ExchangeContext والتحقق من برنامج المصادقة، مع ترك معالجة PacketBuffers لطبقة التطبيق. إن فائدة برنامج التضمين هذا في التعامل مع الأوامر محدودة بالفعل، ويرجع ذلك أساسًا إلى التعقيد/المرونة التي ينطوي عليها التحقق من الأمان والتسلسل/إلغاء التسلسل.

لا تزال تفاصيل التحقّق من صحة الأمر تُحدَّد لاحقًا.

لضبط توقيت إعادة الإرسال لـ "قيد التقدم" و"تقرير الحالة" و"رسالة الرد"، يجب أن تتعامل طبقة التطبيق بطريقة ما مع الكائن ExchangeContext. أفضل ممارسة لا تزال يتم تحديدها، ولكن طبقة التطبيق لها الخيارات الثلاثة التالية:

1) الحصول على سياق Exchange من خلال GetExchangeContext وتقييمه/تعديله مباشرةً. 2) تخصيص عنصر Binding مسبقًا وإعداده أثناء بدء التشغيل قبل وصول أي أمر، وإعداده بشكل صحيح 3) إنشاء ربط مؤقت باستخدام هذه الدالة BindingPool::NewReplyerBindingFromExchangeContext

في كل من (2) و (3)، يمكن لطبقة التطبيق فرض إعداد الأمان/التوقيت من خلال Binding::ConfigureExistingExchangeContext. لا يتم استخدام ميزة الربط أبدًا لإنشاء سياقات تبادل جديدة للأوامر المخصّصة، لذا ليس من الضروري تخزينه ضمن هذا الاسم المعرِّف.

ولا يتم أيضًا تخزين المخزن المؤقت لحِزم الطلب ضمن هذا الاسم المعرِّف، وذلك لعدم استخدامه بشكل واضح. هذا صحيح خاصة إذا كانت طبقة التطبيق يمكنها التعامل مع هذا الأمر وإرسال الاستجابة مباشرة.

ستتلقى طبقة التطبيق المخزن المؤقت للحزم من نفس رد الاتصال الذي تتلقاه مؤشر الأوامر هذا. وإذا قرر التعامل مع هذا الأمر بطريقة غير متزامنة، يجب تخزين كل من مؤشر الأوامر والمخزن المؤقت للحزم.

الأنواع العامة

CommandFlags{
  kCommandFlag_MustBeVersionValid = 0x0001,
  kCommandFlag_InitiationTimeValid = 0x0002,
  kCommandFlag_ActionTimeValid = 0x0004,
  kCommandFlag_ExpiryTimeValid = 0x0008,
  kCommandFlag_IsOneWay = 0x0010
}
تعداد
وحدات بت علامة 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
يمكنك استرداد كائن سياق التبادل الذي يستخدمه هذا الأمر الوارد.
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 

يمكنك استرداد كائن سياق التبادل الذي يستخدمه هذا الأمر الوارد.

التفاصيل
المرتجعات
يشير هذا المصطلح إلى مؤشر يؤدي إلى عنصر سياق التبادل الذي يستخدمه هذا الأمر الوارد.

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
)