nl:: بافت:: پروفایل ها:: DataManagement_Current:: اشتراک مشتری
خلاصه
انواع عمومی | |
---|---|
@130 | enum |
EventCallback )(void *const aAppState, EventID aEvent, const InEventParam &aInParam, OutEventParam &aOutParam) | typedefvoid(* پاسخ به تماس برای انتقال رویدادهای اشتراک به برنامه. |
EventID { | enum |
ResubscribePolicyCallback )(void *const aAppState, ResubscribeParam &aInParam, uint32_t &aOutIntervalMsec) | typedefvoid(* پاسخ به تماس برای واکشی فاصله زمانی برای انتظار قبل از اشتراک مجدد بعدی. |
توابع استاتیک عمومی | |
---|---|
DefaultEventHandler ( EventID aEvent, const InEventParam & aInParam, OutEventParam & aOutParam) | void |
DefaultResubscribePolicyCallback (void *const aAppState, ResubscribeParam & aInParam, uint32_t & aOutIntervalMsec) | void اجرای خطمشی پیشفرض، یک بارگاه تصادفی با وضوح میلیثانیه در پنجرهای رو به افزایش، به دنبال دنباله فیبوناچی تا WDM_RESUBSCRIBE_MAX_FIBONACCI_STEP_INDEX انتخاب میکند. |
توابع عمومی | |
---|---|
AbortSubscription (void) | void اشتراک را لغو کنید. |
ClearUpdated ( TraitUpdatableDataSink *aDataSink, PropertyPathHandle aPropertyHandle) | |
DisableResubscribe (void) | void مکانیسم اشتراک مجدد را غیرفعال کنید. |
DiscardUpdates () | void به SubscriptionClient میگوید که مجموعه TraitPathهای در انتظار بهروزرسانی را خالی کند و درخواست بهروزرسانی را که در حال انجام است، در صورت وجود لغو کند. |
EnableResubscribe ( ResubscribePolicyCallback aCallback) | void اشتراک مجدد خودکار را فعال کنید. |
EndSubscription (void) | پایان اشتراک |
FlushUpdate () | نشان می دهد که برنامه جهش تمام TraitUpdatableDataSinks را به پایان رسانده است. |
FlushUpdate (bool aForce) | |
Free (void) | void این شیء SubscriptionClient را آزاد کنید. |
GetBinding (void) const | Binding * |
GetLivenessTimeoutMsec (void) const | uint32_t |
GetPeerNodeId (void) const | uint64_t |
GetSubscriptionId (uint64_t *const apSubscriptionId) | |
IndicateActivity (void) | void |
InitiateCounterSubscription (const uint32_t aLivenessTimeoutSec) | void |
InitiateSubscription (void) | void SubscriptionClient را به عنوان آغازگر پیکربندی کنید (در مقابل یک ضد مشترک) و در صورت عدم وجود اشتراک، اشتراک را بالا ببرید. |
IsCanceling () const | bool |
IsEstablished () | bool |
IsEstablishedIdle () | bool |
IsFree () | bool |
IsInProgressOrEstablished () | bool |
IsInResubscribeHoldoff () | bool |
IsRetryEnabled () | bool |
IsTerminated () | bool |
IsUpdatePendingOrInProgress () | bool |
LockUpdateMutex (void) | void |
OnCatalogChanged () | void این روش باید زمانی فراخوانی شود که کاتالوگ TraitDataSink اصلاح شده باشد. |
ResetResubscribe (void) | void به مکانیسم اشتراک مجدد ضربه بزنید. |
SetLivenessTimeoutMsec (uint32_t val) | void |
SetUpdated ( TraitUpdatableDataSink *aDataSink, PropertyPathHandle aPropertyHandle, bool aIsConditional) | |
SuspendUpdateRetries () | void به SubscriptionClient میگوید تلاش مجدد درخواستهای بهروزرسانی را متوقف کند. |
UnlockUpdateMutex (void) | void |
سازه ها | |
---|---|
nl:: Weave:: پروفایل ها:: DataManagement_Current:: SubscriptionClient:: LastObservedEvent | |
nl:: بافت:: پروفایل ها:: DataManagement_Current:: SubscriptionClient:: ResubscribeParam |
اتحادیه ها | |
---|---|
nl:: Weave:: پروفایل ها:: DataManagement_Current:: SubscriptionClient:: InEventParam | |
nl:: بافت:: پروفایل ها:: DataManagement_Current:: SubscriptionClient:: OutEventParam |
انواع عمومی
@130
@130
رویداد Callback
void(* EventCallback)(void *const aAppState, EventID aEvent, const InEventParam &aInParam, OutEventParam &aOutParam)
پاسخ به تماس برای انتقال رویدادهای اشتراک به برنامه.
جزئیات | |||||||||
---|---|---|---|---|---|---|---|---|---|
پارامترها |
|
شناسه رویداد
EventID
خواص | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
kEvent_OnEventStreamReceived | زمانی ایجاد می شود که SubscriptionEngine با یک جریان رویداد در پیام NotificationRequest مواجه شود. برنامه ممکن است EndSubscription() , AbortSubscription() یا Free() را در این مرحله فراخوانی کند. | ||||||||||||
kEvent_OnExchangeStart | پس از آماده شدن صحافی و راه اندازی ExchangeContext اما قبل از ارسال هر پیامی ایجاد می شود. این آخرین فرصت برای یک برنامه برای تنظیم تنظیمات ExchangeContext است، | ||||||||||||
kEvent_OnNoMorePendingUpdates | رویدادی که نشان میدهد تمام مسیرهای مجموعه بهروزرسانی توسط همتا پردازش شده است و هیچ مسیر دیگری نیازی به بهروزرسانی ندارد. | ||||||||||||
kEvent_OnNotificationProcessed | زمانی ایجاد می شود که SubscriptionEngine انجام پیام NotificationRequest را به پایان برساند. برنامه ممکن است EndSubscription() , AbortSubscription() یا Free() را در این مرحله فراخوانی کند. | ||||||||||||
kEvent_OnNotificationRequest | بر اساس دریافت درخواست Notification Request ایجاد شد. برنامه ممکن است EndSubscription() , AbortSubscription() یا Free() را در این مرحله فراخوانی کند. | ||||||||||||
kEvent_OnSubscribeRequestPrepareNeeded | زمانی که موتور برای ارسال SubscribeRequest آماده شد، ارسال شد. انتظار می رود برنامه مسیرهایی را که می خواهد در آنها مشترک شود پر کند. | ||||||||||||
kEvent_OnSubscriptionActivity | رویدادی که فعالیت اشتراک را نشان می دهد. هر زمان که مشتری نشانه ای در مورد فعالیت اشتراک دریافت کند، ایجاد می شود. این شامل ایجاد موفقیت آمیز اشتراک، دریافت یک درخواست اطلاع رسانی یا دریافت گزارش وضعیت در پاسخ به پیام SubscribeConfirm است. | ||||||||||||
kEvent_OnSubscriptionEstablished | پس از ایجاد موفقیت آمیز اشتراک ایجاد شد. برنامه ممکن است EndSubscription() , AbortSubscription() یا Free() را در این مرحله فراخوانی کند. | ||||||||||||
kEvent_OnSubscriptionTerminated | پایان این اشتراک را نشان می دهد. پارامترهای ارسال شده به nl::Weave::Profiles::DataManagement_Current::SubscriptionClient::EventCallback نشان می دهد که آیا اشتراک مجدد به صورت خودکار انجام می شود یا خیر. در طول تماس کنترل کننده رویداد، وضعیت مشتری برنامه ممکن است در این حالت AbortSubscription() یا Free() را فراخوانی کند. پارامترهای ارسال شده شامل یک کد خطا نیز می شود که دلیل پایان اشتراک را نشان می دهد. اشتراک ممکن است به دلایلی خاتمه یافته باشد (WRM ACK وجود ندارد، عدم تخصیص ExchangeContext ، مهلت زمانی پاسخ،...) برخی از کدهای خطای احتمالی ایجاد شده توسط مشتری:
| ||||||||||||
kEvent_OnUpdateComplete | رویدادی که نشاندهنده تکمیل بهروزرسانی است. پارامترهای رویداد نشان می دهد که آیا به روز رسانی یک مسیر مشخصه با موفقیت یا شکست مواجه شده است. |
ResubscribePolicyCallback
void(* ResubscribePolicyCallback)(void *const aAppState, ResubscribeParam &aInParam, uint32_t &aOutIntervalMsec)
پاسخ به تماس برای واکشی فاصله زمانی برای انتظار قبل از اشتراک مجدد بعدی.
اگر برنامهها تصمیم به انصراف از اشتراک مجدد داشته باشند، مجاز به لغو/رایگان شدن در این عملکرد هستند.
جزئیات | |||||||
---|---|---|---|---|---|---|---|
پارامترها |
|
توابع استاتیک عمومی
DefaultEventHandler
void DefaultEventHandler( EventID aEvent, const InEventParam & aInParam, OutEventParam & aOutParam )
DefaultResubscribePolicyCallback
void DefaultResubscribePolicyCallback( void *const aAppState, ResubscribeParam & aInParam, uint32_t & aOutIntervalMsec )
اجرای خطمشی پیشفرض، یک بارگاه تصادفی با وضوح میلیثانیه در پنجرهای رو به افزایش، به دنبال دنباله فیبوناچی تا WDM_RESUBSCRIBE_MAX_FIBONACCI_STEP_INDEX انتخاب میکند.
میانگین زمان انتظار تصادفی پس از WDM_RESUBSCRIBE_MAX_FIBONACCI_STEP_INDEX حدود یک ساعت خواهد بود. هنگامی که تعداد تلاش مجدد به 0 بازنشانی می شود، توالی دوباره از ابتدا شروع می شود.
توابع عمومی
لغو اشتراک
void AbortSubscription( void )
اشتراک را لغو کنید.
لغو اشتراک مشتری
فوراً پذیرش تمام ترافیک مرتبط با اشتراک را متوقف کنید و همه منابع ارتباطی زیربنایی را آزاد کنید. خود شیء SubscriptionClient معتبر باقی می ماند و ممکن است دوباره استفاده شود.
پایان مشتری یک اشتراک را بدون اطلاع ناشر اشتراک و بدون ارائه رویداد OnSubscriptionTerminated
به کنترل کننده رویداد برنامه خاتمه می دهد. در صورت وجود اشتراک متقابل، اشتراک پیشخوان نیز خاتمه می یابد.
با فراخوانی AbortSubscription() ، شیء SubscriptionClient
وارد حالت Terminated
می شود. پس از اتمام فرآیند پایان، شی وارد حالت Initialized
می شود. هر دو انتقال به طور همزمان در فراخوانی AbortSubscription() اتفاق میافتند.
پس از بازگشت AbortSubscription() ، شیء SubscriptionClient
ممکن است برای شروع اشتراک دیگری استفاده شود، یا ممکن است با فراخوانی متد Free() آزاد شود.
ClearUpdated
WEAVE_ERROR ClearUpdated( TraitUpdatableDataSink *aDataSink, PropertyPathHandle aPropertyHandle )
غیرفعال کردن اشتراک مجدد
void DisableResubscribe( void )
مکانیسم اشتراک مجدد را غیرفعال کنید.
اگر در انتظار اشتراک مجدد بود، این کار لغو میشود.
حذف به روز رسانی ها
void DiscardUpdates()
به SubscriptionClient میگوید که مجموعه TraitPathهای در انتظار بهروزرسانی را خالی کند و درخواست بهروزرسانی را که در حال انجام است، در صورت وجود لغو کند.
این روش را می توان از هر تماس برگشتی فراخوانی کرد.
اشتراک مجدد را فعال کنید
void EnableResubscribe( ResubscribePolicyCallback aCallback )
اشتراک مجدد خودکار را فعال کنید.
برای مشخص کردن زمان تلاش مجدد بعدی در صورت شکست، یک تماس برگشتی ضمیمه کنید.
جزئیات | |||
---|---|---|---|
پارامترها |
|
پایان اشتراک
WEAVE_ERROR EndSubscription( void )
پایان اشتراک
اشتراک مشتری را با آرامش تمام کنید.
هنگامی که گزینه WDM_ENABLE_SUBSCRIPTION_CANCEL زمان کامپایل فعال است، با ارسال درخواست لغو به همتا، اشتراک را به خوبی پایان دهید. منابع مرتبط با اشتراک در پاسخ از طرف همتا یا در زمان پایان آزاد می شوند. وقتی این گزینه غیرفعال است، تماس معادل AbortSubscription() است.
بهراحتی پایان مشتری یک اشتراک را خاتمه میدهد. اگر پشتیبانی لغو اشتراک فعال باشد، یک پیام SubscribeCancelRequest به ناشر اشتراک ارسال می شود و سیستم قبل از پایان اشتراک منتظر پاسخ است. در غیر این صورت اشتراک فوراً به روشی مشابه AbortSubscription() خاتمه می یابد. در صورت وجود اشتراک متقابل، اشتراک پیشخوان نیز خاتمه می یابد.
در حالی که منتظر پاسخ به SubscribeCancelRequest هستید، SubscriptionClient
وارد حالت Canceling
می شود.
هنگامی که فرآیند خاتمه شروع می شود، شی SubscriptionClient
وارد حالت Terminated
می شود و یک رویداد OnSubscriptionTerminated
به کنترل کننده رویداد برنامه تحویل داده می شود. توجه داشته باشید که اگر پشتیبانی لغو فعال نباشد ، ممکن است کنترل کننده رویداد به طور همزمان در فراخوانی EndSubscription() فراخوانی شود.
پس از بازگشت کنترل کننده رویداد برنامه، شی SubscriptionClient
وارد حالت Initialized
می شود. در این مرحله ممکن است از شی SubscriptionClient
برای شروع اشتراک دیگری استفاده شود، یا ممکن است با فراخوانی متد Free() آزاد شود.
FlushUpdate
WEAVE_ERROR FlushUpdate()
نشان می دهد که برنامه جهش تمام TraitUpdatableDataSinks را به پایان رسانده است.
مگر اینکه مبادله بهروزرسانی قبلی در حال انجام باشد، مشتری تمام دادههایی را که بهعنوان بهروزرسانی علامتگذاری شدهاند، میگیرد و در یک درخواست بهروزرسانی برای پاسخدهنده ارسال میکند. این روش را می توان از هر رشته ای فراخوانی کرد.
جزئیات | |||
---|---|---|---|
پارامترها |
| ||
برمی گرداند | WEAVE_NO_ERROR در صورت موفقیت؛ سایر کدهای WEAVE_ERROR در صورت خرابی. |
FlushUpdate
WEAVE_ERROR FlushUpdate( bool aForce )
رایگان
void Free( void )
این شیء SubscriptionClient را آزاد کنید.
یک شیء SubscriptionClient
را آزاد کنید.
در صورت لزوم AbortSubscription() را فراخوانی می کند و refcount را در این شیء SubscriptionClient آزاد می کند. در صورت استفاده صحیح، این باید امکان برگرداندن شی را به مخزن آبجکت فراهم کند
شی SubscriptionClient
را آزاد می کند. اگر اشتراکی فعال یا در حال انجام باشد، اشتراک فوراً به روشی مشابه فراخوانی AbortSubscription() خاتمه می یابد. اگر هر گونه درخواست به روز رسانی در حال انجام باشد، به طور مشابه لغو می شود.
این برنامه مسئول فراخوانی Free() دقیقاً یک بار در طول عمر یک شیء SubscriptionClient
است. پس از فراخوانی ()Free ، هیچ ارجاع دیگری به شی نباید داده شود.
GetBinding
Binding * GetBinding( void ) const
GetLivenessTimeoutMsec
uint32_t GetLivenessTimeoutMsec( void ) const
GetPeerNodeId
uint64_t GetPeerNodeId( void ) const
GetSubscriptionId
WEAVE_ERROR GetSubscriptionId( uint64_t *const apSubscriptionId )
IndicateActivity
void IndicateActivity( void )
InitiateCounterSubscription
void InitiateCounterSubscription( const uint32_t aLivenessTimeoutSec )
شروع اشتراک
void InitiateSubscription( void )
SubscriptionClient را به عنوان آغازگر پیکربندی کنید (در مقابل یک ضد مشترک) و در صورت عدم وجود اشتراک، اشتراک را بالا ببرید.
در حال لغو است
bool IsCanceling() const
تاسیس شده است
bool IsEstablished()
IsEstablishedIdle
bool IsEstablishedIdle()
رایگان است
bool IsFree()
IsInProgressOrEstablished
bool IsInProgressOrEstablished()
IsInResubscribeHoldoff
bool IsInResubscribeHoldoff()
IsRetryEnabled
bool IsRetryEnabled()
خاتمه یافته است
bool IsTerminated()
IsUpdatePendingOrInProgress
bool IsUpdatePendingOrInProgress()
LockUpdateMutex
void LockUpdateMutex( void )
OnCatalogChanged
void OnCatalogChanged()
این روش باید زمانی فراخوانی شود که کاتالوگ TraitDataSink اصلاح شده باشد.
ResetResubscribe
void ResetResubscribe( void )
به مکانیسم اشتراک مجدد ضربه بزنید.
این یک امتحان مجدد فوری را آغاز می کند
SetLivenessTimeoutMsec
void SetLivenessTimeoutMsec( uint32_t val )
SetUpdated
WEAVE_ERROR SetUpdated( TraitUpdatableDataSink *aDataSink, PropertyPathHandle aPropertyHandle, bool aIsConditional )
SuspendUpdateRetries
void SuspendUpdateRetries()
به SubscriptionClient میگوید تلاش مجدد درخواستهای بهروزرسانی را متوقف کند.
به برنامه اجازه میدهد تا بهروزرسانیها را برای مدتی بدون حذف همه ابردادهها متوقف کند. با فراخوانی FlushUpdate، بهروزرسانیها و تلاشهای مجدد از سر گرفته میشوند. هنگامی که برای تعلیق بهروزرسانیها در حین پرواز فراخوانی میشود، بهروزرسانی لغو نمیشود، اما در صورت عدم موفقیت، تا زمانی که FlushUpdate دوباره فراخوانی نشود، دوباره امتحان نمیشود.
UnlockUpdateMutex را باز کنید
void UnlockUpdateMutex( void )
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-08-29 بهوقت ساعت هماهنگ جهانی.