nl:: Weave:: الملفات الشخصية:: DataManagement_Current:: SubscriptionsClient
الملخّص
الأنواع المتاحة للجميع |
|
---|---|
@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
حرّر هذا العنصر SubscriptionsClient.
|
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
ضبط اشتراكClient كبادئ (بدلاً من المشترك المضاد) وإظهار الاشتراك إذا لم يكن كذلك.
|
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:: |
|
nl:: |
الاتحادات |
|
---|---|
nl:: |
|
nl:: |
الأنواع المتاحة للجميع
@130
@130
معاودة الاتصال بالحدث
void(* EventCallback)(void *const aAppState, EventID aEvent, const InEventParam &aInParam, OutEventParam &aOutParam)
معاودة الاتصال بتمرير أحداث الاشتراك إلى التطبيق.
التفاصيل | |||||||||
---|---|---|---|---|---|---|---|---|---|
المعلَمات |
|
رقم تعريف الحدث
EventID
أماكن إقامة | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
kEvent_OnEventStreamReceived
|
يتم إنشاؤه عندما يدرج SUBSCRIPTIONEngine ساحة مشاركات للأحداث ضمن رسالة MessageRequest. قد يطلب التطبيق EndSubscriptions() أو AbortSubscriptions() أو Free() في هذه المرحلة. |
||||||||||||
kEvent_OnExchangeStart
|
يتم إنشاؤه بعد إعداد الربط وإعداد ExchangeContext ولكن قبل أي رسائل مُرسَلة. هذه هي الفرصة الأخيرة لتطبيق ضبط إعدادات ExchangeContext، وتكون |
||||||||||||
kEvent_OnNoMorePendingUpdates
|
حدث يشير إلى أن جميع المسارات في مجموعة التعديلات قد تمت معالجتها بواسطة النظير، وليست هناك حاجة إلى تحديث المزيد من المسارات. |
||||||||||||
kEvent_OnNotificationProcessed
|
يتم إنشاؤه عندما ينهي SUBSCRIPTIONEngine متابعة رسالة MessageRequest. قد يطلب التطبيق EndSubscriptions() أو AbortSubscriptions() أو Free() في هذه المرحلة. |
||||||||||||
kEvent_OnNotificationRequest
|
يتم إنشاؤها في إشعار طلب طلب. قد يطلب التطبيق EndSubscriptions() أو AbortSubscriptions() أو Free() في هذه المرحلة. |
||||||||||||
kEvent_OnSubscribeRequestPrepareNeeded
|
يتم إرساله عندما يكون المحرك جاهزًا لإرسال SubscriptionRequest. من المتوقع أن يملأ الطلب المسارات التي يريد الاشتراك فيها. |
||||||||||||
kEvent_OnSubscriptionActivity
|
حدث يشير إلى نشاط الاشتراك. يتم إنشاؤه كلما تلقى العميل مؤشرًا على نشاط الاشتراك؛ ويشمل ذلك إنشاء اشتراك ناجح أو استقبال إشعار طلب أو إيصال لتقرير الحالة استجابةً لرسالة اشتراك التأكيد. |
||||||||||||
kEvent_OnSubscriptionEstablished
|
يتم إنشاؤه عند إجراء اشتراك بنجاح. قد يطلب التطبيق EndSubscriptions() أو AbortSubscriptions() أو Free() في هذه المرحلة. |
||||||||||||
kEvent_OnSubscriptionTerminated
|
وضع علامة على نهاية هذا الاشتراك. ستشير المعلمات التي يتم إرسالها إلى nl::Weave::Profiles::DataManagement_Current::SUBSCRIPTIONClient::EventCallback إلى ما إذا كانت ستتم إعادة الاشتراك تلقائيًا. أثناء استدعاء معالج الأحداث، ستكون حالة العميل قد يطلب التطبيق AbortSubscriptions() أو Free() في هذه الحالة. ستتضمّن المعلّمات المرسلة أيضًا رمز خطأ يشير إلى سبب إنهاء الاشتراك. ربما تم إنهاء الاشتراك لعدد من الأسباب (تعذّر WRM ACK، وتعذّر تخصيص ExchangeContext، ومهلة الاستجابة،...) بعض رموز الأخطاء المحتملة التي ينشئها البرنامج:
|
||||||||||||
kEvent_OnUpdateComplete
|
حدث يشير إلى اكتمال التحديث. وستشير معلّمات الأحداث إلى ما إذا كان تعديل مسار سمة معيّن قد تم بنجاح أو تعذّر تعديله. |
إعادة الاشتراك في سياسة الاتصال
void(* ResubscribePolicyCallback)(void *const aAppState, ResubscribeParam &aInParam, uint32_t &aOutIntervalMsec)
يمكنك معاودة الاتصال لجلب الفاصل الزمني للانتظار قبل إعادة الاشتراك التالية.
يُسمَح باستخدام التطبيقات بإلغاء العملية أو إلغاء صلاحيتها في هذه الوظيفة إذا قررت التوقّف عن إعادة الاشتراك.
التفاصيل | |||||||
---|---|---|---|---|---|---|---|
المعلَمات |
|
الدوال الثابتة العامة
مؤشر الحدث التلقائي
void DefaultEventHandler( EventID aEvent, const InEventParam & aInParam, OutEventParam & aOutParam )
DefaultResubscribePolicyCallcall
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
. يحدث كلا الانتقالين بشكل متزامن في الطلب إلى AbortSubscriptions().
بعد رجوع AbortSUBSCRIPTION()، قد يتم استخدام الكائن SubscriptionClient
لبدء اشتراك آخر، أو يمكن تحريره باستدعاء الطريقة Free().
معلومات محدَّثة
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، يمكنك إنهاء الاشتراك بشكلٍ سلس من خلال إرسال إلغاء طلب إلى نظير. يتم تحرير الموارد المرتبطة بالاشتراك استجابةً من الأقران أو عند انتهاء المهلة. عند إيقاف الخيار، تكون المكالمة تساوي AbortSubscriptions().
يتم إنهاء نهاية الاشتراك بشكلٍ سلس للعميل. إذا تم تفعيل دعم إلغاء الاشتراك، يتم إرسال رسالة Createإلغاء الاشتراك إلى ناشر الاشتراك وينتظر النظام ردًا قبل إنهاء الاشتراك، وإلا سيتم إنهاء الاشتراك على الفور بالطريقة نفسها التي تم إيقافها بها AbortSubscriptions(). وفي حال توفّر اشتراك مشترك، يتم إنهاء الاشتراك المضاد أيضًا.
أثناء انتظار الرد على طلب إلغاء الاشتراك، يدخل SubscriptionClient
في حالة Canceling
.
بعد بدء عملية الإنهاء، يدخل الكائن SubscriptionClient
في حالة Terminated
ويتم تسليم حدث OnSubscriptionTerminated
إلى معالج أحداث التطبيق. لاحظ أنه إذا لم يتم تفعيل دعم الإلغاء، قد يتم استدعاء معالج الحدث بشكلٍ متزامن ضمن الاستدعاء إلى EndSubscriptions().
بعد إرجاع معالج أحداث التطبيق، يدخل الكائن SubscriptionClient
في حالة Initialized
. عند هذه النقطة، يمكن استخدام الكائن SubscriptionClient
لبدء اشتراك آخر، أو يمكن تحريره عن طريق استدعاء الطريقة Free().
تعديل Flush
WEAVE_ERROR FlushUpdate()
إشارات تدل على انتهاء التطبيق في تحويل جميع معاملات TraitUpdatableDataSinks.
ما لم يكن هناك عملية تحديث سابقة جارية، سيأخذ العميل جميع البيانات التي تم وضع علامة عليها كتحديث ويرسلها إلى المستجيب في طلب تحديث واحد. ويمكن استدعاء هذه الطريقة من أي سلسلة محادثات.
التفاصيل | |||
---|---|---|---|
المعلَمات |
|
||
المرتجعات |
WEAVE_NO_ERROR في حالة النجاح؛ ورموز WEAVE_ERROR الأخرى في حالة الإخفاق.
|
تعديل Flush
WEAVE_ERROR FlushUpdate( bool aForce )
مجاني
void Free( void )
حرّر هذا العنصر SubscriptionsClient.
تحرير كائن SubscriptionClient
يستدعي AbortSubscriptions() إذا لزم الأمر ويؤدي إلى إعادة العدّ على عنصر subscriptionClient هذا. عند الاستخدام السليم، يجب أن يفعِّل هذا الإجراء الكائن ليتم إرجاعه إلى مجموعة الكائنات.
لتحرير الكائن SubscriptionClient
. إذا كان الاشتراك مفعّلاً أو قيد التقدم، يتم إنهاء الاشتراك على الفور بطريقة مشابهة لطلب AbortSubscriptions(). وفي حال كان هناك طلبات تعديل قيد التقدّم، سيتم إلغاء الاشتراك بالمثل.
يكون التطبيق مسؤولاً عن استدعاء Free() مرة واحدة تحديدًا خلال فترة بقاء كائن SubscriptionClient
. بعد استدعاء Free()، لن تتم إضافة أي مراجع أخرى إلى الكائن.
الحصول على تجميع البيانات
Binding * GetBinding( void ) const
الحصول على مهلة
uint32_t GetLivenessTimeoutMsec( void ) const
GetPeerNodeId
uint64_t GetPeerNodeId( void ) const
رقم تعريف الاشتراك
WEAVE_ERROR GetSubscriptionId( uint64_t *const apSubscriptionId )
الإشارة إلى النشاط
void IndicateActivity( void )
بدء الاشتراك في الإشعار المضاد
void InitiateCounterSubscription( const uint32_t aLivenessTimeoutSec )
بدء الاشتراك
void InitiateSubscription( void )
ضبط اشتراكClient كبادئ (بدلاً من المشترك المضاد) وإظهار الاشتراك إذا لم يكن كذلك.
جارٍ الإلغاء
bool IsCanceling() const
حالي
bool IsEstablished()
مُحدَّد
bool IsEstablishedIdle()
مجّاني
bool IsFree()
تم تنفيذه أو تم تنفيذه
bool IsInProgressOrEstablished()
IsInResubscribeHoff
bool IsInResubscribeHoldoff()
isRestartEnabled
bool IsRetryEnabled()
تم إنهاؤه
bool IsTerminated()
هو حاليًا في انتظار المراجعة أو قيد التقدّم
bool IsUpdatePendingOrInProgress()
قفل تحديثات TalkBack
void LockUpdateMutex( void )
إعادة الاشتراك
void ResetResubscribe( void )
إيقاف آلية إعادة الاشتراك
سيؤدي هذا إلى بدء إعادة المحاولة الفورية
ضبط مدة LiveMsec
void SetLivenessTimeoutMsec( uint32_t val )
تم التحديث
WEAVE_ERROR SetUpdated( TraitUpdatableDataSink *aDataSink, PropertyPathHandle aPropertyHandle, bool aIsConditional )
تعليق عمليات إعادة المحاولة
void SuspendUpdateRetries()
يعمل ذلك على إبلاغ SUBSCRIPTIONClient بالتوقف عن إعادة محاولة طلبات التحديث.
للسماح للتطبيق بتعليق التحديثات لفترة زمنية بدون تجاهل جميع البيانات الوصفية. وسيتم استئناف التحديثات وعمليات إعادة المحاولة عند استدعاء FlushUpdate. عند طلب تعليق تحديثات أثناء البث، لا يتم إلغاء التحديث، ولكن في حالة إخفاقه، لن تتم إعادة المحاولة حتى يتم استدعاء FlushUpdate مرة أخرى.
إلغاء تحديث UpdateUpdatex
void UnlockUpdateMutex( void )