nl:: بافت:: پروفایل ها:: DataManagement_Current:: اشتراک مشتری
خلاصه
انواع عمومی | |
---|---|
@130 | شمارش |
EventCallback )(void *const aAppState, EventID aEvent, const InEventParam &aInParam, OutEventParam &aOutParam) | typedefvoid(* پاسخ به تماس برای انتقال رویدادهای اشتراک به برنامه. |
EventID { | شمارش |
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:: Weave:: پروفایل ها:: DataManagement_Current:: SubscriptionClient:: ResubscribeParam |
اتحادیه ها | |
---|---|
nl:: بافت:: پروفایل ها:: 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 | زمانی که موتور برای ارسال Subscribe Request آماده شد، ارسال شد. انتظار می رود برنامه مسیرهایی را که می خواهد در آنها مشترک شود پر کند. | ||||||||||||
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 )
جز در مواردی که غیر از این ذکر شده باشد، محتوای این صفحه تحت مجوز Creative Commons Attribution 4.0 License است و نمونه کدها نیز دارای مجوز Apache 2.0 License است. برای اطلاع از جزئیات، به خطمشیهای سایت Google Developers مراجعه کنید. جاوا علامت تجاری ثبتشده Oracle و/یا شرکتهای وابسته به آن است. Thread علامت تجاری ثبتشده Thread Group, Inc است.
تاریخ آخرین بهروزرسانی 2022-08-30 بهوقت ساعت هماهنگ جهانی.