nl:: बुनें:: प्रोफाइल:: डेटा प्रबंधन_विरासत:: बाइंडिंग

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

बाध्यकारी वर्ग एक आवेदन Weave का उपयोग कर संस्था की ओर से संचार राज्य प्रबंधन करता है।

सारांश

जब कोई एप्लिकेशन किसी दूरस्थ निकाय के साथ संचार करने के लिए वीव का उपयोग करना चाहता है, तो कई प्रकार के विकल्प मौजूद होते हैं। बाध्यकारी वर्ग इन विकल्पों और इस तरह से उन्हें व्यवस्था corrals कि आसान सामान आसान है और अधिक कठिन सामान कम से कम विनयशील पर है। कवर किए गए विकल्पों में शामिल हैं:

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

निर्माता और विनाशक De

Binding (void)
के लिए डिफ़ॉल्ट निर्माता बाध्यकारी वस्तुओं।
~Binding (void)
के लिए नाशक बाइंडिंग वस्तुओं।

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

@165 {
kState_Incomplete = 0,
kState_Completing = 1,
kState_Complete = 2
}
एन्यूम
के सेट बाध्यकारी वस्तु राज्यों।

सार्वजनिक गुण

mAuthMode
WeaveAuthMode
बुनाई प्रमाणीकरण मोड का उपयोग किया जाना है।
mConnection
इस बाइंडिंग में वर्तमान में उपयोग में आने वाले वेव कनेक्शन के लिए एक पॉइंटर।
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)
एक पूर्ण कनेक्शन प्रदान करके TCP बाइंडिंग को पूरा करें।
Finalize (void)
void
"अपूर्ण" एक बाध्यकारी और इसे मुक्त करें।
Finalize ( WEAVE_ERROR aErr)
void
"अपूर्ण" एक बाध्यकारी और इसे मुक्त करें।
Free (void)
void
बाध्यकारी स्थिति साफ़ करें।
GetExchangeCtx ( WeaveExchangeManager *aExchangeMgr, void *aAppState)
एक निर्माण 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
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

बुनाई प्रमाणीकरण मोड का उपयोग किया जाना है।

(सिफ़ पढ़िये)

यह इस बाइंडिंग द्वारा शासित सभी संचारों में उपयोग किया जाने वाला प्रमाणीकरण मोड है।

एम कनेक्शन

WeaveConnection * mConnection

इस बाइंडिंग में वर्तमान में उपयोग में आने वाले वेव कनेक्शन के लिए एक पॉइंटर।

(सिफ़ पढ़िये)

टीसीपी बाइंडिंग को बल्ले से सीधे कनेक्शन के साथ शुरू किया जा सकता है या वे पूरा होने पर एक आवंटित कर सकते हैं।

मैं इंजन

ProtocolEngine * mEngine

करने के लिए एक सूचक ProtocolEngine इस से संबंधित वस्तु बाध्यकारी

एक बाइंडिंग आमतौर पर एक विशेष प्रोटोकॉल इंजन के संबंध में पूरी की जाती है, जिसका उपयोग ज्यादातर MessageLayer तक पहुँचने के तरीके के रूप में किया जाता है। यह वह जगह है जहां हम इसका ट्रैक रखते हैं।

mPeerNodeId

uint64_t mPeerNodeId

बाध्यकारी लक्ष्य की 64-बिट नोड आईडी।

(सिफ़ पढ़िये)

हर बाध्यकारी लक्ष्य इकाई है, जो यहां का नाम है है। एक वीव नोड आईडी के अतिरिक्त यह एक सेवा समापन बिंदु का नाम दे सकता है।

mServiceMgr

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

इस बाध्यकारी को पूरा करने में उपयोग करने के लिए (वैकल्पिक) ServiceManager ऑब्जेक्ट का सूचक।

(सिफ़ पढ़िये)

जब वीव सेवा के लिए बाध्य किया जाता है, तो एक 64-बिट सर्विस एंडपॉइंट आईडी को वीव नोड आईडी के स्थान पर आरंभीकरण समय पर आपूर्ति की जा सकती है। इस स्थिति में, बाइंडिंग को पूरा करने के लिए ServiceManager ऑब्जेक्ट की भी आवश्यकता होती है। सामान्य टीसीपी या डब्लूआरएमपी बाइंडिंग को सर्विसमैनेजर ऑब्जेक्ट की आवश्यकता नहीं होती है।

एमस्टेट

uint8_t mState

वर्तमान बाध्यकारी वस्तु राज्य।

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

एमट्रांसपोर्ट

uint8_t mTransport

परिवहन इस को पूरा करने में उपयोग करने के लिए बाध्यकारी

(सिफ़ पढ़िये)

mTransport के संभावित मान DMConstants.h में परिभाषित हैं।

सार्वजनिक समारोह

बाइंडिंग

 Binding(
  void
)

के लिए डिफ़ॉल्ट निर्माता बाध्यकारी वस्तुओं।

सभी आंतरिक स्थिति को साफ़ करता है।

पूर्ण पुष्टि करें

void CompleteConfirm(
  WeaveConnection *aConnection
)

एक बाध्य अनुरोध की पुष्टि संभाल लें।

विवरण
मापदंडों
[in] aConnection
एक सक्रिय करने के लिए एक सूचक WeaveConnection बाध्यकारी लक्ष्य करने के लिए।

पूर्ण पुष्टि करें

void CompleteConfirm(
  StatusReport & aReport
)

एक बाध्य अनुरोध की विफलता को संभालें।

विवरण
मापदंडों
[in] aReport
एक StatusReport ऑब्जेक्ट का संदर्भ जो विफलता का वर्णन करता है।

पूर्ण पुष्टि करें

void CompleteConfirm(
  void
)

एक बाध्य अनुरोध की पुष्टि संभाल लें।

पूरा अनुरोध

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
)

एक पूर्ण कनेक्शन प्रदान करके TCP बाइंडिंग को पूरा करें।

एक नए आरंभिक टीसीपी बाइंडिंग का उपयोग तब तक नहीं किया जा सकता जब तक कि यह पूरा न हो जाए। आम तौर पर यह मांग पर किया जाता है जब एप्लिकेशन संदेश भेजने के लिए बाध्यकारी का उपयोग करने का प्रयास करता है लेकिन इसे वीव कनेक्शन प्रदान करके भी स्पष्ट रूप से पूरा किया जा सकता है।

विवरण
मापदंडों
[in] aConnection
एक करने के लिए एक सूचक WeaveConnection बाध्यकारी पूरा करने के लिए इस्तेमाल किया।
वापसी मूल्य
WEAVE_NO_ERROR
सफलता पर।
WEAVE_ERROR_INCORRECT_STATE
यदि बाइंडिंग में पहले से ही कनेक्शन है।
WEAVE_ERROR_INVALID_ARGUMENT
यदि कनेक्शन NULL है।

अंतिम रूप

void Finalize(
  void
)

"अपूर्ण" एक बाध्यकारी और इसे मुक्त करें।

बाइंडिंग का कहना है कि सफाई की आवश्यकता है, कनेक्शन बंद है, जिनके अनुसार बस द्वारा अपने आरंभिक स्थिति में मंजूरी दे दी है के अलावा विधि Uncomplete () द्वारा नियंत्रित किया जाता जैसे हो सकता है नि: शुल्क () विधि। यह विधि, मुख्यतः सुविधा के लिए, दोनों का आह्वान करती है।

यह सभी देखें:
अंतिम रूप दें(WEAVE_ERROR)

अंतिम रूप

void Finalize(
  WEAVE_ERROR aErr
)

"अपूर्ण" एक बाध्यकारी और इसे मुक्त करें।

बाइंडिंग का कहना है कि सफाई की आवश्यकता है, कनेक्शन बंद है, जिनके अनुसार बस द्वारा अपने आरंभिक स्थिति में मंजूरी दे दी है के अलावा विधि Uncomplete () द्वारा नियंत्रित किया जाता जैसे हो सकता है नि: शुल्क () विधि। यह विधि, मुख्यतः सुविधा के लिए, दोनों का आह्वान करती है।

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

नि: शुल्क

void Free(
  void
)

बाध्यकारी स्थिति साफ़ करें।

बिना शर्त सभी बाध्यकारी राज्य को उसकी मूल स्थिति में वापस कर दें।

GetExchangeCtx

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

एक निर्माण ExchangeContext एक से वस्तु बाध्यकारी

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

अधूरा संकेत

void IncompleteIndication(
  StatusReport & aReport
)

एक बंधन की विफलता को संभालें।

इस विधि शुरू हो जाती है और बदले में,, आह्वान उच्च परत संचालकों जब बंधन के बाद पूरा होने के बाद विफल रहता है, यानी CompleteConfirm () एक स्थिति दर्शाने सफलता के साथ लागू किया गया है।

विवरण
मापदंडों
[in] aReport
StatusReport का एक संदर्भ वर्णन करता है कि क्या गलत हुआ।
यह सभी देखें:
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
वेव सर्विस एंडपॉइंट ऑफ़ इंटरेस्ट के लिए 64-बिट आइडेंटिफ़ायर का संदर्भ।
[in] aServiceMgr
सर्विस मैनेजर इंस्टेंस के लिए एक पॉइंटर जिसका उपयोग सर्विस टियर को देखने और उससे कनेक्ट करने के लिए किया जाता है।
[in] aAuthMode
कनेक्ट करने में उपयोग करने के लिए प्रमाणीकरण मोड।
वापसी मूल्य
WEAVE_NO_ERROR
सफलता पर।
WEAVE_ERROR_INVALID_ARGUMENT
यदि बाध्यकारी कम निर्दिष्ट है।

में इस

WEAVE_ERROR Init(
  WeaveConnection *aConnection
)

एक प्रारंभ बाध्यकारी एक साथ वस्तु WeaveConnection

विवरण
मापदंडों
[in] aConnection
एक करने के लिए एक सूचक WeaveConnection बंधन के लिए एक आधार के रूप में उपयोग करने के लिए ..
वापसी मूल्य
WEAVE_NO_ERROR
सफलता पर।
WEAVE_ERROR_INVALID_ARGUMENT
यदि बाध्यकारी कम निर्दिष्ट है।

तैयार है

bool IsComplete(
  void
)

जांचें कि क्या बाध्यकारी पूरा हो गया है।

विवरण
रिटर्न
सच है अगर यह पूर्ण है, अन्यथा झूठा है।
यह सभी देखें:
पूर्ण अनुरोध (प्रोटोकॉल इंजन * इंजन)

मुफ्त है

bool IsFree(
  void
)

चेक एक बंधन मुक्त है।

इस संदर्भ में "फ्री" का सीधा सा अर्थ है, "एक परिभाषित पीयर नोड आईडी है"। IsFree () के रूप में अर्थ के बारे में सोचा जाना चाहिए "पड़ा है नि: शुल्क () उस पर फोन किया और बाद से इस्तेमाल नहीं किया गया है"।

विवरण
रिटर्न
सच है अगर बंधन मुक्त है, अन्यथा झूठा है।

अधूरा अनुरोध

void UncompleteRequest(
  void
)

एक बंधन को अधूरा होने का कारण।

मूल रूप से, एक बाध्यकारी "अपूर्ण" स्थिति में होगा जब इस विधि को उस पर बुलाया गया है, लेकिन अधिक सूक्ष्म रूप से, बाध्यकारी में निहित कोई भी प्रासंगिक स्थिति, जैसे टीसीपी कनेक्शन, को भी साफ किया जाना चाहिए। आवेदन लागू विचार कर सकते हैं UncompleteRequest () त्रुटि पर सफाई के हिस्से के रूप।

यह सभी देखें:
अधूरा अनुरोध (WEAVE_ERROR)

अधूरा अनुरोध

void UncompleteRequest(
  WEAVE_ERROR aErr
)

एक बंधन को अधूरा होने का कारण।

मूल रूप से, एक बाध्यकारी "अपूर्ण" स्थिति में होगा जब इस विधि को उस पर बुलाया गया है, लेकिन अधिक सूक्ष्म रूप से, बाध्यकारी में निहित कोई भी प्रासंगिक स्थिति, जैसे टीसीपी कनेक्शन, को भी साफ किया जाना चाहिए। आवेदन लागू विचार कर सकते हैं UncompleteRequest () त्रुटि पर सफाई के हिस्से के रूप।

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

~बाध्यकारी

virtual  ~Binding(
  void
)

के लिए नाशक बाइंडिंग वस्तुओं।

सभी आंतरिक स्थिति को साफ़ करता है और, यदि आवश्यक हो, तो खुले कनेक्शन बंद कर देता है।