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)
GetBinding(const uint64_t & aPeerNodeId)
NewBinding(void)
StartTransaction(DMTransaction *aTransaction, Binding *aBinding)
StartTransaction(DMTransaction *aTransaction)
StatusResponse(ExchangeContext *aExchangeCtx, StatusReport & aStatus)

क्लास

nl::Weave::Profiles::DataManagement_Legacy::ProtocolEngine::DMTransaction

सुरक्षित किए गए एट्रिब्यूट

mBindingTable

Binding mBindingTable[kBindingTableSize]

ProtocolEngine में एक बाइंडिंग टेबल होती है, अगर ब्रॉडकास्ट की सूचनाएं पाने के अलावा किसी और काम के लिए इंजन ज़िम्मेदार होगा, तो हो सकता है कि उसमें कम से कम एक एंट्री होनी चाहिए.

बाइंडिंग को आम तौर पर नोड आईडी से इंडेक्स किया जाता है. इसका मतलब यह है कि हर इंजन में किसी दिए गए सर्विस एंडपॉइंट से सिर्फ़ एक बाइंडिंग हो सकती है.

WDM स्पेसिफ़िकेशन में "डिफ़ॉल्ट बाइंडिंग" का सिद्धांत है अगर कोई स्पष्ट गंतव्य नहीं दिया गया है, तो यह वह स्थान है जहां संदेश जाता है. इसका इस्तेमाल ज़्यादातर ऐसे बहुत आसान डिवाइसों में किया जाएगा जिनमें एक बाइंडिंग या कम बाइंडिंग होती हैं. अन्य कामों के लिए, यह सिर्फ़ पहली बाइंडिंग होगी.

mExchangeMgr

WeaveExchangeManager * mExchangeMgr

mResponseTimeout

uint32_t mResponseTimeout

mTransactionTable

TransactionTableEntry mTransactionTable[kTransactionTableSize]

सार्वजनिक फ़ंक्शन

BindConfirm

virtual WEAVE_ERROR BindConfirm(
  Binding *aBinding
)

बाइंड करने के अनुरोध के पूरा होने की पुष्टि को हैंडल करें.

बाइंडिंग की प्रोसेस पूरी होने के बाद, प्रोटोकॉल इंजन, ट्रांज़ैक्शन टेबल से गुज़रता है और उस बाइंडिंग पर निर्भर सभी ट्रांज़ैक्शन को शुरू करता है.

ब्यौरा
पैरामीटर
[in] aBinding
पूरी हो चुकी बाइंडिंग का पॉइंटर.
लौटाए जाने वाले प्रॉडक्ट
WEAVE_NO_ERROR सफलता पर. अगर ऐसा नहीं है, तो WEAVE_ERROR दिखाएं. इससे पता चलता है कि लेन-देन शुरू नहीं किया जा सका.

BindConfirm

virtual WEAVE_ERROR BindConfirm(
  Binding *aBinding,
  StatusReport & aReport
)

बाइंड करने का अनुरोध पूरा न होने की पुष्टि को हैंडल करें.

जब बाइंडिंग अनुरोध पूरा नहीं होता है, तब प्रोटोकॉल इंजन को ट्रांज़ैक्शन टेबल से गुज़रना होता है. साथ ही, बाइंडिंग के आधार पर सभी लेन-देन पूरे नहीं होते हैं.

ब्यौरा
पैरामीटर
[in] aBinding
विफल बाइंडिंग का पॉइंटर.
[in] aReport
Statusरिपोर्ट ऑब्जेक्ट का रेफ़रंस, जिसमें फ़ेल होने की वजह बताई गई है.
लौटाए जाने वाले प्रॉडक्ट

BindRequest

WEAVE_ERROR BindRequest(
  const uint64_t & aPeerNodeId,
  uint8_t aTransport
)

जाने-पहचाने पीयर नोड आईडी और ट्रांसपोर्ट स्पेसिफ़िकेशन का इस्तेमाल करके, बाइंडिंग का अनुरोध करें.

पीयर नोड आईडी और ट्रांसपोर्ट स्पेसिफ़िकेशन के आधार पर, यह अनुरोध उस पीयर के लिए बाइंडिंग सेट अप करता है. अगर ट्रांसपोर्ट टीसीपी है, तो ही बिडिंग पूरी करनी होगी. अगर पीयर के लिए बाइंडिंग पहले से मौजूद है, तो उसका फिर से इस्तेमाल किया जाता है.

ब्यौरा
पैरामीटर
[in] aPeerNodeId
मिलती-जुलती इकाई के 64-बिट नोड आईडी का रेफ़रंस, जो बाइंडिंग टारगेट है.
[in] aTransport
इस्तेमाल किया जाने वाला ट्रांसपोर्ट.
लौटाए जाने वाले प्रॉडक्ट
सफलता मिलने पर WEAVE_NO_ERROR या बाइंडिंग टेबल भर जाने पर WEAVE_ERROR_NO_MEMORY. ऐसा न होने पर, बाइंडिंग शुरू करने में गड़बड़ी दिखाने वाला WEAVE_ERROR दिखाएं.
यह भी देखें:
WeaveTransportOption

BindRequest

WEAVE_ERROR BindRequest(
  const uint64_t & aPeerNodeId
)

डिफ़ॉल्ट ट्रांसपोर्ट का इस्तेमाल करके, अपने ऐप्लिकेशन को किसी मिलते-जुलते ऐप्लिकेशन से बाइंड करें.

ब्यौरा
पैरामीटर
[in] aPeerNodeId
मिलती-जुलती इकाई के 64-बिट नोड आईडी का रेफ़रंस, जो बाइंडिंग टारगेट है.
लौटाए जाने वाले प्रॉडक्ट
WEAVE_NO_ERROR सफलता पर. अगर ऐसा नहीं है, तो बाइंड ऑपरेशन की गड़बड़ी दिखाने वाला WEAVE_ERROR दिखाएं.

BindRequest

WEAVE_ERROR BindRequest(
  nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager *aServiceMgr,
  WeaveAuthMode aAuthMode
)

BindRequest

WEAVE_ERROR BindRequest(
  WeaveConnection *aConnection
)

किसी ऐक्टिव Weave कनेक्शन का इस्तेमाल करके, बाइंडिंग का अनुरोध करें.

किसी मौजूदा और ओपन, कनेक्शन का इस्तेमाल करके भी बाइंडिंग शुरू की जा सकती है. ध्यान दें कि इस तरह से बनाई गई बाइंडिंग को पूरा करने की ज़रूरत नहीं होती है.

ब्यौरा
पैरामीटर
[in] aConnection
बाइंडिंग के लिए इस्तेमाल किया जाने वाला Weave कनेक्शन का पॉइंटर.
लौटाए जाने वाले प्रॉडक्ट
सफलता मिलने पर WEAVE_NO_ERROR या बाइंडिंग टेबल भर जाने पर WEAVE_ERROR_NO_MEMORY. ऐसा नहीं होने पर, लिंक करने की प्रोसेस शुरू करने में हुई गड़बड़ी दिखाने वाली गड़बड़ी का मैसेज दिखेगा.

IncompleteIndication

virtual void IncompleteIndication(
  Binding *aBinding,
  StatusReport & aReport
)

बाइंडिंग विफल होने के संकेत को हैंडल करें.

जब बाइंडिंग अधूरी हो जाती है, यानी जब टीसीपी बाइंडिंग के लिए कनेक्शन बंद होता है, तो प्रोटोकॉल इंजन इस पर निर्भर किसी भी लेन-देन को पूरा नहीं कर सकता. इसमें स्टेटस हैंडलर को कॉल करना भी शामिल है. साथ ही, पीयर आईडी लेने वाले इस तरीके के वैकल्पिक फ़ॉर्म को लागू करने वाले किसी भी सुपर क्लास ऑब्जेक्ट को अधूरा इंंडिकेशन भेजा जाता है.

ब्यौरा
पैरामीटर
[in] aBinding
विफल बाइंडिंग का पॉइंटर.
[in] aReport
Statusरिपोर्ट ऑब्जेक्ट का रेफ़रंस, जिसमें फ़ेल होने की वजह बताई गई है.

IncompleteIndication

virtual void IncompleteIndication(
  const uint64_t & aPeerNodeId,
  StatusReport & aReport
)=0

बाइंडिंग अधूरा होने के संकेत को हैंडल करें.

जिन ऊपरी लेयर को बाइंडिंग विफल होने की सूचना चाहिए उन्हें इस तरीके का इस्तेमाल करना चाहिए. इससे पीयर आईडी को स्थिति रिपोर्ट के साथ पास कर दिया जाता है. असल में, यह तरीका वर्चुअल तौर पर अमान्य है, इसलिए किसी भी DMClient या DMPublisher सब-क्लास को लागू करना होगा.

ब्यौरा
पैरामीटर
[in] aPeerNodeId
पीयर नोड या सेवा एंडपॉइंट के 64-बिट आईडी का रेफ़रंस, जो फ़ेल हो चुके बाइंडिंग का टारगेट है.
[in] aReport
Statusरिपोर्ट ऑब्जेक्ट का रेफ़रंस, जिसमें फ़ेल होने की वजह बताई गई है.

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
)

बाइंडिंग को पहले जैसा करने और बाइंडिंग टेबल से हटाने का अनुरोध करें.

जब बाइंडिंग "अनबाउंड" होती है ऐसे सभी लेन-देन भी हटा दिए जाने चाहिए जो इस पर निर्भर हैं. यह तरीका, इस बाइंडिंग से होने वाले सभी लेन-देन को अपने-आप पूरा करता है.

ब्यौरा
पैरामीटर
[in] aPeerNodeId
64-बिट नोड आईडी या सेवा एंडपॉइंट का रेफ़रंस, जो बाइंडिंग की पहचान करता है.
यह भी देखें:
UnbindRequest(const uint64_t, WEAVE_ERROR)

UnbindRequest

void UnbindRequest(
  const uint64_t & aPeerNodeId,
  WEAVE_ERROR aErr
)

बाइंडिंग को पहले जैसा करने और बाइंडिंग टेबल से हटाने का अनुरोध करें.

जब बाइंडिंग "अनबाउंड" होती है ऐसे सभी लेन-देन भी हटा दिए जाने चाहिए जो इस पर निर्भर हैं. यह तरीका, इस बाइंडिंग से होने वाले सभी लेन-देन को अपने-आप पूरा करता है.

ब्यौरा
पैरामीटर
[in] aPeerNodeId
64-बिट नोड आईडी या सेवा एंडपॉइंट का रेफ़रंस, जो बाइंडिंग की पहचान करता है.
[in] aErr
WEAVE_NO_ERROR अगर बाइंड नहीं किए गए इस अनुरोध का कोई खास वजह नहीं है, तो गड़बड़ी की वजह को आगे बढ़ा दिया जाएगा.
यह भी देखें:
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
)

StartTransaction

WEAVE_ERROR StartTransaction(
  DMTransaction *aTransaction
)

StatusResponse

WEAVE_ERROR StatusResponse(
  ExchangeContext *aExchangeCtx,
  StatusReport & aStatus
)