nl:: بافت:: پروفایل ها:: DataManagement_Current:: CommandSender
#include <src/lib/profiles/data-management/Current/CommandSender.h>
خلاصه
توجه: این کلاس جزئیات پروتکل ارسال دستورات را محصور می کند و مکانیک های مربوط به برنامه ها را ساده می کند. این برنامه یک PacketBuffer حاوی بار فرمان و همچنین مجموعه ای اختیاری از آرگومان ها را ارائه می دهد که محتویات هدر فرمان و همچنین رفتار فرمان را تغییر می دهد. کاربرد این پوشش برای کنترل فرمان در واقع محدود است، عمدتاً به دلیل پیچیدگی/انعطاف پذیری موجود در اعتبار سنجی امنیتی و سریال سازی/سریال سازی داده ها.
جزئیات برای اعتبار سنجی فرمان هنوز TBD است
این کلاس همچنین به برنامههای کاربردی کمک میکند تا حدس بزنند که آیا دادههای موجود در TraitDataSink مرتبط با عوارض جانبی فرمان (بر اساس نسخه ارائهشده در پاسخ فرمان) مطابقت دارد یا خیر. برنامه مسئول مدیریت ذخیره سازی آن شی است.
صحافی بافت
یک شی از این کلاس را می توان با یک Weave Binding که به عنوان Binding پیش فرض برای ارسال دستورات استفاده می شود، مقداردهی کرد. کاربر همچنین ممکن است برای هر فراخوانی SendCommand یک Binding ارائه دهد که Binding پیشفرض را لغو میکند. ارائه یک Binding پیشفرض ضروری نیست، با این حال هر اتصالی که به CommandSender ارائه میشود باید قبلاً مقداردهی شده باشد.
رویداد Callback
اگر کاربر بخواهد در مورد رویدادهایی که پس از ارسال فرمان رخ می دهد به روز شود، باید تابعی از این نوع تعریف کند (به «رویدادهای API» در زیر مراجعه کنید). اگر کاربر اهمیتی نداشته باشد که پس از ارسال فرمان چه اتفاقی می افتد، این می تواند NULL باشد.
رویدادهای API
رویدادهای زیر نتایج احتمالی پس از ارسال یک فرمان هستند:
خطای ارتباطی
هنگام شکلدهی یا ارسال فرمان ، یا در انتظار پاسخ، خطایی روی داد. نمونه هایی از خطاهایی که ممکن است در زمان انتظار برای پاسخ رخ دهند، خطاهای کلیدی یا بسته شدن غیرمنتظره اتصال هستند. دلیل خطا در آرگومان InEventParam به کنترل کننده EventCallback وجود دارد.
InProgress Received
گیرنده می تواند پیام "در حال پیشرفت" را ارسال کند که نشان می دهد فرمان دریافت شده است، اما هنوز تکمیل نشده است. پس از تکمیل، گیرنده یک پاسخ یا گزارش وضعیت ارسال می کند. ارسال پیام "در حال انجام" الزامی نیست.
گزارش وضعیت دریافت شد
دریافت StatusReport به این معنی است که در پردازش فرمان خطایی رخ داده است. StatusReport از طریق InEventParam قابل دسترسی است.
پاسخ دریافت شد
دریافت پاسخ به این معنی است که گیرنده فرمان فرمان را با موفقیت انجام داده است. پاسخ ممکن است حاوی محموله باشد یا نه. اگر برنامه بخواهد بافر بسته را حفظ کند، ممکن است ExchangeContext::AddRef() را فراخوانی کند تا تعداد ref را افزایش دهد.
انواع عمومی | |
---|---|
EventCallback )(void *const aAppState, EventType aEvent, const InEventParam &aInParam, OutEventParam &aOutEventParam) | typedefvoid(* |
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:: بافت:: پروفایل ها:: DataManagement_Current:: CommandSender:: InEventParam | داده هایی که توسط گیرنده فرمان سفارشی به فرستنده بازگردانده می شود. |
nl:: Weave:: پروفایل ها:: DataManagement_Current:: CommandSender:: OutEventParam | داده ها از یک تابع EventCallback به یک شی CommandSender بازگردانده می شوند. |
nl:: بافت:: پروفایل ها:: DataManagement_Current:: CommandSender:: SendParams | آرگومان هایی را کپسوله می کند تا به SendCommand() منتقل شوند. |
nl:: بافت:: پروفایل ها:: DataManagement_Current:: CommandSender:: SynchronizedTraitState |
انواع عمومی
رویداد Callback
void(* EventCallback)(void *const aAppState, EventType aEvent, const InEventParam &aInParam, OutEventParam &aOutEventParam)
نوع رویداد
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 )
جز در مواردی که غیر از این ذکر شده باشد، محتوای این صفحه تحت مجوز Creative Commons Attribution 4.0 License است و نمونه کدها نیز دارای مجوز Apache 2.0 License است. برای اطلاع از جزئیات، به خطمشیهای سایت Google Developers مراجعه کنید. جاوا علامت تجاری ثبتشده Oracle و/یا شرکتهای وابسته به آن است. Thread علامت تجاری ثبتشده Thread Group, Inc است.
تاریخ آخرین بهروزرسانی 2020-08-28 بهوقت ساعت هماهنگ جهانی.