nl:: Weave:: Profiles:: DataManagement_Current:: SubscriptionClient
खास जानकारी
सार्वजनिक प्रकार |
|
---|---|
@130
|
enum |
EventCallback)(void *const aAppState, EventID aEvent, const InEventParam &aInParam, OutEventParam &aOutParam)
|
टाइपडिफ़void(*
सदस्यता के इवेंट को ऐप्लिकेशन में पास करने के लिए कॉलबैक करें. |
EventID{
|
enum |
ResubscribePolicyCallback)(void *const aAppState, ResubscribeParam &aInParam, uint32_t &aOutIntervalMsec)
|
टाइपडिफ़void(*
अगली बार फिर से सदस्यता लेने से पहले इंतज़ार के समय का डेटा फ़ेच करने के लिए कॉलबैक करें. |
सार्वजनिक स्टैटिक फ़ंक्शन |
|
---|---|
DefaultEventHandler(EventID aEvent, const InEventParam & aInParam, OutEventParam & aOutParam)
|
void
|
DefaultResubscribePolicyCallback(void *const aAppState, ResubscribeParam & aInParam, uint32_t & aOutIntervalMsec)
|
void
नीति के लागू होने के बाद, समय के साथ-साथ बढ़ने वाली विंडो पर मिलीसेकंड के रिज़ॉल्यूशन वाला कोई भी टाइम स्लॉट चुन लिया जाएगा. इसके लिए, WDM_RE Subscribe_MAX_FIBONACCI_STEP_INDEX तक का फ़ाइबोनैकी क्रम लागू हो जाएगा.
|
सार्वजनिक फ़ंक्शन |
|
---|---|
AbortSubscription(void)
|
void
सदस्यता रद्द करें.
|
ClearUpdated(TraitUpdatableDataSink *aDataSink, PropertyPathHandle aPropertyHandle)
|
|
DisableResubscribe(void)
|
void
फिर से सदस्यता लेने की सुविधा बंद करें.
|
DiscardUpdates()
|
void
यह SubscriptionClient को, TraitPaths के उस सेट को खाली करने के लिए कहता है जिसे अपडेट नहीं किया जाना है. साथ ही, अगर अपडेट का अनुरोध किया जा रहा है, तो उसे रद्द कर देना चाहिए.
|
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:: |
|
nl:: |
यूनियन |
|
---|---|
nl:: |
|
nl:: |
सार्वजनिक प्रकार
@130
@130
EventCallback
void(* EventCallback)(void *const aAppState, EventID aEvent, const InEventParam &aInParam, OutEventParam &aOutParam)
सदस्यता के इवेंट को ऐप्लिकेशन में पास करने के लिए कॉलबैक करें.
ब्यौरा | |||||||||
---|---|---|---|---|---|---|---|---|---|
पैरामीटर |
|
EventID
EventID
प्रॉपर्टी | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
kEvent_OnEventStreamReceived
|
यह तब जनरेट होता है, जब SubscriptionEngine जाती है, जो NotificationRequest मैसेज में किसी इवेंट स्ट्रीम को शामिल करती है. ऐप्लिकेशन इस समय EndSubscription(), AbortSubscription() या Free() को कॉल कर सकता है. |
||||||||||||
kEvent_OnExchangeStart
|
बाइंडिंग को तैयार करने और ExchangeContext सेट अप किए जाने के बाद जनरेट किया गया, लेकिन कोई भी मैसेज भेजे जाने से पहले. यह किसी ऐप्लिकेशन के लिए ExchangeContext सेटिंग एडजस्ट करने का आखिरी मौका है, |
||||||||||||
kEvent_OnNoMorePendingUpdates
|
एक इवेंट जिससे पता चलता है कि मिलते-जुलते ऐप्लिकेशन ने अपडेट सेट के सभी पाथ प्रोसेस कर दिए हैं. इसके अलावा, किसी दूसरे पाथ को अपडेट करने की ज़रूरत नहीं है. |
||||||||||||
kEvent_OnNotificationProcessed
|
यह तब जनरेट होता है, जब SubscriptionEngine से एक NotificationRequest मैसेज को प्रोसेस कर लिया होता है. ऐप्लिकेशन इस समय EndSubscription(), AbortSubscription() या Free() को कॉल कर सकता है. |
||||||||||||
kEvent_OnNotificationRequest
|
NotificationRequest मिलने पर जनरेट हुआ. ऐप्लिकेशन इस समय EndSubscription(), AbortSubscription() या Free() को कॉल कर सकता है. |
||||||||||||
kEvent_OnSubscribeRequestPrepareNeeded
|
यह सूचना तब भेजी जाती है, जब इंजन SubscribeRequest भेजने के लिए तैयार हो जाता है. ऐप्लिकेशन से उन पाथ को भरने की उम्मीद की जाती है जिनकी वह सदस्यता लेना चाहता है. |
||||||||||||
kEvent_OnSubscriptionActivity
|
सदस्यता से जुड़ी गतिविधि दिखाने वाला इवेंट. यह तब जनरेट होता है, जब क्लाइंट को सदस्यता से जुड़ी गतिविधि के बारे में कोई संकेत मिलता है; जैसे, सदस्यता चालू होना, NotificationRequest मिलना या Subscribe की पुष्टि करने वाले मैसेज के जवाब में स्टेटस रिपोर्ट की रसीद. |
||||||||||||
kEvent_OnSubscriptionEstablished
|
सदस्यता शुरू होने के बाद जनरेट हुआ. ऐप्लिकेशन इस समय EndSubscription(), AbortSubscription() या Free() को कॉल कर सकता है. |
||||||||||||
kEvent_OnSubscriptionTerminated
|
यह सदस्यता खत्म होने की सूचना देता है. nl::Weave::Profiles::DataManagement_Current::SubscriptionClient::EventCallback पर भेजे गए पैरामीटर से पता चलेगा कि फिर से सदस्यता लेने की कोशिश अपने-आप होगी या नहीं. इवेंट हैंडलर कॉल के दौरान, क्लाइंट की स्थिति ऐप्लिकेशन इस स्थिति में AbortSubscription() या Free() को कॉल कर सकता है. भेजे गए पैरामीटर में, गड़बड़ी का एक कोड भी शामिल होगा, जिसमें सदस्यता खत्म होने की वजह बताई गई होगी. सदस्यता कई वजहों से खत्म हो सकती है. जैसे, WRM ACK उपलब्ध नहीं है, ExchangeContext बजट असाइन नहीं हो पाया, रिस्पॉन्स टाइम आउट हो गया,...) कुछ गड़बड़ी कोड, जिन्हें क्लाइंट जनरेट करता है:
|
||||||||||||
kEvent_OnUpdateComplete
|
अपडेट पूरा होने की जानकारी देने वाला इवेंट. इवेंट पैरामीटर से पता चलेगा कि किसी खास Trait पाथ को अपडेट किया गया या अपडेट नहीं हुआ. |
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_RE Subscribe_MAX_FIBONACCI_STEP_INDEX तक का फ़ाइबोनैकी क्रम लागू हो जाएगा.
WDM_REsubscribe_MAX_FIBONACCI_STEP_INDEX के बाद किसी भी क्रम में लगने वाला इंतज़ार का औसत समय, करीब एक घंटा होगा. जब फिर से कोशिश करने की गिनती 0 पर रीसेट हो जाती है, तो क्रम फिर से शुरू से शुरू होता है.
सार्वजनिक फ़ंक्शन
AbortSubscription
void AbortSubscription( void )
सदस्यता रद्द करें.
क्लाइंट की सदस्यता रद्द करना.
सदस्यता से जुड़े सारे ट्रैफ़िक को स्वीकार करना तुरंत बंद करें और कम्यूनिकेशन के सभी संसाधनों को रिलीज़ करें. SubscriptionClient ऑब्जेक्ट ही मान्य रहता है और इसका फिर से इस्तेमाल किया जा सकता है.
सदस्यता पब्लिशर को सूचना दिए बिना और ऐप्लिकेशन के इवेंट हैंडलर को OnSubscriptionTerminated
इवेंट डिलीवर किए बिना, क्लाइंट की सदस्यता खत्म करता है. अगर कोई म्युचुअल सदस्यता मौजूद है, तो काउंटर सदस्यता भी खत्म हो जाती है.
AbortSubscription() को कॉल करने पर, SubscriptionClient
ऑब्जेक्ट Terminated
स्थिति में आ जाता है. खत्म होने की प्रोसेस पूरी होने के बाद, ऑब्जेक्ट Initialized
की स्थिति में आ जाता है. दोनों ट्रांज़िशन, AbortSubscription() को किए गए कॉल में सिंक्रोनस रूप से होते हैं.
AbortSubscription() के वापस आने पर, SubscriptionClient
ऑब्जेक्ट का इस्तेमाल दूसरी सदस्यता को शुरू करने के लिए किया जा सकता है. इसके अलावा, Free() तरीके से कॉल करके इसे खाली किया जा सकता है.
ClearUpdated
WEAVE_ERROR ClearUpdated( TraitUpdatableDataSink *aDataSink, PropertyPathHandle aPropertyHandle )
DisableResubscribe
void DisableResubscribe( void )
फिर से सदस्यता लेने की सुविधा बंद करें.
अगर फिर से सदस्यता लेना बाकी था, तो यह रद्द हो जाएगा.
DiscardUpdates
void DiscardUpdates()
यह SubscriptionClient को, TraitPaths के उस सेट को खाली करने के लिए कहता है जिसे अपडेट नहीं किया जाना है. साथ ही, अगर अपडेट का अनुरोध किया जा रहा है, तो उसे रद्द कर देना चाहिए.
इस तरीके को किसी भी कॉलबैक से शुरू किया जा सकता है.
EnableResubscribe
void EnableResubscribe( ResubscribePolicyCallback aCallback )
अपने-आप फिर से सदस्यता लेने की सुविधा चालू करें.
फ़ेल होने पर, अगली बार कोशिश करने का समय बताने के लिए, कॉलबैक को अटैच करें.
ब्यौरा | |||
---|---|---|---|
पैरामीटर |
|
EndSubscription
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() को कॉल करता है और इस SubscriptionClient ऑब्जेक्ट के लिए, refcount को रिलीज़ करता है. सही इस्तेमाल में, इससे ऑब्जेक्ट को ऑब्जेक्ट पूल में वापस जाने में मदद मिलनी चाहिए
SubscriptionClient
ऑब्जेक्ट खाली करता है. अगर कोई सदस्यता चालू है या जारी है, तो उसे तुरंत खत्म कर दिया जाता है. यह उसी तरह खत्म हो जाता है जैसे AbortSubscription() को कॉल करने के दौरान किया जाता था. अगर अपडेट करने के किसी भी अनुरोध पर काम जारी है, तो वे भी रद्द कर दिए जाएंगे.
यह ऐप्लिकेशन, SubscriptionClient
ऑब्जेक्ट के लाइफ़टाइम में Free() को सिर्फ़ एक बार कॉल करने के लिए ज़िम्मेदार है. 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 )
InitiateSubscription
void InitiateSubscription( void )
SubscriptionClient को एक शुरू करने वाले के रूप में कॉन्फ़िगर करें (काउंटर-सदस्यता लेने वाले के बजाय) और अगर ऐसा नहीं है, तो सदस्यता शुरू करें.
IsCanceling
bool IsCanceling() const
IsEstablished
bool IsEstablished()
IsEstablishedIdle
bool IsEstablishedIdle()
IsFree
bool IsFree()
IsInProgressOrEstablished
bool IsInProgressOrEstablished()
IsInResubscribeHoldoff
bool IsInResubscribeHoldoff()
IsRetryEnabled
bool IsRetryEnabled()
IsTerminated
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 )