nl:: বুনা:: প্রোফাইল:: DataManagement_Legacy:: প্রোটোকল ইঞ্জিন
এটি একটি বিমূর্ত ক্লাস।#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] | প্রোটোকল ইঞ্জিনের একটি বাঁধাই টেবিল রয়েছে যে, যদি ইঞ্জিনটি কেবল সম্প্রচারের বিজ্ঞপ্তি প্রাপ্তির বাইরে যে কোনও কিছুর জন্য দায়ী হয়, সম্ভবত কমপক্ষে একটি এন্ট্রি থাকতে হবে। |
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) | একটি সক্রিয় উইভ সংযোগ ব্যবহার করে একটি বাঁধাইয়ের অনুরোধ করুন। |
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]
প্রোটোকল ইঞ্জিনের একটি বাঁধাই টেবিল রয়েছে যে, যদি ইঞ্জিনটি কেবল সম্প্রচারের বিজ্ঞপ্তি প্রাপ্তির বাইরে যে কোনও কিছুর জন্য দায়ী হয়, সম্ভবত কমপক্ষে একটি এন্ট্রি থাকতে হবে।
বাইন্ডিং সাধারণত নোড আইডি দ্বারা সূচিবদ্ধ হয়। এর অর্থ হ'ল প্রতিটি ইঞ্জিনের একটি প্রদত্ত পরিষেবা শেষ পয়েন্টে শুধুমাত্র একটি একক বাঁধাই থাকতে পারে।
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 ফেরত যা বাইন্ডিং আরম্ভ করতে ব্যর্থতা প্রতিফলিত করে। |
ওয়েভ ট্রান্সপোর্ট অপশন
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_NO_ERROR সাফল্যে বা WEAVE_ERROR_NO_MEMORY যদি বাঁধাই টেবিল পূর্ণ হয়। অন্যথায় বাইন্ডিং আরম্ভ করতে ব্যর্থতা প্রতিফলিত করে একটি ত্রুটি ফেরত দিন। |
অসম্পূর্ণ ইঙ্গিত
virtual void IncompleteIndication( Binding *aBinding, StatusReport & aReport )
একটি বাইন্ডিং ব্যর্থ হয়েছে এমন একটি ইঙ্গিত পরিচালনা করুন।
যখন একটি বাইন্ডিং অসম্পূর্ণ হয়ে যায়, অর্থাৎ যখন একটি TCP বাইন্ডিংয়ের জন্য সংযোগটি বন্ধ থাকে, তখন প্রোটোকল ইঞ্জিনকে অবশ্যই তার উপর নির্ভরশীল যেকোন লেনদেন ব্যর্থ করতে হবে, যার মধ্যে তাদের স্ট্যাটাস হ্যান্ডলারদের কল করা অন্তর্ভুক্ত। এছাড়াও, অসম্পূর্ণ ইঙ্গিতটি এই পদ্ধতির বিকল্প রূপ বাস্তবায়নকারী যেকোন সুপারক্লাস অবজেক্ট পর্যন্ত দেওয়া হয় যা একটি পিয়ার আইডি নেয়।
বিস্তারিত | |||||
---|---|---|---|---|---|
পরামিতি |
|
অসম্পূর্ণ ইঙ্গিত
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( 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)
~ প্রোটোকল ইঞ্জিন
virtual ~ProtocolEngine( void )
সুরক্ষিত ফাংশন
পরিষ্কার
void Clear( void )
ক্লিয়ারবাইন্ডিং টেবিল
void ClearBindingTable( void )
ক্লিয়ার ট্রানজ্যাকশন টেবিল
void ClearTransactionTable( void )
ডিকিউ লেনদেন
void DequeueTransaction( DMTransaction *aTransaction )
সারিবদ্ধ লেনদেন
WEAVE_ERROR EnqueueTransaction( DMTransaction *aTransaction, Binding *aBinding )
সারিবদ্ধ লেনদেন
WEAVE_ERROR EnqueueTransaction( DMTransaction *aTransaction )
ব্যর্থ লেনদেন
bool FailTransactions( Binding *aBinding, StatusReport & aReport )
চূড়ান্ত করা
virtual void Finalize( void )
বাইন্ডিং টেবিল চূড়ান্ত করুন
void FinalizeBindingTable( void )
লেনদেন সারণী চূড়ান্ত করুন
void FinalizeTransactionTable( void )
লেনদেন চূড়ান্ত করুন
void FinalizeTransactions( Binding *aBinding )
এক্সচেঞ্জসিটিএক্স থেকে
Binding * FromExchangeCtx( ExchangeContext *aExchangeCtx )
GetBinding
Binding * GetBinding( const uint64_t & aPeerNodeId )
নিউ বাইন্ডিং
Binding * NewBinding( void )
লেনদেন শুরু করুন
WEAVE_ERROR StartTransaction( DMTransaction *aTransaction, Binding *aBinding )
লেনদেন শুরু করুন
WEAVE_ERROR StartTransaction( DMTransaction *aTransaction )
স্ট্যাটাস রেসপন্স
WEAVE_ERROR StatusResponse( ExchangeContext *aExchangeCtx, StatusReport & aStatus )