nl::Weave::Profiles::DataManagement_Legacy::Binding

#include <src/lib/profiles/data-management/Legacy/Binding.h>

बाइंडिंग क्लास, Weave का इस्तेमाल करके ऐप्लिकेशन की इकाई की ओर से कम्यूनिकेशन की स्थिति को मैनेज करती है.

खास जानकारी

जब कोई ऐप्लिकेशन किसी रिमोट इकाई से संपर्क करने के लिए Weave का इस्तेमाल करना चाहता है, तो उसके लिए कई तरह के विकल्प मौजूद होते हैं. बाइंडिंग क्लास में इन विकल्पों को शामिल किया जाता है और इन्हें इस तरह से व्यवस्थित किया जाता है कि आसान काम आसानी से किए जा सकते हैं और मुश्किल कॉन्टेंट को आसानी से समझा जा सकता है. इसमें शामिल विकल्पों में ये शामिल हैं:

  • जाने-पहचाने पीयर नोड के साथ यूनिकास्ट यूडीपी कम्यूनिकेशन.
  • "कोई भी" नोड वाला यूडीपी ब्रॉडकास्ट.
  • जाने-पहचाने साथी नोड के साथ यूनिकास्ट WRMP कम्यूनिकेशन.
  • पहले से मालूम पीयर नोड के साथ टीसीपी कम्यूनिकेशन.
  • चीज़ों को सेट अप करने के लिए, सर्विस मैनेजर इंस्टेंस का इस्तेमाल करके, जाने-पहचाने सर्विस एंडपॉइंट के साथ टीसीपी कम्यूनिकेशन.
  • पहले से मौजूद कनेक्शन पर आधारित टीसीपी कम्यूनिकेशन.

कंस्ट्रक्टर और डिस्ट्रक्टर

Binding(void)
बाइंडिंग ऑब्जेक्ट के लिए डिफ़ॉल्ट कंस्ट्रक्टर.
~Binding(void)
बाइंडिंग ऑब्जेक्ट के लिए डिस्ट्रक्टर.

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

@165{
  kState_Incomplete = 0,
  kState_Completing = 1,
  kState_Complete = 2
}
enum
बाइंडिंग ऑब्जेक्ट की स्थितियों का सेट.

सार्वजनिक एट्रिब्यूट

mAuthMode
WeaveAuthMode
इस्तेमाल किया जाने वाला Weave ऑथेंटिकेशन मोड.
mConnection
इस बाइंडिंग में, फ़िलहाल इस्तेमाल हो रहे Weave कनेक्शन का पॉइंटर.
mEngine
इस बाइंडिंग से जुड़े ProtocolEngine ऑब्जेक्ट के लिए पॉइंटर.
mPeerNodeId
uint64_t
बाइंडिंग टारगेट का 64-बिट नोड आईडी.
mServiceMgr
इस बाइंडिंग को पूरा करने में इस्तेमाल करने के लिए, (ज़रूरी नहीं) ServiceManager ऑब्जेक्ट का पॉइंटर.
mState
uint8_t
बाइंडिंग ऑब्जेक्ट की मौजूदा स्थिति.
mTransport
uint8_t
इस बाइंडिंग को पूरा करने के लिए इस्तेमाल किया जाने वाला ट्रांसपोर्ट.

सार्वजनिक फ़ंक्शन

CompleteConfirm(WeaveConnection *aConnection)
void
बाइंड करने के अनुरोध की पुष्टि को मैनेज करें.
CompleteConfirm(StatusReport & aReport)
void
बाइंड अनुरोध की असफलता को मैनेज करना.
CompleteConfirm(void)
void
बाइंड करने के अनुरोध की पुष्टि को मैनेज करें.
CompleteRequest(ProtocolEngine *aEngine)
बाइंडिंग को पूरा करने का अनुरोध करना.
Connect(WeaveConnection *aConnection)
पूरा कनेक्शन देकर, टीसीपी बाइंडिंग को पूरा करें.
Finalize(void)
void
बाइंडिंग को "पूरा नहीं करना" और उसे खाली करना.
Finalize(WEAVE_ERROR aErr)
void
बाइंडिंग को "पूरा नहीं करना" और उसे खाली करना.
Free(void)
void
बाइंडिंग स्टेट हटाएं.
GetExchangeCtx(WeaveExchangeManager *aExchangeMgr, void *aAppState)
Binding के ज़रिए, ExchangeContext ऑब्जेक्ट बनाएं.
IncompleteIndication(StatusReport & aReport)
void
बाइंडिंग की गड़बड़ी ठीक करें.
Init(const uint64_t & aPeerNodeId)
सिर्फ़ किसी नोड आईडी के साथ बाइंडिंग को शुरू करें.
Init(const uint64_t & aPeerNodeId, uint8_t aTransport)
पीयर आईडी और ट्रांसपोर्ट के आधार पर बाइंडिंग ऑब्जेक्ट को शुरू करें.
Init(const uint64_t & aServiceEpt, WeaveServiceManager *aServiceMgr, WeaveAuthMode aAuthMode)
बाइंडिंग ऑब्जेक्ट को सर्विस एंडपॉइंट पर शुरू करें.
Init(WeaveConnection *aConnection)
WeaveConnection के साथ, Binding ऑब्जेक्ट को शुरू करें.
IsComplete(void)
bool
देखें कि बाइंडिंग पूरी हुई है या नहीं.
IsFree(void)
bool
चेक का मतलब है बाइंडिंग फ़्री.
UncompleteRequest(void)
void
बाइंडिंग की वजह अधूरी है.
UncompleteRequest(WEAVE_ERROR aErr)
void
बाइंडिंग की वजह अधूरी है.

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

@165

 @165

बाइंडिंग ऑब्जेक्ट की स्थितियों का सेट.

प्रॉपर्टी
kState_Complete

बाइंडिंग की स्थिति, जो पूरी हो गई है और इस्तेमाल के लिए तैयार है.

kState_Completing

बाइंडिंग की वह स्थिति जो पूरी हो रही है.

kState_Incomplete

बाइंडिंग की शुरुआती और आखिरी स्थिति.

सार्वजनिक एट्रिब्यूट

mAuthMode

WeaveAuthMode mAuthMode

इस्तेमाल किया जाने वाला Weave ऑथेंटिकेशन मोड.

(READ_ONLY)

इस बाइंडिंग से मैनेज होने वाले सभी कम्यूनिकेशन में, पुष्टि करने का यह मोड इस्तेमाल किया जाता है.

mConnection

WeaveConnection * mConnection

इस बाइंडिंग में, फ़िलहाल इस्तेमाल हो रहे Weave कनेक्शन का पॉइंटर.

(सिर्फ़ पढ़ने के लिए)

टीसीपी बाइंडिंग को शुरुआत में कनेक्शन के साथ शुरू किया जा सकता है या पूरा होने के बाद, एक कनेक्शन दिया जा सकता है.

mEngine

ProtocolEngine * mEngine

इस बाइंडिंग से जुड़े ProtocolEngine ऑब्जेक्ट के लिए पॉइंटर.

बाइंडिंग आम तौर पर किसी खास प्रोटोकॉल इंजन के मामले में पूरी की जाती है. इसका इस्तेमाल, ज़्यादातर Message सुझावों को ऐक्सेस करने के लिए किया जाता है. हम यहां पर उसका ट्रैक रखते हैं.

mPeerNodeId

uint64_t mPeerNodeId

बाइंडिंग टारगेट का 64-बिट नोड आईडी.

(सिर्फ़ पढ़ने के लिए)

हर Binding में एक टारगेट इकाई होती है, जिसका नाम यहां दिया गया है. Weave नोड आईडी के अलावा यह किसी सेवा एंडपॉइंट का नाम भी दे सकता है.

mServiceMgr

nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager * mServiceMgr

इस बाइंडिंग को पूरा करने में इस्तेमाल करने के लिए, (ज़रूरी नहीं) ServiceManager ऑब्जेक्ट का पॉइंटर.

(सिर्फ़ पढ़ने के लिए)

Weave सेवा से जुड़ने पर, शुरू करने के समय Weave नोड आईडी की जगह एक 64-बिट सेवा एंडपॉइंट आईडी दिया जा सकता है. इस मामले में, बाइंडिंग को पूरा करने के लिए ServiceManager ऑब्जेक्ट की ज़रूरत भी होगी. सामान्य टीसीपी या WRMP बाइंडिंग को ServiceManager ऑब्जेक्ट की ज़रूरत नहीं होती.

mState

uint8_t mState

बाइंडिंग ऑब्जेक्ट की मौजूदा स्थिति.

एक बार में सिर्फ़ एक "पूरा" हुआ ऑपरेशन किया जा सकता है. किसी भी स्थिति में, अगर पूरी बाइंडिंग को पूरा करने के लिए कहा जाता है, तो वह तुरंत पुष्टि करने वाले फ़ंक्शन को कॉल करता है. नीचे दिया गया स्टेट वैरिएबल, मौजूदा स्थिति को ट्रैक करता है और लॉकआउट के तौर पर काम करता है.

mTransport

uint8_t mTransport

इस बाइंडिंग को पूरा करने के लिए इस्तेमाल किया जाने वाला ट्रांसपोर्ट.

(सिर्फ़ पढ़ने के लिए)

mTransport के लिए संभावित वैल्यू, DMकॉन्सपोर्ट में बताई गई हैं.

सार्वजनिक फ़ंक्शन

बाइंडिंग

 Binding(
  void
)

बाइंडिंग ऑब्जेक्ट के लिए डिफ़ॉल्ट कंस्ट्रक्टर.

पूरी अंदरूनी स्थिति हटा देता है.

CompleteConfirm

void CompleteConfirm(
  WeaveConnection *aConnection
)

बाइंड करने के अनुरोध की पुष्टि को मैनेज करें.

ब्यौरा
पैरामीटर
[in] aConnection
बाइंडिंग टारगेट के लिए, चालू WeaveConnection का पॉइंटर.

CompleteConfirm

void CompleteConfirm(
  StatusReport & aReport
)

बाइंड अनुरोध की असफलता को मैनेज करना.

ब्यौरा
पैरामीटर
[in] aReport
असफलता के बारे में बताने वाले Status Report ऑब्जेक्ट का रेफ़रंस.

CompleteConfirm

void CompleteConfirm(
  void
)

बाइंड करने के अनुरोध की पुष्टि को मैनेज करें.

CompleteRequest

WEAVE_ERROR CompleteRequest(
  ProtocolEngine *aEngine
)

बाइंडिंग को पूरा करने का अनुरोध करना.

बाइंडिंग को पूरा करना, कम से कम उन बाइंडिंग के लिए होता है जिनमें टीसीपी की ज़रूरत होती है. यह किसी खास ProtocolEngine ऑब्जेक्ट के लिए किया जाता है, जो ExchangeManager इंस्टेंस का ऐक्सेस देता है.

ब्यौरा
पैरामीटर
[in] aEngine
उस ProtocolEngine ऑब्जेक्ट का पॉइंटर, जिसकी ओर से पूरा किया जा रहा है.
रिटर्न वैल्यू
WEAVE_NO_ERROR
सफलता पर.
WEAVE_ERROR_INCORRECT_STATE
अगर बाइंडिंग पहले ही पूरी हो चुकी है.
WEAVE_ERROR_NO_MEMORY
कनेक्शन की ज़रूरत हो और कोई भी नेटवर्क उपलब्ध न हो
लौटाए गए सामान
अगर ऐसा नहीं है, तो कनेक्ट करने की कोशिश करते समय कोई WEAVE_ERROR मिला.

कनेक्ट करें

WEAVE_ERROR Connect(
  WeaveConnection *aConnection
)

पूरा कनेक्शन देकर, टीसीपी बाइंडिंग को पूरा करें.

नई शुरू की गई टीसीपी बाइंडिंग का इस्तेमाल तब तक नहीं किया जा सकता, जब तक उसे पूरा नहीं कर लिया जाता. आम तौर पर, ऐसा मांग पर किया जाता है. ऐसा तब किया जाता है, जब ऐप्लिकेशन, मैसेज भेजने के लिए बाइंडिंग का इस्तेमाल करता है. हालांकि, Weave कनेक्शन देकर इसे साफ़ तौर पर पूरा भी किया जा सकता है.

ब्यौरा
पैरामीटर
[in] aConnection
बाइंडिंग को पूरा करने के लिए इस्तेमाल किए गए WeaveConnection का पॉइंटर.
रिटर्न वैल्यू
WEAVE_NO_ERROR
सफलता पर.
WEAVE_ERROR_INCORRECT_STATE
अगर बाइंडिंग में पहले से कोई कनेक्शन है.
WEAVE_ERROR_INVALID_ARGUMENT
अगर कनेक्शन NULL है.

फ़ाइनल करें

void Finalize(
  void
)

बाइंडिंग को "पूरा नहीं करना" और उसे खाली करना.

बाइंडिंग में ऐसी स्थिति हो सकती है जिसे क्लीनअप की ज़रूरत होती है.उदाहरण के लिए, कनेक्शन क्लोज़र, जिसे Uncomplete() तरीके से मैनेज किया जाता है. इसके अलावा, उसे Free() तरीके से शुरुआती स्थिति में ही बदला जा सकता है. सुविधा के लिए, इस तरीके में दोनों को शुरू किया जाता है.

यह भी देखें:
फ़ाइनल करें(WEAVE_ERROR)

फ़ाइनल करें

void Finalize(
  WEAVE_ERROR aErr
)

बाइंडिंग को "पूरा नहीं करना" और उसे खाली करना.

बाइंडिंग में ऐसी स्थिति हो सकती है जिसे क्लीनअप की ज़रूरत होती है.उदाहरण के लिए, कनेक्शन क्लोज़र, जिसे Uncomplete() तरीके से मैनेज किया जाता है. इसके अलावा, उसे Free() तरीके से शुरुआती स्थिति में ही बदला जा सकता है. सुविधा के लिए, इस तरीके में दोनों को शुरू किया जाता है.

ब्यौरा
पैरामीटर
[in] aErr
गड़बड़ी के इस कोड से पता चलता है कि किस वजह से अनुरोध किया गया है. अगर WEAVE_NO_ERROR नहीं है, तो टीसीपी कनेक्शन को रद्द किया जा सकता है.
यह भी देखें:
फ़ाइनल करें(void)

बिना किसी शुल्क के आज़माएं

void Free(
  void
)

बाइंडिंग स्टेट हटाएं.

सभी बाइंडिंग स्टेट को बिना किसी शर्त के वापस उसकी मूल स्थिति में लाएं.

GetExchangeCtx

ExchangeContext * GetExchangeCtx(
  WeaveExchangeManager *aExchangeMgr,
  void *aAppState
)

Binding के ज़रिए, ExchangeContext ऑब्जेक्ट बनाएं.

ब्यौरा
पैरामीटर
[in] aExchangeMgr
एक्सचेंज मैनेजर का पॉइंटर, जिससे संदर्भ का अनुरोध करना है.
[in] aAppState
ऐप्लिकेशन की स्थिति वाले ऑब्जेक्ट के लिए एक शून्य पॉइंटर, जिसे बाद में इस्तेमाल करने के लिए एक्सचेंज के तौर पर सेव किया जाएगा.
लौटाए गए सामान
ExchangeContext ऑब्जेक्ट के लिए पॉइंटर या पूरा न होने पर NULL.

IncompleteIndication

void IncompleteIndication(
  StatusReport & aReport
)

बाइंडिंग की गड़बड़ी ठीक करें.

इस तरीके को शुरू किया जाता है.साथ ही, यह प्रोसेस पूरी होने के बाद बाइंडिंग के काम न करने पर, बाद में हाई-लेयर हैंडलर को शुरू करती है. उदाहरण के लिए, CompleteConfirm() को लागू करने के बाद, यह बताने वाले स्टेटस के साथ ऐसा होता है.

ब्यौरा
पैरामीटर
[in] aReport
गड़बड़ी की जानकारी देने वाली Status Report का रेफ़रंस.
यह भी देखें:
CompleteConfirm(StatusReport &aReport).

शुरू करें

WEAVE_ERROR Init(
  const uint64_t & aPeerNodeId
)

सिर्फ़ किसी नोड आईडी के साथ बाइंडिंग को शुरू करें.

इससे, कॉन्फ़िगर किए गए डिफ़ॉल्ट ट्रांसपोर्ट के साथ बाइंडिंग बनती है.

ब्यौरा
पैरामीटर
[in] aPeerNodeId
बाइंडिंग टारगेट के 64-बिट आईडी का रेफ़रंस.
रिटर्न वैल्यू
WEAVE_NO_ERROR
सफलता पर.
WEAVE_ERROR_INVALID_ARGUMENT
अगर बाइंडिंग के बारे में साफ़ तौर पर नहीं बताया गया है.

शुरू करें

WEAVE_ERROR Init(
  const uint64_t & aPeerNodeId,
  uint8_t aTransport
)

पीयर आईडी और ट्रांसपोर्ट के आधार पर बाइंडिंग ऑब्जेक्ट को शुरू करें.

ब्यौरा
पैरामीटर
[in] aPeerNodeId
बाइंडिंग टारगेट के 64-बिट नोड आइडेंटिफ़ायर का रेफ़रंस.
[in] aTransport
WeaveTransportOption से ली गई परिवहन की खास जानकारी.
रिटर्न वैल्यू
WEAVE_NO_ERROR
सफलता पर.
WEAVE_ERROR_INVALID_ARGUMENT
अगर बाइंडिंग के बारे में साफ़ तौर पर नहीं बताया गया है.

शुरू करें

WEAVE_ERROR Init(
  const uint64_t & aServiceEpt,
  WeaveServiceManager *aServiceMgr,
  WeaveAuthMode aAuthMode
)

बाइंडिंग ऑब्जेक्ट को सर्विस एंडपॉइंट पर शुरू करें.

इस तरह से Nest सेवा पर किसी खास एंडपॉइंट से बाइंड किया जाता है. इस तरह की बाइंडिंग को कई चरणों में पूरा करने की प्रोसेस की ज़रूरत होती है. इसमें लोकल सर्विस डायरेक्ट्री कैश मेमोरी को अपने-आप भरना या अपडेट करना शामिल हो सकता है. ज़्यादातर मामलों में, इस प्रोसेस को ऐप्लिकेशन से छिपा दिया जाता है. हालांकि, इसका मतलब है कि प्रोसेस के दौरान होने वाली गड़बड़ियां, सामान्य तौर पर "पुष्टि करें" कॉलबैक के ज़रिए डिलीवर की जा सकती हैं. बाइंडिंग का इस्तेमाल करने (और उसे पूरा करने) के लिए, कभी-कभी बहुत बाद में ऐसा किया जाता है.

ब्यौरा
पैरामीटर
[in] aServiceEpt
पसंदीदा Weave Service एंडपॉइंट के लिए, 64-बिट आइडेंटिफ़ायर का रेफ़रंस.
[in] aServiceMgr
सर्विस मैनेजर इंस्टेंस का पॉइंटर, जिसका इस्तेमाल सेवा टीयर को खोजने और उससे कनेक्ट करने के लिए किया जा सकता है.
[in] aAuthMode
कनेक्ट करने में इस्तेमाल करने के लिए, पुष्टि करने वाला मोड.
रिटर्न वैल्यू
WEAVE_NO_ERROR
सफलता पर.
WEAVE_ERROR_INVALID_ARGUMENT
अगर बाइंडिंग के बारे में साफ़ तौर पर नहीं बताया गया है.

शुरू करें

WEAVE_ERROR Init(
  WeaveConnection *aConnection
)

WeaveConnection के साथ, Binding ऑब्जेक्ट को शुरू करें.

ब्यौरा
पैरामीटर
[in] aConnection
बाइंडिंग के आधार के तौर पर इस्तेमाल करने के लिए, WeaveConnection का पॉइंटर..
रिटर्न वैल्यू
WEAVE_NO_ERROR
सफलता पर.
WEAVE_ERROR_INVALID_ARGUMENT
अगर बाइंडिंग के बारे में साफ़ तौर पर नहीं बताया गया है.

IsComplete

bool IsComplete(
  void
)

देखें कि बाइंडिंग पूरी हुई है या नहीं.

ब्यौरा
लौटाए गए सामान
अगर यह पूरी तरह से सही है, तो 'सही' है. अगर ऐसा नहीं है, तो 'गलत' है.
यह भी देखें:
CompleteRequest(ProtocolEngine *aEngine)

IsFree

bool IsFree(
  void
)

चेक का मतलब है बाइंडिंग फ़्री.

यहां "Free" का मतलब है, "इसमें पीयर नोड का तय किया गया आईडी है". IsFree() का मतलब यह समझा जाना चाहिए कि "इस पर Free() रहा है और तब से इसका इस्तेमाल नहीं किया गया है".

ब्यौरा
लौटाए गए सामान
अगर बाइंडिंग मुफ़्त है, तो 'सही' होगी, नहीं तो 'गलत'.

UncompleteRequest

void UncompleteRequest(
  void
)

बाइंडिंग की वजह अधूरी है.

मूल रूप से, इस तरीके को कॉल करने के बाद बाइंडिंग "अधूरा" स्थिति में होगी. हालांकि, ज़्यादा आसान तरीके से, ऐसी कोई भी ज़रूरी स्थिति जो बाइंडिंग में शामिल न हो, जैसे कि टीसीपी कनेक्शन को भी साफ़ किया जाना चाहिए. ऐप्लिकेशन, गड़बड़ी होने पर क्लीनअप के हिस्से के तौर पर UncompleteRequest() का अनुरोध कर सकते हैं.

यह भी देखें:
UncompleteRequest(WEAVE_ERROR )

UncompleteRequest

void UncompleteRequest(
  WEAVE_ERROR aErr
)

बाइंडिंग की वजह अधूरी है.

मूल रूप से, इस तरीके को कॉल करने के बाद बाइंडिंग "अधूरा" स्थिति में होगी. हालांकि, ज़्यादा आसान तरीके से, ऐसी कोई भी ज़रूरी स्थिति जो बाइंडिंग में शामिल न हो, जैसे कि टीसीपी कनेक्शन को भी साफ़ किया जाना चाहिए. ऐप्लिकेशन, गड़बड़ी होने पर क्लीनअप के हिस्से के तौर पर UncompleteRequest() का अनुरोध कर सकते हैं.

ब्यौरा
पैरामीटर
[in] aErr
अगर WEAVE_NO_ERROR नहीं है, तो मौजूदा कनेक्शन, अगर कोई है, तो उसे ग्रेसफ़ुली बंद करने के बजाय रद्द कर दिया जाएगा.
यह भी देखें:
UncompleteRequest(void)

~बाइंडिंग

virtual  ~Binding(
  void
)

बाइंडिंग ऑब्जेक्ट के लिए डिस्ट्रक्टर.

सभी आंतरिक स्थिति को हटा देता है और अगर ज़रूरी हो, तो खुले कनेक्शन को बंद कर देता है.