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

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

ملخّص

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

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

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

نسيج تجليد

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

EventCallback

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

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

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

CommunicationError

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

InProgressReceived

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

StatusReportReceived

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

ResponseReceived

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

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

EventCallback)(void *const aAppState, EventType aEvent, const InEventParam &aInParam, OutEventParam &aOutEventParam) تعريف الكتابة
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
)

Init

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
)