nl:: Weave:: Profiles:: DataManagement_Legacy:: ProtocolEngine
यह एक ऐब्सट्रैक्ट क्लास है.
#include <src/lib/profiles/data-management/Legacy/ProtocolEngine.h>
WDM प्रोटोकॉल इंजन क्लास.
खास जानकारी
डेटा मैनेजमेंट की किसी इकाई, क्लाइंट या पब्लिशर में प्रोटोकॉल इंजन कॉम्पोनेंट और डेटा मैनेजर कॉम्पोनेंट होता है. यह ऐब्सट्रैक्ट क्लास, प्रोटोकॉल इंजन की सामान्य सुविधाओं के बारे में बताती है.
इनहेरिटेंस
सीधे तौर पर मालूम सब-क्लास: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 सब-क्लास को लागू करना ज़रूरी है.
ब्यौरा | |||||
---|---|---|---|---|---|
पैरामीटर |
|
शुरू करें
virtual WEAVE_ERROR Init( WeaveExchangeManager *aExchangeMgr )
शुरू करें
virtual WEAVE_ERROR Init( WeaveExchangeManager *aExchangeMgr, uint32_t aResponseTimeout )
ProtocolEngine
ProtocolEngine( void )
UnbindRequest
void UnbindRequest( const uint64_t & aPeerNodeId )
अनुरोध करें कि बाइंडिंग को पहले जैसा करें और उसे बाइंडिंग टेबल से हटा दें.
जब बाइंडिंग "अनबाउंड" होती है, तो उस पर निर्भर सभी ट्रांज़ैक्शन को भी हटा दिया जाना चाहिए. इस बाइंडिंग से होने वाले सभी लेन-देन अपने-आप पूरे हो जाते हैं.
ब्यौरा | |||
---|---|---|---|
पैरामीटर |
|
UnbindRequest(cont uint64_t, WEAVE_ERROR)
UnbindRequest
void UnbindRequest( const uint64_t & aPeerNodeId, WEAVE_ERROR aErr )
अनुरोध करें कि बाइंडिंग को पहले जैसा करें और उसे बाइंडिंग टेबल से हटा दें.
जब बाइंडिंग "अनबाउंड" होती है, तो उस पर निर्भर सभी ट्रांज़ैक्शन को भी हटा दिया जाना चाहिए. इस बाइंडिंग से होने वाले सभी लेन-देन अपने-आप पूरे हो जाते हैं.
ब्यौरा | |||||
---|---|---|---|---|---|
पैरामीटर |
|
UnbindRequest(const uint64_t)
~प्रोटोकॉलइंजन
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 )