nl:: बुना:: प्रोफ़ाइलें:: 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_RESUBSCRIBE_MAX_FIBONACCI_Step_INDEX तक का Fibonaci क्रम होगा.
|
सार्वजनिक फ़ंक्शन |
|
---|---|
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
इवेंट कॉलबैक
void(* EventCallback)(void *const aAppState, EventID aEvent, const InEventParam &aInParam, OutEventParam &aOutParam)
ऐप्लिकेशन पर सदस्यता इवेंट पास करने के लिए कॉलबैक.
ब्यौरा | |||||||||
---|---|---|---|---|---|---|---|---|---|
पैरामीटर |
|
इवेंट आईडी
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
|
सदस्यता से जुड़ी गतिविधि के बारे में बताने वाला इवेंट. जब भी क्लाइंट को सदस्यता से जुड़ी गतिविधि के बारे में पता चलता है, तब यह जनरेट होता है; इसमें सदस्यता के सफल होने से जुड़ी स्थिति, सूचना का अनुरोध का स्वागत करना, और SubscribeVerify मैसेज के जवाब में स्टेटस रिपोर्ट की रसीद शामिल है. |
||||||||||||
kEvent_OnSubscriptionEstablished
|
सदस्यता को सफल बनाने के बाद जनरेट होता है. इस समय, ऐप्लिकेशन EndSubscription(), AbortSubscription() या Free() को कॉल कर सकता है. |
||||||||||||
kEvent_OnSubscriptionTerminated
|
इस सदस्यता के खत्म होने की जानकारी देता है. nl::Weave::Profiles::DataManagement_current::SubscriptionClient::EventCallback पर भेजे गए पैरामीटर से पता चलेगा कि फिर से सदस्यता लेने की कोशिश की जाएगी या नहीं. इवेंट हैंडलर कॉल के दौरान, क्लाइंट की स्थिति इस स्थिति में, ऐप्लिकेशन AbortSubscription() या Free() को कॉल कर सकता है. भेजे गए पैरामीटर में, गड़बड़ी का कोड भी शामिल होगा. इससे, सदस्यता को खत्म करने की वजह के बारे में पता चलेगा. सदस्यता कई वजहों से खत्म की जा सकती थी (जैसे कि WRM ACK उपलब्ध नहीं है, ExchangeContext को असाइन नहीं किया जा सका, जवाब का समय खत्म हो गया है......) क्लाइंट ने जो गड़बड़ी के कोड जनरेट किए हैं:
|
||||||||||||
kEvent_OnUpdateComplete
|
एक इवेंट, जिसमें अपडेट के पूरा होने की जानकारी होती है. इवेंट पैरामीटर से पता चलेगा कि किसी खास एट्रिब्यूट पाथ को अपडेट करना सफल रहा या नहीं. |
सदस्यता फिर से लें{0/}फिर लागू करें
void(* ResubscribePolicyCallback)(void *const aAppState, ResubscribeParam &aInParam, uint32_t &aOutIntervalMsec)
अगली बार फिर से सदस्यता लेने से पहले इंतज़ार करने का समय फ़ेच करने के लिए कॉलबैक.
अगर इस ऐप्लिकेशन ने फिर से सदस्यता लेने का फ़ैसला लिया है, तो उन्हें इस फ़ंक्शन में रद्द करने/मुफ़्त में आज़माने की अनुमति होती है.
ब्यौरा | |||||||
---|---|---|---|---|---|---|---|
पैरामीटर |
|
सार्वजनिक स्थिर फ़ंक्शन
डिफ़ॉल्ट इवेंट हैंडलर
void DefaultEventHandler( EventID aEvent, const InEventParam & aInParam, OutEventParam & aOutParam )
डिफ़ॉल्ट ResubscriptionPolicyCallback
void DefaultResubscribePolicyCallback( void *const aAppState, ResubscribeParam & aInParam, uint32_t & aOutIntervalMsec )
नीति लागू करने का डिफ़ॉल्ट तरीका, समय के साथ मिली विंडो के बजाय मिलीसेकंड में रिज़ॉल्यूशन चुनेगा. इसके बाद, WDM_RESUBSCRIBE_MAX_FIBONACCI_Step_INDEX तक का Fibonaci क्रम होगा.
W जाना जब रीप्ले की संख्या 0 पर रीसेट होती है, तब क्रम फिर से शुरू होता है.
सार्वजनिक फ़ंक्शन
रद्द की गई सदस्यता
void AbortSubscription( void )
सदस्यता रद्द करें.
क्लाइंट की सदस्यता रद्द करना.
सदस्यता से जुड़े सारे ट्रैफ़िक को तुरंत स्वीकार करना बंद करें और कम्यूनिकेशन के सभी बुनियादी संसाधन रिलीज़ करें. SubscriptionClient ऑब्जेक्ट खुद ही मान्य रहता है और इसका फिर से इस्तेमाल किया जा सकता है.
सदस्यता प्रकाशक को सूचना दिए बिना और ऐप्लिकेशन और #39;s इवेंट हैंडलर में OnSubscriptionTerminated
इवेंट डिलीवर किए बिना, सदस्यता खत्म होने पर क्लाइंट को खत्म करता है. अगर आपसी सदस्यता मौजूद है, तो कानूनी विरोध भी खत्म कर दिया जाता है.
AbortSubscription() को कॉल करने पर, SubscriptionClient
ऑब्जेक्ट, Terminated
स्टेटस में चला जाता है. खत्म करने की प्रोसेस पूरी होने के बाद, ऑब्जेक्ट Initialized
स्थिति में चला जाता है. AbertSubscription() के दौरान कॉल में दोनों ट्रांज़िशन सिंक हो जाते हैं.
AbortSubscription() के वापस होने के बाद, SubscriptionClient
ऑब्जेक्ट का इस्तेमाल, दूसरी सदस्यता शुरू करने के लिए किया जा सकता है या इसे Free() मेथड में कॉल करके खाली किया जा सकता है.
हटाया गया
WEAVE_ERROR ClearUpdated( TraitUpdatableDataSink *aDataSink, PropertyPathHandle aPropertyHandle )
फिर से सदस्यता लेना बंद करें
void DisableResubscribe( void )
फिर से सदस्यता लेने की सुविधा बंद करें.
अगर दोबारा सदस्यता लेने की मंज़ूरी बाकी थी, तो इसे रद्द कर दिया जाएगा.
अपडेट खारिज करें
void DiscardUpdates()
यह SubscriptionClient को अपडेट होने के लिए TraitPaths के सेट को खाली करने के लिए कहता है. साथ ही, अपडेट होने पर चल रहे अपडेट अनुरोध को रद्द करता है.
इस तरीके को किसी भी कॉलबैक से शुरू किया जा सकता है.
फिर से सदस्यता लें
void EnableResubscribe( ResubscribePolicyCallback aCallback )
अपने-आप फिर से सदस्य बनने की सुविधा चालू करें.
इंस्टॉल न हो पाने की अगली कोशिश का समय बताने के लिए, कॉलबैक अटैच करें.
ब्यौरा | |||
---|---|---|---|
पैरामीटर |
|
एंड सदस्यता
WEAVE_ERROR EndSubscription( void )
सदस्यता छोड़ें.
क्लाइंट की सदस्यता को बेहतर तरीके से खत्म करना.
WDM_ENABLE_SUBSCRIPTION_CANCEL कंपाइल-टाइम का विकल्प चालू होने पर, मिलते-जुलते ऐप्लिकेशन को रद्द करने का अनुरोध भेजकर, सदस्यता बंद करें. सदस्यता से जुड़े संसाधन, मिलते-जुलते ऐप्लिकेशन के जवाब या टाइम आउट होने पर हटा दिए जाते हैं. विकल्प बंद होने पर, कॉल AbortSubscription() के बराबर होता है.
आपकी सदस्यता खत्म करने के लिए, क्लाइंट को बेहतर तरीके से बंद करना होगा. अगर सदस्यता रद्द करने के लिए सहायता चालू है, तो सदस्यता प्रकाशक को SubscribecancelRequest मैसेज भेजा जाता है और सिस्टम सदस्यता खत्म करने से पहले, जवाब का इंतज़ार करता है. अगर ऐसा नहीं होता है, तो सदस्यता AbortSubscription() की तरह ही खत्म हो जाती है. अगर कोई आपसी सदस्यता मौजूद है, तो कानूनी विरोध भी खत्म कर दिया जाएगा.
SubscribecancelRequest के जवाब का इंतज़ार करते समय, SubscriptionClient
, Canceling
स्थिति में चला जाता है.
खत्म करने की प्रोसेस शुरू होने के बाद, SubscriptionClient
ऑब्जेक्ट Terminated
स्थिति में जाता है और ऐप्लिकेशन और #39; के इवेंट हैंडलर में एक OnSubscriptionTerminated
इवेंट डिलीवर होता है. ध्यान दें कि अगर रद्द करने की सुविधा चालू नहीं की गई है, तो कॉल में इवेंट हैंडलर को EndSubscription() के मुताबिक सिंक करने की सुविधा दी जा सकती है.
ऐप्लिकेशन और #39; इवेंट हैंडलर वापस आने के बाद, 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() कॉल होने के बाद, ऑब्जेक्ट के बारे में कोई और रेफ़रंस न दें.
गेटबाइंडिंग
Binding * GetBinding( void ) const
GetLivenessTimeoutMsec
uint32_t GetLivenessTimeoutMsec( void ) const
GetPeerNodeId
uint64_t GetPeerNodeId( void ) const
GetSubscriptionId
WEAVE_ERROR GetSubscriptionId( uint64_t *const apSubscriptionId )
गतिविधि का संकेत दें
void IndicateActivity( void )
StartCounterसदस्यता
void InitiateCounterSubscription( const uint32_t aLivenessTimeoutSec )
सदस्यता लें
void InitiateSubscription( void )
SubscriptionClient को एक शुरुआत करने वाले (कानूनी सदस्य के बजाय) के रूप में कॉन्फ़िगर करें और अगर ऐसा नहीं है, तो सदस्यता को बढ़ाएं.
रद्द किया जा रहा है
bool IsCanceling() const
स्थापित है
bool IsEstablished()
isInstalledIdle
bool IsEstablishedIdle()
मुफ़्त है
bool IsFree()
IsInProgressOrेंगे-इंस्टॉल किया गया
bool IsInProgressOrEstablished()
ISInReunsubscribeHoldoff
bool IsInResubscribeHoldoff()
क्या फिर से कोशिश की गई है
bool IsRetryEnabled()
खत्म कर दिया गया है
bool IsTerminated()
isUpdatePendingOrInProgress
bool IsUpdatePendingOrInProgress()
LockUpdateम्यूटक्स
void LockUpdateMutex( void )
ऑनकैटलॉग बदला गया
void OnCatalogChanged()
इस तरीके को तब कॉल किया जाना चाहिए, जब TraitDataSink कैटलॉग में बदलाव किया गया हो.
रीसेट करें
void ResetResubscribe( void )
फिर से सदस्यता लेने का तरीका आज़माएं.
ऐसा करने पर, इसे तुरंत फिर से शुरू किया जाएगा
setLivenessTimeoutMsec
void SetLivenessTimeoutMsec( uint32_t val )
सेट किया गया
WEAVE_ERROR SetUpdated( TraitUpdatableDataSink *aDataSink, PropertyPathHandle aPropertyHandle, bool aIsConditional )
निलंबन अपडेट करने की कोशिश
void SuspendUpdateRetries()
यह SubscriptionClient को अपडेट अनुरोधों के फिर से कोशिश करने से रोकने के लिए कहता है.
ऐप्लिकेशन को सभी मेटाडेटा खारिज किए बिना कुछ समय के लिए अपडेट निलंबित करने देता है. FlushUpdate को कॉल करने के बाद, अपडेट और फिर से कोशिश करने की सुविधा फिर से शुरू हो जाएगी. किसी अपडेट की फ़्लाइट में होने के दौरान, अपडेट निलंबित करने पर कॉल करने पर, यह अपडेट रद्द नहीं होता है. हालांकि, ऐसा नहीं होने पर फिर से कोशिश नहीं की जाएगी. ऐसा तब तक होगा, जब तक कि FlushUpdate को फिर से कॉल नहीं किया जाएगा.
अनलॉक अपडेटम्यूटक्स
void UnlockUpdateMutex( void )