nl:: बुना::प्रोफ़ाइलें::DataManagement_current::SubscriptionClient

खास जानकारी

सार्वजनिक प्रकार

@130 enum
EventCallback)(void *const aAppState, EventID aEvent, const InEventParam &aInParam, OutEventParam &aOutParam) टाइपडेफ़
void(*
ऐप्लिकेशन पर सदस्यता इवेंट पास करने के लिए कॉलबैक.
EventID{
  kEvent_OnSubscriptionTerminated = 1,
  kEvent_OnExchangeStart = 2,
  kEvent_OnSubscribeRequestPrepareNeeded = 3,
  kEvent_OnSubscriptionEstablished = 4,
  kEvent_OnNotificationRequest = 5,
  kEvent_OnNotificationProcessed = 6,
  kEvent_OnEventStreamReceived = 7,
  kEvent_OnSubscriptionActivity = 8,
  kEvent_OnUpdateComplete = 9,
  kEvent_OnNoMorePendingUpdates = 10
}
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
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:: बुनाई::प्रोफ़ाइल::DataManagement_current::SubscriptionClient::LastObservedEvent
nl:: बुना::प्रोफ़ाइल::DataManagement_current::SubscriptionClient::ResubscriptionParam

यूनियन

nl:: बुना::प्रोफ़ाइल::DataManagement_current::SubscriptionClient::InEventParam
nl:: बुना::प्रोफ़ाइल::DataManagement_current::SubscriptionClient::OutEventParam

सार्वजनिक प्रकार

@130

 @130

इवेंट कॉलबैक

void(* EventCallback)(void *const aAppState, EventID aEvent, const InEventParam &aInParam, OutEventParam &aOutParam)

ऐप्लिकेशन पर सदस्यता इवेंट पास करने के लिए कॉलबैक.

ब्यौरा
पैरामीटर
[in] aAppState
SubscriptionClient के शुरू होने के दौरान सेट किया गया ऐप्लिकेशन स्थिति पॉइंटर.
[in] aEvent
यह बताता है कि कौनसा इवेंट हो रहा है
[in] aInParam
इवेंट के बारे में ज़्यादा जानकारी दें
[out] aOutParam
ऐप्लिकेशन से मिली जानकारी

इवेंट आईडी

 EventID
प्रॉपर्टी
kEvent_OnEventStreamReceived

यह तब जनरेट होता है, जब SubscriptionEngine नोटिफ़िकेशन अनुरोध मैसेज में किसी इवेंट स्ट्रीम की गिनती करता है.

इस समय, ऐप्लिकेशन EndSubscription(), AbortSubscription() या Free() को कॉल कर सकता है.

kEvent_OnExchangeStart

बाइंडिंग के तैयार होने के बाद जनरेट किया गया और ExchangeContext को सेट अप कर दिया गया है, लेकिन कोई भी मैसेज भेजे जाने से पहले.

किसी ऐप्लिकेशन के लिए ExchangeContext सेटिंग में बदलाव करने का यह आखिरी मौका है. mEC मान्य है और इसे टाइम आउट सेटिंग के लिए ट्यून किया जा सकता है. ऐप्लिकेशन को क्लाइंट में दूसरे फ़ील्ड को नहीं छूना चाहिए और 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 पर भेजे गए पैरामीटर से पता चलेगा कि फिर से सदस्यता लेने की कोशिश की जाएगी या नहीं.

इवेंट हैंडलर कॉल के दौरान, क्लाइंट की स्थिति Terminated होगी. अगर फिर से कोशिश नहीं की जाएगी, तो इवेंट हैंडलर के वापस आने पर क्लाइंट की स्थिति Initialized में बदल जाएगी. ऐसा न करने पर, सदस्यता का स्टेटस ResubscribeHoldoff बदल जाएगा. साथ ही, होल्ड करने के समय के बाद, सदस्यता को फिर से शुरू करने की कोशिश की जाएगी.

इस स्थिति में, ऐप्लिकेशन AbortSubscription() या Free() को कॉल कर सकता है.

भेजे गए पैरामीटर में, गड़बड़ी का कोड भी शामिल होगा. इससे, सदस्यता को खत्म करने की वजह के बारे में पता चलेगा.

सदस्यता कई वजहों से खत्म की जा सकती थी (जैसे कि WRM ACK उपलब्ध नहीं है, ExchangeContext को असाइन नहीं किया जा सका, जवाब का समय खत्म हो गया है......) क्लाइंट ने जो गड़बड़ी के कोड जनरेट किए हैं:

गड़बड़ी का कोड लिंक
WEAVE_ERROR_INVALID_MESSAGE_TYPE ऐसा मैसेज मिला है जिसकी पहचान नहीं की जा सकी.
WEAVE_ERROR_RENDERED सही नहीं मिला या लाइव स्ट्रीम की जांच नहीं हो सकी.
WEAVE_ERROR_INcorrect_STATE मैसेज अचानक आ गए हैं.
WEAVE_ERROR_STATUS_REPORT_RECEIVED स्टेटस रिपोर्ट मिली है.
WEAVE_ERROR_INVALID_AUTO सदस्यता लेने के अनुरोध के लिए फ़ील्ड अमान्य हैं.

kEvent_OnUpdateComplete

एक इवेंट, जिसमें अपडेट के पूरा होने की जानकारी होती है.

इवेंट पैरामीटर से पता चलेगा कि किसी खास एट्रिब्यूट पाथ को अपडेट करना सफल रहा या नहीं.

सदस्यता फिर से लें{0/}फिर लागू करें

void(* ResubscribePolicyCallback)(void *const aAppState, ResubscribeParam &aInParam, uint32_t &aOutIntervalMsec)

अगली बार फिर से सदस्यता लेने से पहले इंतज़ार करने का समय फ़ेच करने के लिए कॉलबैक.

अगर इस ऐप्लिकेशन ने फिर से सदस्यता लेने का फ़ैसला लिया है, तो उन्हें इस फ़ंक्शन में रद्द करने/मुफ़्त में आज़माने की अनुमति होती है.

ब्यौरा
पैरामीटर
[in] aAppState
SubscriptionClient के शुरू होने के दौरान सेट किया गया ऐप्लिकेशन स्थिति पॉइंटर.
[in] aInParam
फिर से कोशिश करने के बारे में ज़्यादा जानकारी दें
[out] 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
)

अपने-आप फिर से सदस्य बनने की सुविधा चालू करें.

इंस्टॉल न हो पाने की अगली कोशिश का समय बताने के लिए, कॉलबैक अटैच करें.

ब्यौरा
पैरामीटर
[in] aCallback
अगर यह सुविधा काम नहीं करती है, तो फिर से कोशिश करने से पहले इंतज़ार करने का समय फ़ेच करने के लिए वैकल्पिक कॉलबैक. अगर NULL डिफ़ॉल्ट नीति का इस्तेमाल करता है.

एंड सदस्यता

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 को म्यूट कर दिया है.

जब तक पिछला अपडेट एक्सचेंज जारी नहीं रहता, तब तक क्लाइंट अपडेट किया गया के तौर पर मार्क किए गए सभी डेटा को एक अपडेट अनुरोध में, जवाब देने वाले को भेज देगा. इस तरीके को किसी भी थ्रेड से कॉल किया जा सकता है.

ब्यौरा
पैरामीटर
[in] aForce
अगर सही हो, तो अपडेट को तुरंत भेजा जाता है, भले ही आने वाले समय में फिर से कोशिश शेड्यूल की गई हो. यह पैरामीटर डिफ़ॉल्ट रूप से गलत माना जाता है.
लौटाए गए सामान
सफल होने पर 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
)