nl:: Weave:: Profiles:: DataManagement_Legacy:: Binding
#include <src/lib/profiles/data-management/Legacy/Binding.h>
बाइंडिंग क्लास, Weave का इस्तेमाल करके ऐप्लिकेशन की इकाई की ओर से कम्यूनिकेशन की स्थिति को मैनेज करती है.
खास जानकारी
जब कोई ऐप्लिकेशन किसी रिमोट इकाई से संपर्क करने के लिए Weave का इस्तेमाल करना चाहता है, तो उसके लिए कई तरह के विकल्प मौजूद होते हैं. बाइंडिंग क्लास में इन विकल्पों को शामिल किया जाता है और इन्हें इस तरह से व्यवस्थित किया जाता है कि आसान काम आसानी से किए जा सकते हैं और मुश्किल कॉन्टेंट को आसानी से समझा जा सकता है. इसमें शामिल विकल्पों में ये शामिल हैं:
- जाने-पहचाने पीयर नोड के साथ यूनिकास्ट यूडीपी कम्यूनिकेशन.
- "कोई भी" नोड वाला यूडीपी ब्रॉडकास्ट.
- जाने-पहचाने साथी नोड के साथ यूनिकास्ट WRMP कम्यूनिकेशन.
- पहले से मालूम पीयर नोड के साथ टीसीपी कम्यूनिकेशन.
- चीज़ों को सेट अप करने के लिए, सर्विस मैनेजर इंस्टेंस का इस्तेमाल करके, जाने-पहचाने सर्विस एंडपॉइंट के साथ टीसीपी कम्यूनिकेशन.
- पहले से मौजूद कनेक्शन पर आधारित टीसीपी कम्यूनिकेशन.
कंस्ट्रक्टर और डिस्ट्रक्टर |
|
---|---|
Binding(void)
बाइंडिंग ऑब्जेक्ट के लिए डिफ़ॉल्ट कंस्ट्रक्टर.
|
|
~Binding(void)
बाइंडिंग ऑब्जेक्ट के लिए डिस्ट्रक्टर.
|
सार्वजनिक टाइप |
|
---|---|
@165{
|
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 )
बाइंड करने के अनुरोध की पुष्टि को मैनेज करें.
ब्यौरा | |||
---|---|---|---|
पैरामीटर |
|
CompleteConfirm
void CompleteConfirm( StatusReport & aReport )
बाइंड अनुरोध की असफलता को मैनेज करना.
ब्यौरा | |||
---|---|---|---|
पैरामीटर |
|
CompleteConfirm
void CompleteConfirm( void )
बाइंड करने के अनुरोध की पुष्टि को मैनेज करें.
CompleteRequest
WEAVE_ERROR CompleteRequest( ProtocolEngine *aEngine )
बाइंडिंग को पूरा करने का अनुरोध करना.
बाइंडिंग को पूरा करना, कम से कम उन बाइंडिंग के लिए होता है जिनमें टीसीपी की ज़रूरत होती है. यह किसी खास ProtocolEngine ऑब्जेक्ट के लिए किया जाता है, जो ExchangeManager इंस्टेंस का ऐक्सेस देता है.
ब्यौरा | |||||||
---|---|---|---|---|---|---|---|
पैरामीटर |
|
||||||
रिटर्न वैल्यू |
|
||||||
लौटाए गए सामान |
अगर ऐसा नहीं है, तो कनेक्ट करने की कोशिश करते समय कोई WEAVE_ERROR मिला.
|
कनेक्ट करें
WEAVE_ERROR Connect( WeaveConnection *aConnection )
पूरा कनेक्शन देकर, टीसीपी बाइंडिंग को पूरा करें.
नई शुरू की गई टीसीपी बाइंडिंग का इस्तेमाल तब तक नहीं किया जा सकता, जब तक उसे पूरा नहीं कर लिया जाता. आम तौर पर, ऐसा मांग पर किया जाता है. ऐसा तब किया जाता है, जब ऐप्लिकेशन, मैसेज भेजने के लिए बाइंडिंग का इस्तेमाल करता है. हालांकि, Weave कनेक्शन देकर इसे साफ़ तौर पर पूरा भी किया जा सकता है.
ब्यौरा | |||||||
---|---|---|---|---|---|---|---|
पैरामीटर |
|
||||||
रिटर्न वैल्यू |
|
फ़ाइनल करें
void Finalize( void )
बाइंडिंग को "पूरा नहीं करना" और उसे खाली करना.
बाइंडिंग में ऐसी स्थिति हो सकती है जिसे क्लीनअप की ज़रूरत होती है.उदाहरण के लिए, कनेक्शन क्लोज़र, जिसे Uncomplete() तरीके से मैनेज किया जाता है. इसके अलावा, उसे Free() तरीके से शुरुआती स्थिति में ही बदला जा सकता है. सुविधा के लिए, इस तरीके में दोनों को शुरू किया जाता है.
यह भी देखें:फ़ाइनल करें(WEAVE_ERROR)
फ़ाइनल करें
void Finalize( WEAVE_ERROR aErr )
बाइंडिंग को "पूरा नहीं करना" और उसे खाली करना.
बाइंडिंग में ऐसी स्थिति हो सकती है जिसे क्लीनअप की ज़रूरत होती है.उदाहरण के लिए, कनेक्शन क्लोज़र, जिसे Uncomplete() तरीके से मैनेज किया जाता है. इसके अलावा, उसे Free() तरीके से शुरुआती स्थिति में ही बदला जा सकता है. सुविधा के लिए, इस तरीके में दोनों को शुरू किया जाता है.
ब्यौरा | |||
---|---|---|---|
पैरामीटर |
|
फ़ाइनल करें(void)
बिना किसी शुल्क के आज़माएं
void Free( void )
बाइंडिंग स्टेट हटाएं.
सभी बाइंडिंग स्टेट को बिना किसी शर्त के वापस उसकी मूल स्थिति में लाएं.
GetExchangeCtx
ExchangeContext * GetExchangeCtx( WeaveExchangeManager *aExchangeMgr, void *aAppState )
Binding के ज़रिए, ExchangeContext ऑब्जेक्ट बनाएं.
ब्यौरा | |||||
---|---|---|---|---|---|
पैरामीटर |
|
||||
लौटाए गए सामान |
ExchangeContext ऑब्जेक्ट के लिए पॉइंटर या पूरा न होने पर NULL.
|
IncompleteIndication
void IncompleteIndication( StatusReport & aReport )
बाइंडिंग की गड़बड़ी ठीक करें.
इस तरीके को शुरू किया जाता है.साथ ही, यह प्रोसेस पूरी होने के बाद बाइंडिंग के काम न करने पर, बाद में हाई-लेयर हैंडलर को शुरू करती है. उदाहरण के लिए, CompleteConfirm() को लागू करने के बाद, यह बताने वाले स्टेटस के साथ ऐसा होता है.
ब्यौरा | |||
---|---|---|---|
पैरामीटर |
|
CompleteConfirm(StatusReport &aReport).
शुरू करें
WEAVE_ERROR Init( const uint64_t & aPeerNodeId )
सिर्फ़ किसी नोड आईडी के साथ बाइंडिंग को शुरू करें.
इससे, कॉन्फ़िगर किए गए डिफ़ॉल्ट ट्रांसपोर्ट के साथ बाइंडिंग बनती है.
ब्यौरा | |||||
---|---|---|---|---|---|
पैरामीटर |
|
||||
रिटर्न वैल्यू |
|
शुरू करें
WEAVE_ERROR Init( const uint64_t & aPeerNodeId, uint8_t aTransport )
पीयर आईडी और ट्रांसपोर्ट के आधार पर बाइंडिंग ऑब्जेक्ट को शुरू करें.
ब्यौरा | |||||
---|---|---|---|---|---|
पैरामीटर |
|
||||
रिटर्न वैल्यू |
|
शुरू करें
WEAVE_ERROR Init( const uint64_t & aServiceEpt, WeaveServiceManager *aServiceMgr, WeaveAuthMode aAuthMode )
बाइंडिंग ऑब्जेक्ट को सर्विस एंडपॉइंट पर शुरू करें.
इस तरह से Nest सेवा पर किसी खास एंडपॉइंट से बाइंड किया जाता है. इस तरह की बाइंडिंग को कई चरणों में पूरा करने की प्रोसेस की ज़रूरत होती है. इसमें लोकल सर्विस डायरेक्ट्री कैश मेमोरी को अपने-आप भरना या अपडेट करना शामिल हो सकता है. ज़्यादातर मामलों में, इस प्रोसेस को ऐप्लिकेशन से छिपा दिया जाता है. हालांकि, इसका मतलब है कि प्रोसेस के दौरान होने वाली गड़बड़ियां, सामान्य तौर पर "पुष्टि करें" कॉलबैक के ज़रिए डिलीवर की जा सकती हैं. बाइंडिंग का इस्तेमाल करने (और उसे पूरा करने) के लिए, कभी-कभी बहुत बाद में ऐसा किया जाता है.
ब्यौरा | |||||||
---|---|---|---|---|---|---|---|
पैरामीटर |
|
||||||
रिटर्न वैल्यू |
|
शुरू करें
WEAVE_ERROR Init( WeaveConnection *aConnection )
WeaveConnection के साथ, Binding ऑब्जेक्ट को शुरू करें.
ब्यौरा | |||||
---|---|---|---|---|---|
पैरामीटर |
|
||||
रिटर्न वैल्यू |
|
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() का अनुरोध कर सकते हैं.
ब्यौरा | |||
---|---|---|---|
पैरामीटर |
|
UncompleteRequest(void)
~बाइंडिंग
virtual ~Binding( void )
बाइंडिंग ऑब्जेक्ट के लिए डिस्ट्रक्टर.
सभी आंतरिक स्थिति को हटा देता है और अगर ज़रूरी हो, तो खुले कनेक्शन को बंद कर देता है.