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

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

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

खास जानकारी

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

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

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

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

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

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

सार्वजनिक विशेषताएं

mAuthMode
WeaveAuthMode
Weave की पुष्टि करने वाला मोड इस्तेमाल करना है.
mConnection
इस बाइंडिंग में फ़िलहाल इस्तेमाल किए जा रहे Weave कनेक्शन का पॉइंटर.
mEngine
इस Binding से जुड़े 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

इस Binding से जुड़े ProtocolEngine ऑब्जेक्ट का पॉइंटर.

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

mPeerNodeId

uint64_t mPeerNodeId

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

(रीड ओनली)

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

mServiceMgr

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

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

(रीड ओनली)

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

mState

uint8_t mState

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

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

mTransport

uint8_t mTransport

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

(रीड ओनली)

mTransport के लिए संभावित वैल्यू, DMConstants.h में दी गई हैं.

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

बाइंडिंग

 Binding(
  void
)

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

सभी अंदरूनी स्थिति को हटाता है.

CompleteConfirm

void CompleteConfirm(
  WeaveConnection *aConnection
)

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

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

CompleteConfirm

void CompleteConfirm(
  StatusReport & aReport
)

बाइंड अनुरोध के पूरा न हो पाने को मैनेज करें.

ब्यौरा
पैरामीटर
[in] aReport
स्टेटस रिपोर्ट ऑब्जेक्ट का रेफ़रंस, जिसमें गड़बड़ी के बारे में बताया गया है.

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
अगर कनेक्शन शून्य है.

बिलिंग करें

void Finalize(
  void
)

"पूरा नहीं हुआ" और उसे मुक्त करना.

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

यह भी देखें:
पूरा हुआ(WEAVE_ERROR)

बिलिंग करें

void Finalize(
  WEAVE_ERROR aErr
)

"पूरा नहीं हुआ" और उसे मुक्त करना.

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

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

मुफ़्त

void Free(
  void
)

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

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

GetExchangeCtx

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

Binding से ExchangeContext ऑब्जेक्ट बनाएं.

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

IncompleteIndication

void IncompleteIndication(
  StatusReport & aReport
)

बाइंडिंग की गड़बड़ी को मैनेज करें.

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

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

Init

WEAVE_ERROR Init(
  const uint64_t & aPeerNodeId
)

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

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

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

Init

WEAVE_ERROR Init(
  const uint64_t & aPeerNodeId,
  uint8_t aTransport
)

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

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

Init

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

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

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

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

Init

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
)

चेक एक बाइंडिंग मुफ़्त है.

"मुफ़्त" यहां इसका मतलब है, "इसमें तय किया गया पीयर नोड है आईडी". IsFree() should be thought of as meaning &quot;has had 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
)

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

सभी इंटरनल स्टेटस को हटा देता है और ज़रूरी होने पर, खुले हुए कनेक्शन बंद कर देता है.