nl:: Weave:: Profiles:: DataManagement_Legacy:: ProtocolEngine
यह एक ऐब्सट्रैक्ट क्लास है.
#include <src/lib/profiles/data-management/Legacy/ProtocolEngine.h>
डब्ल्यूडीएम प्रोटोकॉल इंजन क्लास.
खास जानकारी
डेटा मैनेजमेंट इकाई, क्लाइंट या पब्लिशर में, प्रोटोकॉल इंजन कॉम्पोनेंट और डेटा मैनेजर कॉम्पोनेंट होता है. यह ऐब्स्ट्रैक्ट क्लास, प्रोटोकॉल इंजन की सामान्य सुविधाएं दिखाती है.
इनहेरिटेंस
पहले से मालूम सब-क्लास:nl::Weave::Profiles::DataManagement_Legacy::DMClient
nl::Weave::Profiles::DataManagement_Legacy::DMPublisher
कंस्ट्रक्टर और डिस्ट्रक्टर |
|
---|---|
ProtocolEngine(void)
|
|
~ProtocolEngine(void)
|
सुरक्षित किए गए एट्रिब्यूट |
|
---|---|
mBindingTable[kBindingTableSize]
|
ProtocolEngine में एक बाइंडिंग टेबल होती है, अगर ब्रॉडकास्ट की सूचनाएं पाने के अलावा किसी और काम के लिए इंजन ज़िम्मेदार होगा, तो हो सकता है कि उसमें कम से कम एक एंट्री होनी चाहिए.
|
mExchangeMgr
|
|
mResponseTimeout
|
uint32_t
|
mTransactionTable[kTransactionTableSize]
|
सार्वजनिक फ़ंक्शन |
|
---|---|
BindConfirm(Binding *aBinding)
|
virtual WEAVE_ERROR
बाइंड करने के अनुरोध के पूरा होने की पुष्टि को हैंडल करें.
|
BindConfirm(Binding *aBinding, StatusReport & aReport)
|
virtual WEAVE_ERROR
बाइंड करने का अनुरोध पूरा न होने की पुष्टि को हैंडल करें.
|
BindRequest(const uint64_t & aPeerNodeId, uint8_t aTransport)
|
जाने-पहचाने पीयर नोड आईडी और ट्रांसपोर्ट स्पेसिफ़िकेशन का इस्तेमाल करके, बाइंडिंग का अनुरोध करें.
|
BindRequest(const uint64_t & aPeerNodeId)
|
डिफ़ॉल्ट ट्रांसपोर्ट का इस्तेमाल करके, अपने ऐप्लिकेशन को किसी मिलते-जुलते ऐप्लिकेशन से बाइंड करें.
|
BindRequest(nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager *aServiceMgr, WeaveAuthMode aAuthMode)
|
|
BindRequest(WeaveConnection *aConnection)
|
किसी ऐक्टिव Weave कनेक्शन का इस्तेमाल करके, बाइंडिंग का अनुरोध करें.
|
IncompleteIndication(Binding *aBinding, StatusReport & aReport)
|
virtual void
बाइंडिंग विफल होने के संकेत को हैंडल करें.
|
IncompleteIndication(const uint64_t & aPeerNodeId, StatusReport & aReport)=0
|
virtual void
बाइंडिंग अधूरा होने के संकेत को हैंडल करें.
|
Init(WeaveExchangeManager *aExchangeMgr)
|
virtual WEAVE_ERROR
|
Init(WeaveExchangeManager *aExchangeMgr, uint32_t aResponseTimeout)
|
virtual WEAVE_ERROR
|
UnbindRequest(const uint64_t & aPeerNodeId)
|
void
बाइंडिंग को पहले जैसा करने और बाइंडिंग टेबल से हटाने का अनुरोध करें.
|
UnbindRequest(const uint64_t & aPeerNodeId, WEAVE_ERROR aErr)
|
void
बाइंडिंग को पहले जैसा करने और बाइंडिंग टेबल से हटाने का अनुरोध करें.
|
सुरक्षित फ़ंक्शन |
|
---|---|
Clear(void)
|
void
|
ClearBindingTable(void)
|
void
|
ClearTransactionTable(void)
|
void
|
DequeueTransaction(DMTransaction *aTransaction)
|
void
|
EnqueueTransaction(DMTransaction *aTransaction, Binding *aBinding)
|
|
EnqueueTransaction(DMTransaction *aTransaction)
|
|
FailTransactions(Binding *aBinding, StatusReport & aReport)
|
bool
|
Finalize(void)
|
virtual void
|
FinalizeBindingTable(void)
|
void
|
FinalizeTransactionTable(void)
|
void
|
FinalizeTransactions(Binding *aBinding)
|
void
|
FromExchangeCtx(ExchangeContext *aExchangeCtx)
|
Binding *
|
GetBinding(const uint64_t & aPeerNodeId)
|
Binding *
|
NewBinding(void)
|
Binding *
|
StartTransaction(DMTransaction *aTransaction, Binding *aBinding)
|
|
StartTransaction(DMTransaction *aTransaction)
|
|
StatusResponse(ExchangeContext *aExchangeCtx, StatusReport & aStatus)
|
क्लास |
|
---|---|
nl:: |
सुरक्षित किए गए एट्रिब्यूट
mBindingTable
Binding mBindingTable[kBindingTableSize]
ProtocolEngine में एक बाइंडिंग टेबल होती है, अगर ब्रॉडकास्ट की सूचनाएं पाने के अलावा किसी और काम के लिए इंजन ज़िम्मेदार होगा, तो हो सकता है कि उसमें कम से कम एक एंट्री होनी चाहिए.
बाइंडिंग को आम तौर पर नोड आईडी से इंडेक्स किया जाता है. इसका मतलब यह है कि हर इंजन में किसी दिए गए सर्विस एंडपॉइंट से सिर्फ़ एक बाइंडिंग हो सकती है.
WDM स्पेसिफ़िकेशन में "डिफ़ॉल्ट बाइंडिंग" का सिद्धांत है अगर कोई स्पष्ट गंतव्य नहीं दिया गया है, तो यह वह स्थान है जहां संदेश जाता है. इसका इस्तेमाल ज़्यादातर ऐसे बहुत आसान डिवाइसों में किया जाएगा जिनमें एक बाइंडिंग या कम बाइंडिंग होती हैं. अन्य कामों के लिए, यह सिर्फ़ पहली बाइंडिंग होगी.
mExchangeMgr
WeaveExchangeManager * mExchangeMgr
mResponseTimeout
uint32_t mResponseTimeout
mTransactionTable
TransactionTableEntry mTransactionTable[kTransactionTableSize]
सार्वजनिक फ़ंक्शन
BindConfirm
virtual WEAVE_ERROR BindConfirm( Binding *aBinding )
बाइंड करने के अनुरोध के पूरा होने की पुष्टि को हैंडल करें.
बाइंडिंग की प्रोसेस पूरी होने के बाद, प्रोटोकॉल इंजन, ट्रांज़ैक्शन टेबल से गुज़रता है और उस बाइंडिंग पर निर्भर सभी ट्रांज़ैक्शन को शुरू करता है.
ब्यौरा | |||
---|---|---|---|
पैरामीटर |
|
||
लौटाए जाने वाले प्रॉडक्ट |
WEAVE_NO_ERROR सफलता पर. अगर ऐसा नहीं है, तो WEAVE_ERROR दिखाएं. इससे पता चलता है कि लेन-देन शुरू नहीं किया जा सका.
|
BindConfirm
virtual WEAVE_ERROR BindConfirm( Binding *aBinding, StatusReport & aReport )
बाइंड करने का अनुरोध पूरा न होने की पुष्टि को हैंडल करें.
जब बाइंडिंग अनुरोध पूरा नहीं होता है, तब प्रोटोकॉल इंजन को ट्रांज़ैक्शन टेबल से गुज़रना होता है. साथ ही, बाइंडिंग के आधार पर सभी लेन-देन पूरे नहीं होते हैं.
ब्यौरा | |||||
---|---|---|---|---|---|
पैरामीटर |
|
||||
लौटाए जाने वाले प्रॉडक्ट |
BindRequest
WEAVE_ERROR BindRequest( const uint64_t & aPeerNodeId, uint8_t aTransport )
जाने-पहचाने पीयर नोड आईडी और ट्रांसपोर्ट स्पेसिफ़िकेशन का इस्तेमाल करके, बाइंडिंग का अनुरोध करें.
पीयर नोड आईडी और ट्रांसपोर्ट स्पेसिफ़िकेशन के आधार पर, यह अनुरोध उस पीयर के लिए बाइंडिंग सेट अप करता है. अगर ट्रांसपोर्ट टीसीपी है, तो ही बिडिंग पूरी करनी होगी. अगर पीयर के लिए बाइंडिंग पहले से मौजूद है, तो उसका फिर से इस्तेमाल किया जाता है.
ब्यौरा | |||||
---|---|---|---|---|---|
पैरामीटर |
|
||||
लौटाए जाने वाले प्रॉडक्ट |
सफलता मिलने पर WEAVE_NO_ERROR या बाइंडिंग टेबल भर जाने पर WEAVE_ERROR_NO_MEMORY. ऐसा न होने पर, बाइंडिंग शुरू करने में गड़बड़ी दिखाने वाला WEAVE_ERROR दिखाएं.
|
WeaveTransportOption
BindRequest
WEAVE_ERROR BindRequest( const uint64_t & aPeerNodeId )
डिफ़ॉल्ट ट्रांसपोर्ट का इस्तेमाल करके, अपने ऐप्लिकेशन को किसी मिलते-जुलते ऐप्लिकेशन से बाइंड करें.
ब्यौरा | |||
---|---|---|---|
पैरामीटर |
|
||
लौटाए जाने वाले प्रॉडक्ट |
WEAVE_NO_ERROR सफलता पर. अगर ऐसा नहीं है, तो बाइंड ऑपरेशन की गड़बड़ी दिखाने वाला WEAVE_ERROR दिखाएं.
|
BindRequest
WEAVE_ERROR BindRequest( nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager *aServiceMgr, WeaveAuthMode aAuthMode )
BindRequest
WEAVE_ERROR BindRequest( WeaveConnection *aConnection )
किसी ऐक्टिव Weave कनेक्शन का इस्तेमाल करके, बाइंडिंग का अनुरोध करें.
किसी मौजूदा और ओपन, कनेक्शन का इस्तेमाल करके भी बाइंडिंग शुरू की जा सकती है. ध्यान दें कि इस तरह से बनाई गई बाइंडिंग को पूरा करने की ज़रूरत नहीं होती है.
ब्यौरा | |||
---|---|---|---|
पैरामीटर |
|
||
लौटाए जाने वाले प्रॉडक्ट |
सफलता मिलने पर WEAVE_NO_ERROR या बाइंडिंग टेबल भर जाने पर WEAVE_ERROR_NO_MEMORY. ऐसा नहीं होने पर, लिंक करने की प्रोसेस शुरू करने में हुई गड़बड़ी दिखाने वाली गड़बड़ी का मैसेज दिखेगा.
|
IncompleteIndication
virtual void IncompleteIndication( Binding *aBinding, StatusReport & aReport )
बाइंडिंग विफल होने के संकेत को हैंडल करें.
जब बाइंडिंग अधूरी हो जाती है, यानी जब टीसीपी बाइंडिंग के लिए कनेक्शन बंद होता है, तो प्रोटोकॉल इंजन इस पर निर्भर किसी भी लेन-देन को पूरा नहीं कर सकता. इसमें स्टेटस हैंडलर को कॉल करना भी शामिल है. साथ ही, पीयर आईडी लेने वाले इस तरीके के वैकल्पिक फ़ॉर्म को लागू करने वाले किसी भी सुपर क्लास ऑब्जेक्ट को अधूरा इंंडिकेशन भेजा जाता है.
ब्यौरा | |||||
---|---|---|---|---|---|
पैरामीटर |
|
IncompleteIndication
virtual void IncompleteIndication( const uint64_t & aPeerNodeId, StatusReport & aReport )=0
बाइंडिंग अधूरा होने के संकेत को हैंडल करें.
जिन ऊपरी लेयर को बाइंडिंग विफल होने की सूचना चाहिए उन्हें इस तरीके का इस्तेमाल करना चाहिए. इससे पीयर आईडी को स्थिति रिपोर्ट के साथ पास कर दिया जाता है. असल में, यह तरीका वर्चुअल तौर पर अमान्य है, इसलिए किसी भी DMClient या DMPublisher सब-क्लास को लागू करना होगा.
ब्यौरा | |||||
---|---|---|---|---|---|
पैरामीटर |
|
Init
virtual WEAVE_ERROR Init( WeaveExchangeManager *aExchangeMgr )
Init
virtual WEAVE_ERROR Init( WeaveExchangeManager *aExchangeMgr, uint32_t aResponseTimeout )
ProtocolEngine
ProtocolEngine( void )
UnbindRequest
void UnbindRequest( const uint64_t & aPeerNodeId )
बाइंडिंग को पहले जैसा करने और बाइंडिंग टेबल से हटाने का अनुरोध करें.
जब बाइंडिंग "अनबाउंड" होती है ऐसे सभी लेन-देन भी हटा दिए जाने चाहिए जो इस पर निर्भर हैं. यह तरीका, इस बाइंडिंग से होने वाले सभी लेन-देन को अपने-आप पूरा करता है.
ब्यौरा | |||
---|---|---|---|
पैरामीटर |
|
UnbindRequest(const uint64_t, WEAVE_ERROR)
UnbindRequest
void UnbindRequest( const uint64_t & aPeerNodeId, WEAVE_ERROR aErr )
बाइंडिंग को पहले जैसा करने और बाइंडिंग टेबल से हटाने का अनुरोध करें.
जब बाइंडिंग "अनबाउंड" होती है ऐसे सभी लेन-देन भी हटा दिए जाने चाहिए जो इस पर निर्भर हैं. यह तरीका, इस बाइंडिंग से होने वाले सभी लेन-देन को अपने-आप पूरा करता है.
ब्यौरा | |||||
---|---|---|---|---|---|
पैरामीटर |
|
UnbindRequest(const uint64_t)
~ProtocolEngine
virtual ~ProtocolEngine( void )
सुरक्षित फ़ंक्शन
मिटाएं
void Clear( void )
ClearBindingTable
void ClearBindingTable( void )
ClearTransactionTable
void ClearTransactionTable( void )
DequeueTransaction
void DequeueTransaction( DMTransaction *aTransaction )
EnqueueTransaction
WEAVE_ERROR EnqueueTransaction( DMTransaction *aTransaction, Binding *aBinding )
EnqueueTransaction
WEAVE_ERROR EnqueueTransaction( DMTransaction *aTransaction )
FailTransactions
bool FailTransactions( Binding *aBinding, StatusReport & aReport )
बिलिंग करें
virtual void Finalize( void )
FinalizeBindingTable
void FinalizeBindingTable( void )
FinalizeTransactionTable
void FinalizeTransactionTable( void )
FinalizeTransactions
void FinalizeTransactions( Binding *aBinding )
FromExchangeCtx
Binding * FromExchangeCtx( ExchangeContext *aExchangeCtx )
GetBinding
Binding * GetBinding( const uint64_t & aPeerNodeId )
NewBinding
Binding * NewBinding( void )
StartTransaction
WEAVE_ERROR StartTransaction( DMTransaction *aTransaction, Binding *aBinding )