nl :: نسج:: مظهر:: إدارة البيانات_ الحالية :: أمر

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

ملخص

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

لا تزال تفاصيل التحقق من صحة الأمر TBD

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

1) الحصول على سياق Exchange عبر GetExchangeContext وتقييم مباشرة / تعديله. 2) ما قبل تخصيص وتكوين ملزم خلال الحذاء، قبل وصول أي أمر، وتكوين بشكل صحيح 3) إنشاء مؤقت ملزم باستخدام هذه الوظيفة BindingPool :: NewResponderBindingFromExchangeContext

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

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

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

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

CommandFlags {
kCommandFlag_MustBeVersionValid = 0x0001,
kCommandFlag_InitiationTimeValid = 0x0002,
kCommandFlag_ActionTimeValid = 0x0004,
kCommandFlag_ExpiryTimeValid = 0x0008,
kCommandFlag_IsOneWay = 0x0010
}
تعداد
و القيادة بت العلم.
CommandFlags typedef
و القيادة بت العلم.

السمات العامة

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

و القيادة بت العلم.

الخصائص
kCommandFlag_ActionTimeValid

حدد عندما يكون وقت العمل صالحًا.

kCommandFlag_ExpiryTimeValid

حدد وقت انتهاء الصلاحية.

kCommandFlag_InitiationTimeValid

حدد عندما يكون وقت البادئ صالحًا.

kCommandFlag_IsOneWay

اضبط عندما يكون الأمر في اتجاه واحد.

kCommandFlag_MustBeVersionValid

حدد وقت صلاحية حقل الإصدار.

السمات العامة

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 

إرسال الخطأ

WEAVE_ERROR SendError(
  uint32_t aProfileId,
  uint16_t aStatusCode,
  WEAVE_ERROR aWeaveError
)

SendInProgress

WEAVE_ERROR SendInProgress(
  void
)

أرسل جوابا

WEAVE_ERROR SendResponse(
  uint32_t traitInstanceVersion,
  nl::Weave::System::PacketBuffer *apPayload
)

التحقق من صحة المصدق

WEAVE_ERROR ValidateAuthenticator(
  nl::Weave::System::PacketBuffer *aRequestBuffer
)