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{
|
تعداد وحدات بت علامة 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 )