nl::Weave::Profiles::DataManagement_Current::CommandSender

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

ملخّص

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

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

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

ربط النسج

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

EventCallback

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

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

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

CommunicationError

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

InProgressReceived

يمكن للمُستلِم إرسال رسالة "قيد المعالجة" تشير إلى تلقّي الأمر، ولكن لم يتم إكماله بعد. بعد الانتهاء، سيرسل المستلم ردًا أو تقرير حالة. إرسال رسالة "قيد التقدم" ليس مطلوبًا.

StatusReportReceived

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

ResponseReceived

يعني تلقّي استجابة أنّ مستلم 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::Profiles::DataManagement_Current::CommandSender::InEventParam

البيانات التي يعرضها مُستلِم الأمر المخصّص إلى المُرسِل.

nl::Weave::Profiles::DataManagement_Current::CommandSender::OutEventParam

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

nl::Weave::Profiles::DataManagement_Current::CommandSender::SendParams

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

nl::Weave::Profiles::DataManagement_Current::CommandSender::SynchronizedTraitState

الأنواع العلنية

EventCallback

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

EventType

 EventType

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

mAppState

void * mAppState = NULL

mSyncronizedTraitState

SynchronizedTraitState * mSyncronizedTraitState = NULL

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

DefaultEventHandler

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
)

SetSynchronizedTraitState

void SetSynchronizedTraitState(
  SynchronizedTraitState *aTraitState
)