nl::Weave::الملفات الشخصية::DataManagement_Current::Commandsender

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

الملخّص

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

لا تزال تفاصيل التحقّق من صحة الأوامر نهائية.

تساعد هذه الفئة أيضًا التطبيقات على استنتاج ما إذا كانت البيانات ضمن TraitDataSink مرتبطة بآثار جانبية الإرسال (استنادًا إلى الإصدار المُقدّم في استجابة الأمر). يتحمل التطبيق مسؤولية إدارة مساحة التخزين لهذا العنصر.

دمج الربط

يمكن ربط كائن من هذه الفئة بربط Weave، والذي يكون هو الربط التلقائي لاستخدامه في إرسال الأوامر. قد يوفّر المستخدم أيضًا ربط لكل استدعاء لـ SendCommand()، ما يؤدي إلى إلغاء الربط التلقائي. لا يلزم توفير ربط تلقائي، ولكن يجب إعداد أي ربط مقدَّم إلى Commandsender تلقائيًا.

معاودة الاتصال بالحدث

يجب على المستخدم تحديد دالة من هذا النوع إذا كان يريد أن يتم تحديثها عن الأحداث التي تحدث بعد إرسال الأمر (اطّلِع على &سجلّات أحداث واجهة برمجة التطبيقات&quot، أدناه). ويمكن إدخال قيمة فارغة إذا لم يكن المستخدم مهتمًا بما يحدث بعد إرسال الأمر.

أحداث واجهة برمجة التطبيقات

الأحداث التالية هي النتائج المحتملة بعد إرسال أمر:

خطأ في الاتصال

حدث خطأ أثناء إنشاء الأمر أو إرساله، أو أثناء انتظار الرد. ومن أمثلة الأخطاء التي قد تحدث أثناء انتظار الرد أخطاء رئيسية أو إغلاق غير متوقع لاتصال. سيتم تضمين سبب الخطأ في الوسيطة InEventParam لمعالج الحدث EventCallback.

قيد التقدم

يمكن للمُستلِم إرسال رسالة &#39؛ قيد التقدم&#39؛ والتي تشير إلى أنّه تم استلام الأمر، ولكن لم تكتمل حتى الآن. بعد الانتهاء، سيرسل المستلم ردًا أو تقرير الحالة. إرسال 'قيد التقدم&39; غير مطلوب.

تقرير الحالة المستلم

يشير استلام تقرير الحالة إلى حدوث خطأ أثناء معالجة Command. يمكن الوصول إلى تقرير الحالة من خلال InEventParam.

تمّ تلقي ردّ.

يعني تلقّي استجابة أنّ مستلم Command قد عالج Command بنجاح. قد تتضمّن الاستجابة حمولة أو قد لا تحتوي عليها. إذا أراد التطبيق الاحتفاظ بالتخزين المؤقت للحزمة، قد يطلب ExchangeContext::AddRef() لزيادة عدد المراجع.

الأنواع المتاحة للجميع

EventCallback)(void *const aAppState, EventType aEvent, const InEventParam &aInParam, OutEventParam &aOutEventParam) typedef
void(*
EventType تعداد

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

mAppState = NULL
void *
mSyncronizedTraitState = NULL

الدوال الثابتة العامة

DefaultEventHandler(void *aAppState, EventType aEvent, const InEventParam & aInParam, OutEventParam & aOutParam)
void

وظائف عامة

Close(bool aAbortNow)
void
Init(nl::Weave::Binding *aBinding, const EventCallback aEventCallback, void *const aAppState)
SendCommand(nl::Weave::PacketBuffer *aPayload, nl::Weave::Binding *aBinding, ResourceIdentifier & aResourceId, uint32_t aProfileId, uint32_t aCommandType)
SendCommand(nl::Weave::PacketBuffer *aPayload, nl::Weave::Binding *aBinding, SendParams & aSendParams)
SetSynchronizedTraitState(SynchronizedTraitState *aTraitState)
void

الهياكل

nl::Weave::الملفات الشخصية::DataManagement_Current::Commandsender::InEventParam

البيانات التي يعرضها مستلم الأمر المخصص.

nl:: Weave::الملفات الشخصية::DataManagement_Current::Commandsender::OutEventParam

يتم إرجاع البيانات إلى كائن Commandsender من دالة EventCallback.

nl::Weave::الملفات الشخصية::DataManagement_Current::Commandsender::SendParams

لتغليف الوسيطات التي يتم تمريرها إلى SendCommand().

nl::Weave::الملفات الشخصية::DataManagement_Current::Commandsender::SyncdTraitState

الأنواع المتاحة للجميع

معاودة الاتصال بالحدث

void(* EventCallback)(void *const aAppState, EventType aEvent, const InEventParam &aInParam, OutEventParam &aOutEventParam)

نوع الحدث

 EventType

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

mAppState

void * mAppState = NULL

mSyncronizeTraitState

SynchronizedTraitState * mSyncronizedTraitState = NULL

الدوال الثابتة العامة

مؤشر الحدث التلقائي

void DefaultEventHandler(
  void *aAppState,
  EventType aEvent,
  const InEventParam & aInParam,
  OutEventParam & aOutParam
)

وظائف عامة

إغلاق

void Close(
  bool aAbortNow
)

إنيت

WEAVE_ERROR Init(
  nl::Weave::Binding *aBinding,
  const EventCallback aEventCallback,
  void *const aAppState
)

SendCommand

WEAVE_ERROR SendCommand(
  nl::Weave::PacketBuffer *aPayload,
  nl::Weave::Binding *aBinding,
  ResourceIdentifier & aResourceId,
  uint32_t aProfileId,
  uint32_t aCommandType
)

SendCommand

WEAVE_ERROR SendCommand(
  nl::Weave::PacketBuffer *aPayload,
  nl::Weave::Binding *aBinding,
  SendParams & aSendParams
)

SetSyncdTraitState

void SetSynchronizedTraitState(
  SynchronizedTraitState *aTraitState
)