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 | enum |
صفات عمومی | |
---|---|
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:: بافت:: پروفایل ها:: 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 )
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates. The OPENTHREAD and related marks are trademarks of the Thread Group and are used under license.
تاریخ آخرین بهروزرسانی 2024-11-09 بهوقت ساعت هماهنگ جهانی.