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

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

خلاصه

توجه:این کلاس جزئیات پروتکل ارسال فرمان‌ها را کپسوله‌سازی می‌کند و سازوکار مربوط به برنامه‌ها را ساده می‌کند. برنامه یک PacketBuffer ارائه می‌دهد که حاوی بار مفید فرمان و همچنین مجموعه‌ای اختیاری از متغیرهای مستقل است که محتوای سرصفحه فرمان و همچنین رفتار فرمان را تغییر می‌دهد. کاربرد این پوشش در مدیریت فرمان واقعاً محدود است، عمدتاً به‌دلیل پیچیدگی/انعطاف‌پذیری موجود در اعتبارسنجی امنیتی و سریال‌سازی/غیرسریال‌سازی داده‌ها.

جزئیات اعتبارسنجی فرمان هنوز مشخص نشده است

این کلاس همچنین به برنامه‌ها کمک می‌کند تا استنباط کنند که آیا داده‌های موجود در TraitDataSink مرتبط به عوارض جانبی فرمان رسیده است یا نه (براساس نسخه ارائه‌شده در پاسخ فرمان). برنامه مسئول مدیریت فضای ذخیره‌سازی آن شیء است.

صحافی بافت

شیء این کلاس را می‌توان با Weave Binding مقداردهی اولیه کرد که به‌عنوان Binding پیش‌فرض برای ارسال «فرمان‌ها» استفاده خواهد شد. کاربر همچنین می‌تواند برای هر فراخوانی SendCommand()‎ یک Binding ارائه دهد که Binding پیش‌فرض را لغو خواهد کرد. ارائه Binding پیش‌فرض ضروری نیست، اما هر binding ارائه‌شده به CommandSender باید ازقبل مقداردهی اولیه شده باشد.

EventCallback

اگر کاربر بخواهد از رویدادهایی که پس‌از ارسال فرمان اتفاق می‌افتد مطلع شود، باید تابعی از این نوع تعریف کند (به «رویدادهای API» در زیر مراجعه کنید). اگر برای کاربر مهم نباشد که بعداز ارسال فرمان چه اتفاقی می‌افتد، این مقدار می‌تواند NULL باشد.

رویدادهای میانای برنامه‌سازی کاربردی

رویدادهای زیر نتایج احتمالی پس‌از ارسال فرمان هستند:

CommunicationError

هنگام تشکیل یا ارسال فرمان، یا هنگام انتظار برای پاسخ، خطایی روی داد. نمونه‌هایی از خطاهایی که ممکن است هنگام انتظار برای پاسخ رخ دهد، خطاهای کلیدی یا بسته شدن غیرمنتظره اتصال است. دلیل خطا در آرگومان InEventParam برای کنترل‌کننده EventCallback گنجانده خواهد شد.

InProgressReceived

گیرنده می‌تواند پیام «درحال انجام» ارسال کند که نشان می‌دهد فرمان دریافت شده است اما هنوز تکمیل نشده است. پس‌از تکمیل، گیرنده Response یا StatusReport ارسال خواهد کرد. ارسال پیام «درحال انجام» الزامی نیست.

StatusReportReceived

دریافت StatusReport به این معنی است که خطایی در پردازش Command وجود داشته است. می‌توان ازطریق InEventParam به StatusReport دسترسی پیدا کرد.

ResponseReceived

دریافت «پاسخ» به‌معنای آن است که گیرنده فرمان، فرمان را باموفقیت انجام داده است. «پاسخ» ممکن است حاوی بار داده باشد یا نباشد. اگر برنامه بخواهد میان‌گیر بسته را نگه دارد، می‌تواند 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

داده‌ها از تابع EventCallback به شیء CommandSender برگردانده شد.

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
)