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{
|
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 )
बाइंड अनुरोध की पुष्टि को मैनेज करें.
ब्यौरा | |||
---|---|---|---|
पैरामीटर |
|
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 )
"पूरा नहीं हुआ" और उसे मुक्त करना.
बाइंडिंग में ऐसी स्थिति हो सकती है जिसके लिए क्लीनअप की ज़रूरत होती है, उदाहरण के लिए कनेक्शन बंद करने की प्रोसेस को, Free() तरीके से शुरुआती स्थिति में ही हटाया जाता है. इसके अलावा, इसे Uncomplete() तरीके से मैनेज किया जाता है. ज़्यादातर सुविधा के लिए, इस तरीके में दोनों का इस्तेमाल किया जाता है.
यह भी देखें:पूरा हुआ(WEAVE_ERROR)
बिलिंग करें
void Finalize( WEAVE_ERROR aErr )
"पूरा नहीं हुआ" और उसे मुक्त करना.
बाइंडिंग में ऐसी स्थिति हो सकती है जिसके लिए क्लीनअप की ज़रूरत होती है, उदाहरण के लिए कनेक्शन बंद करने की प्रोसेस को, Free() तरीके से शुरुआती स्थिति में ही हटाया जाता है. इसके अलावा, इसे Uncomplete() तरीके से मैनेज किया जाता है. ज़्यादातर सुविधा के लिए, इस तरीके में दोनों का इस्तेमाल किया जाता है.
ब्यौरा | |||
---|---|---|---|
पैरामीटर |
|
पूरा करें(रद्द)
मुफ़्त
void Free( void )
बाइंडिंग स्टेट मिटाएं.
बिना किसी शर्त के सभी बाइंडिंग स्टेटस को उसकी मूल स्थिति में वापस ले आएं.
GetExchangeCtx
ExchangeContext * GetExchangeCtx( WeaveExchangeManager *aExchangeMgr, void *aAppState )
Binding से ExchangeContext ऑब्जेक्ट बनाएं.
ब्यौरा | |||||
---|---|---|---|---|---|
पैरामीटर |
|
||||
लौटाए जाने वाले प्रॉडक्ट |
किसी ExchangeContext ऑब्जेक्ट का पॉइंटर या फ़ेल होने पर शून्य.
|
IncompleteIndication
void IncompleteIndication( StatusReport & aReport )
बाइंडिंग की गड़बड़ी को मैनेज करें.
इस तरीके को शुरू किया जाता है और जब बाइंडिंग पूरा होने के बाद काम नहीं होता, तब ज़्यादा लेयर वाले हैंडलर शुरू किए जाते हैं. जैसे, CompleteConfirm() को शुरू किए जाने के बाद, पूरा होने की जानकारी देने वाली स्थिति.
ब्यौरा | |||
---|---|---|---|
पैरामीटर |
|
CompleteConfirm(StatusReport &aReport).
Init
WEAVE_ERROR Init( const uint64_t & aPeerNodeId )
सिर्फ़ नोड आईडी के साथ बाइंडिंग शुरू करें.
इससे, कॉन्फ़िगर किए गए डिफ़ॉल्ट ट्रांसपोर्ट के साथ बाइंडिंग होती है.
ब्यौरा | |||||
---|---|---|---|---|---|
पैरामीटर |
|
||||
रिटर्न वैल्यू |
|
Init
WEAVE_ERROR Init( const uint64_t & aPeerNodeId, uint8_t aTransport )
पीयर आईडी और ट्रांसपोर्ट के आधार पर बाइंडिंग ऑब्जेक्ट शुरू करें.
ब्यौरा | |||||
---|---|---|---|---|---|
पैरामीटर |
|
||||
रिटर्न वैल्यू |
|
Init
WEAVE_ERROR Init( const uint64_t & aServiceEpt, WeaveServiceManager *aServiceMgr, WeaveAuthMode aAuthMode )
सेवा एंडपॉइंट के लिए बाइंडिंग ऑब्जेक्ट शुरू करें.
Nest सेवा पर, किसी खास एंडपॉइंट से इस तरह बाइंड करने के लिए. इस तरह की बाइंडिंग के लिए, कई चरणों वाली प्रोसेस पूरी करने की ज़रूरत होती है. इसमें लोकल सर्विस डायरेक्ट्री की कैश मेमोरी में डेटा भरना या अपडेट करना शामिल हो सकता है. ज़्यादातर मामलों में, इस प्रोसेस को ऐप्लिकेशन से छिपाया जाता है. हालांकि, इसका मतलब यह होता है कि इस प्रोसेस के दौरान होने वाली गड़बड़ियां आम तौर पर, "पुष्टि करें" सेक्शन के ज़रिए दी जा सकती हैं बाइंडिंग का इस्तेमाल करने (और पूरा करने) के लिए, कभी-कभी लंबे समय के बाद कॉलबैक.
ब्यौरा | |||||||
---|---|---|---|---|---|---|---|
पैरामीटर |
|
||||||
रिटर्न वैल्यू |
|
Init
WEAVE_ERROR Init( WeaveConnection *aConnection )
WeaveConnection के साथ Binding ऑब्जेक्ट को शुरू करें.
ब्यौरा | |||||
---|---|---|---|---|---|
पैरामीटर |
|
||||
रिटर्न वैल्यू |
|
IsComplete
bool IsComplete( void )
देखें कि लिंक करने की प्रोसेस पूरी हुई है या नहीं.
ब्यौरा | |
---|---|
लौटाए जाने वाले प्रॉडक्ट |
सही है, नहीं तो गलत.
|
CompleteRequest(ProtocolEngine *aEngine)
IsFree
bool IsFree( void )
चेक एक बाइंडिंग मुफ़्त है.
"मुफ़्त" यहां इसका मतलब है, "इसमें तय किया गया पीयर नोड है आईडी". IsFree() should be thought of as meaning "has had Free() कॉल किया और उसके बाद से इसका इस्तेमाल नहीं किया गया".
ब्यौरा | |
---|---|
लौटाए जाने वाले प्रॉडक्ट |
सही है, अगर बाइंडिंग मुफ़्त है, नहीं तो गलत.
|
UncompleteRequest
void UncompleteRequest( void )
बाइंडिंग को अधूरा बनाने का कारण.
मौलिक रूप से, बाध्यकारी "अधूरा" इस तरीके के बाद इस तरीके को कॉल किया गया हो, लेकिन ज़्यादा संक्षेप में, कोई भी ऐसी प्रासंगिक स्थिति जो बाइंडिंग में शामिल न हो, जैसे कि टीसीपी कनेक्शन को भी खाली किया जाना चाहिए. ऐप्लिकेशन, गड़बड़ी होने पर क्लीनअप के हिस्से के रूप में UncompleteRequest() का इस्तेमाल कर सकते हैं.
यह भी देखें:UncompleteRequest(WEAVE_ERROR )
UncompleteRequest
void UncompleteRequest( WEAVE_ERROR aErr )
बाइंडिंग को अधूरा बनाने का कारण.
मौलिक रूप से, बाध्यकारी "अधूरा" इस तरीके के बाद इस तरीके को कॉल किया गया हो, लेकिन ज़्यादा संक्षेप में, कोई भी ऐसी प्रासंगिक स्थिति जो बाइंडिंग में शामिल न हो, जैसे कि टीसीपी कनेक्शन को भी खाली किया जाना चाहिए. ऐप्लिकेशन, गड़बड़ी होने पर क्लीनअप के हिस्से के रूप में UncompleteRequest() का इस्तेमाल कर सकते हैं.
ब्यौरा | |||
---|---|---|---|
पैरामीटर |
|
UncompleteRequest(void)
~बाइंडिंग
virtual ~Binding( void )
बाइंडिंग ऑब्जेक्ट को डिस्ट्रक्टर.
सभी इंटरनल स्टेटस को हटा देता है और ज़रूरी होने पर, खुले हुए कनेक्शन बंद कर देता है.