nl:: Weave:: Profiles:: DataManagement_Current:: Command
#include <src/lib/profiles/data-management/Current/Command.h>
ملخّص
ملاحظة:تم تصميم هذه الفئة لإخفاء تفاصيل معيّنة في معالجة الأوامر. تم اتخاذ قرار بإخفاء تفاصيل ExchangeContext والتحقق من المصادق، مع ترك معالجة PacketBuffers إلى طبقة التطبيق. إنّ فائدة هذا البرنامج في معالجة الأوامر محدودة للغاية، ويرجع ذلك في الغالب إلى التعقيد/المرونة التي ينطوي عليها التحقّق من الأمان وتسلسل البيانات أو إلغاء التسلسل.
لا تزال تفاصيل التحقّق من صحة الأوامر تُحدَّد لاحقًا.
لضبط توقيت إعادة الإرسال لرسالة "قيد التقدم" و"تقرير الحالة" و"الاستجابة" أيضًا، سيتعين على طبقة التطبيق التعامل مع كائن ExchangeContext بطريقة ما. لا تزال أفضل الممارسات هي "يُحدَّد لاحقًا"، ولكن طبقة التطبيق تحتوي على هذه الخيارات الثلاثة:
1) الحصول على سياق Exchange من خلال GetExchangeContext وتقييمه/تعديله مباشرةً. 2) تخصيص الربط مسبقًا وتهيئته أثناء بدء التشغيل، قبل وصول أي أمر، وتهيئته بشكل صحيح 3) إنشاء تجليد مؤقت باستخدام هذه الدالة SlideingPool::NewResponseerSenderMENTingFromExchangeContext
في كلٍ من (2) و (3)، يمكن لطبقة التطبيق فرض إعداد الأمان/التوقيت من خلال الربط::ConfigureEXISTCurrentExchangeContext. ولا يتم استخدام الربط أبدًا لإنشاء سياقات تبادل جديدة للأوامر المخصّصة، لذا لا يجب تخزينها ضمن هذا المؤشر.
ولا يتم أيضًا تخزين المخزن المؤقت لحزمة الطلب في هذا المؤشر لعدم وجود استخدام له بشكلٍ واضح. وينطبق هذا خصوصًا إذا كانت طبقة التطبيق يمكنها التعامل مع هذا الأمر وترسل الاستجابة مباشرةً.
ستتلقى طبقة التطبيق المخزن المؤقت للحزمة من نفس رد الاتصال الذي يتلقى مقبض الأمر هذا. وإذا قرر التعامل مع هذا الأمر بطريقة غير متزامنة، فسيتعين عليه تخزين كل من مؤشر الأوامر ومخزن الحزمة المؤقت.
الأنواع العلنية |
|
---|---|
CommandFlags{
|
تعداد وحدات بت علامة 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
|
يتم ضبطه عندما يكون وقت init صالحًا. |
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 )