nl:: Weave:: Profiles:: DataManagement_Current:: SubscriptionClient
खास जानकारी
सार्वजनिक टाइप |
|
---|---|
@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_RESUBSCRIPTION_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 मैसेज में, किसी इवेंट स्ट्रीम की गिनती करता है. ऐप्लिकेशन इस समय EndSubscription(), AbortSubscription() या Free() को कॉल कर सकता है. |
||||||||||||
kEvent_OnExchangeStart
|
बाइंडिंग तैयार होने के बाद जनरेट किया जाता है और ExchangeContext सेट अप कर दिए जाने के बाद कोई भी मैसेज भेजे जाने से पहले जनरेट किया जाता है. ऐप्लिकेशन के लिए ExchangeContext सेटिंग में बदलाव करने का यह आखिरी मौका है. |
||||||||||||
kEvent_OnNoMorePendingUpdates
|
इवेंट से पता चलता है कि अपडेट सेट के सभी पाथ, पीयर ने प्रोसेस कर दिए हैं. इसके बाद, किसी पाथ को अपडेट करने की ज़रूरत नहीं है. |
||||||||||||
kEvent_OnNotificationProcessed
|
यह तब जनरेट होता है, जब SubscriptionEngine मैसेज की प्रोसेस पूरी हो जाती है. ऐप्लिकेशन इस समय EndSubscription(), AbortSubscription() या Free() को कॉल कर सकता है. |
||||||||||||
kEvent_OnNotificationRequest
|
नोटिफ़िकेशन अनुरोध के मिलने पर जनरेट की गई. ऐप्लिकेशन इस समय 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_RESUBSCRIPTION_MAX_FIBONACCI_STEP_INDEX तक फ़ाइबोनाशी क्रम चलेगा.
WDM_RESUBSCRIPTION_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 ऑब्जेक्ट के लिए रेफ़रंस रिलीज़ करता है. सही इस्तेमाल के तहत, इससे ऑब्जेक्ट को ऑब्जेक्ट पूल में दिखाया जा सकता है
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 )