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)
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
स्टेटस रिपोर्ट ऑब्जेक्ट का रेफ़रंस, जिसमें गड़बड़ी की वजह के बारे में बताया गया है.
लौटाए गए सामान

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
स्टेटस रिपोर्ट ऑब्जेक्ट का रेफ़रंस, जिसमें गड़बड़ी की वजह के बारे में बताया गया है.

IncompleteIndication

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

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

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

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

शुरू करें

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
)

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

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

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

~प्रोटोकॉलइंजन

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
)