nl:: Weave:: Profiles:: DataManagement_Legacy:: Binding
#include <src/lib/profiles/data-management/Legacy/Binding.h>
বাইন্ডিং ক্লাস Weave ব্যবহার করে কোনও অ্যাপ্লিকেশন এন্টিটির হয়ে কমিউনিকেশন স্টেট ম্যানেজ করে।
সারাংশ
কোনও অ্যাপ্লিকেশন রিমোট এন্টিটির সাথে যোগাযোগ করার জন্য Weave ব্যবহার করতে চাইলে, তার জন্য অনেক বিকল্প থাকে। বাইন্ডিং ক্লাস এইসব বিকল্পকে একত্রিত করে এবং এমনভাবে সাজায় যাতে সহজ কাজগুলি সহজে এবং কঠিন কাজগুলি অন্তত সমাধানযোগ্য হয়। যেসব বিকল্প কভার করা হয়েছে তার মধ্যে রয়েছে:
- পরিচিত পিয়ার নোডের সাথে ইউনিকাস্ট UDP কমিউনিকেশন।
- "যেকোনও" নোডের সাথে UDP ব্রডকাস্ট।
- পরিচিত পিয়ার নোডের সাথে ইউনিকাস্ট WRMP কমিউনিকেশন।
- পরিচিত পিয়ার নোডের সাথে TCP কমিউনিকেশন।
- সেট-আপ করার জন্য সার্ভিস ম্যানেজার ইনস্ট্যান্স ব্যবহার করে পরিচিত সার্ভিস এন্ডপয়েন্টের সাথে TCP কমিউনিকেশন।
- আগে থেকে তৈরি কানেকশনের ভিত্তিতে TCP কমিউনিকেশন।
কনস্ট্রাক্টর ও ডেস্ট্রাক্টর |
|
|---|---|
Binding(void)
Binding অবজেক্টের জন্য ডিফল্ট কনস্ট্রাক্টর।
|
|
~Binding(void)
Binding অবজেক্টের জন্য ডেস্ট্রাক্টর।
|
পাবলিক প্রকার |
|
|---|---|
@165{
|
enum Binding অবজেক্ট স্ট্যাটাসের সেট। |
পাবলিক অ্যাট্রিবিউট |
|
|---|---|
mAuthMode
|
WeaveAuthMode
Weave যাচাইকরণ মোড ব্যবহার করা হবে।
|
mConnection
|
এই বাইন্ডিংয়ে বর্তমানে ব্যবহার করা Weave কানেকশনের একটি পয়েন্টার।
|
mEngine
|
এই Binding-এর সাথে সম্পর্কিত ProtocolEngine অবজেক্টের একটি পয়েন্টার।
|
mPeerNodeId
|
uint64_t
বাইন্ডিং টার্গেটের ৬৪-বিট নোড আইডি।
|
mServiceMgr
|
এই বাইন্ডিং সম্পূর্ণ করার জন্য ব্যবহার করার জন্য (ঐচ্ছিক) ServiceManager অবজেক্টের একটি পয়েন্টার।
|
mState
|
uint8_t
বর্তমান Binding অবজেক্টের স্ট্যাটাস।
|
mTransport
|
uint8_t
এই বাইন্ডিং সম্পূর্ণ করতে যে ট্রান্সপোর্ট ব্যবহার করা হবে।
|
পাবলিক ফাংশন |
|
|---|---|
CompleteConfirm(WeaveConnection *aConnection)
|
void
বাইন্ড অনুরোধের কনফার্মেশন ম্যানেজ করুন।
|
CompleteConfirm(StatusReport & aReport)
|
void
বাইন্ড অনুরোধের ব্যর্থতা ম্যানেজ করুন।
|
CompleteConfirm(void)
|
void
বাইন্ড অনুরোধের কনফার্মেশন ম্যানেজ করুন।
|
CompleteRequest(ProtocolEngine *aEngine)
|
বাইন্ডিং সম্পূর্ণ করার অনুরোধ।
|
Connect(WeaveConnection *aConnection)
|
সম্পূর্ণ কানেকশন প্রদান করে TCP বাইন্ডিং সম্পূর্ণ করুন।
|
Finalize(void)
|
void
"আনকমপ্লিট" বাইন্ডিং এবং এটি ফ্রি করুন।
|
Finalize(WEAVE_ERROR aErr)
|
void
"আনকমপ্লিট" বাইন্ডিং এবং এটি ফ্রি করুন।
|
Free(void)
|
void
বাইন্ডিং স্টেট মুছে দিন।
|
GetExchangeCtx(WeaveExchangeManager *aExchangeMgr, void *aAppState)
|
Binding থেকে একটি ExchangeContext অবজেক্ট তৈরি করুন।
|
IncompleteIndication(StatusReport & aReport)
|
void
বাইন্ডিংয়ের ব্যর্থতা ম্যানেজ করুন।
|
Init(const uint64_t & aPeerNodeId)
|
শুধুমাত্র একটি নোড আইডি দিয়ে Binding শুরু করুন।
|
Init(const uint64_t & aPeerNodeId, uint8_t aTransport)
|
পিয়ার আইডি ও ট্রান্সপোর্টের উপর ভিত্তি করে বাইন্ডিং অবজেক্ট শুরু করুন।
|
Init(const uint64_t & aServiceEpt, WeaveServiceManager *aServiceMgr, WeaveAuthMode aAuthMode)
|
পরিষেবা এন্ডপয়েন্টে বাইন্ডিং অবজেক্ট ইনিশিয়ালাইজ করুন।
|
Init(WeaveConnection *aConnection)
|
WeaveConnection-এর সাথে Binding অবজেক্ট শুরু করুন।
|
IsComplete(void)
|
bool
বাইন্ডিং সম্পূর্ণ হয়েছে কিনা তা চেক করুন।
|
IsFree(void)
|
bool
বাইন্ডিং ফ্রি কিনা তা চেক করুন।
|
UncompleteRequest(void)
|
void
বাইন্ডিং অসম্পূর্ণ থেকে যায়।
|
UncompleteRequest(WEAVE_ERROR aErr)
|
void
বাইন্ডিং অসম্পূর্ণ থেকে যায়।
|
পাবলিক প্রকার
@১৬৫
@165
Binding অবজেক্ট স্ট্যাটাসের সেট।
| প্রপার্টি | |
|---|---|
kState_Complete
|
Binding-এর স্ট্যাটাস যা সম্পূর্ণ এবং ব্যবহারের জন্য প্রস্তুত। |
kState_Completing
|
বাইন্ডিং-এর স্ট্যাটাস যা সম্পূর্ণ হওয়ার প্রসেসে রয়েছে। |
kState_Incomplete
|
বাইন্ডিং-এর প্রাথমিক (এবং চূড়ান্ত) অবস্থা। |
পাবলিক অ্যাট্রিবিউট
mAuthMode
WeaveAuthMode mAuthMode
Weave যাচাইকরণ মোড ব্যবহার করা হবে।
(READ_ONLY)
এই বাইন্ডিং দ্বারা পরিচালিত সব কমিউনিকেশনে এই যাচাইকরণ মোড ব্যবহার করা হয়।
mConnection
WeaveConnection * mConnection
এই বাইন্ডিংয়ে বর্তমানে ব্যবহার করা Weave কানেকশনের একটি পয়েন্টার।
(শুধু পড়া যাবে)
TCP বাইন্ডিং কোনও কানেকশনের সাথে সাথে সাথে শুরু করা যেতে পারে অথবা সম্পূর্ণ হওয়ার সময় একটি বরাদ্দ করা যেতে পারে।
mEngine
ProtocolEngine * mEngine
এই Binding-এর সাথে সম্পর্কিত ProtocolEngine অবজেক্টের একটি পয়েন্টার।
একটি নির্দিষ্ট প্রোটোকল ইঞ্জিনের সাপেক্ষে সাধারণত একটি বাইন্ডিং সম্পূর্ণ হয়, যা বেশিরভাগই MessageLayer অ্যাক্সেস করার উপায় হিসাবে ব্যবহৃত হয়। আমরা এখানে এটি ট্র্যাক করি।
mPeerNodeId
uint64_t mPeerNodeId
বাইন্ডিং টার্গেটের ৬৪-বিট নোড আইডি।
(শুধু পড়া যাবে)
প্রতিটি বাইন্ডিং-এর একটি টার্গেট এন্টিটি থাকে, যার নাম এখানে দেওয়া আছে। Weave নোড আইডি ছাড়াও এটি কোনও পরিষেবা এন্ডপয়েন্টের নাম হতে পারে।
mServiceMgr
nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager * mServiceMgr
এই বাইন্ডিং সম্পূর্ণ করার জন্য ব্যবহার করার জন্য (ঐচ্ছিক) ServiceManager অবজেক্টের একটি পয়েন্টার।
(শুধু পড়া যাবে)
Weave পরিষেবার সাথে বাইন্ডিং করার সময়, Weave নোড আইডির পরিবর্তে ইনিশিয়ালাইজেশনের সময় ৬৪-বিট পরিষেবা এন্ডপয়েন্ট আইডি প্রদান করা হতে পারে। এই ক্ষেত্রে, বাইন্ডিং সম্পূর্ণ করার জন্য একটি ServiceManager অবজেক্টও প্রয়োজন। সাধারণ TCP বা WRMP বাইন্ডিংয়ের জন্য ServiceManager অবজেক্টের প্রয়োজন হয় না।
mState
uint8_t mState
বর্তমান Binding অবজেক্টের স্ট্যাটাস।
একবারে শুধুমাত্র একটি "সম্পূর্ণ" অপারেশন চালানো যেতে পারে এবং যেকোনও ক্ষেত্রে, আপনি যদি সম্পূর্ণ করা বাইন্ডিং সম্পূর্ণ করতে বলেন, তাহলে এটি অবিলম্বে কনফার্ম ফাংশনকে কল করে। নিচের স্টেট ভেরিয়েবল বর্তমান স্টেট ট্র্যাক করে এবং লকআউট হিসেবে কাজ করে।
mTransport
uint8_t mTransport
এই বাইন্ডিং সম্পূর্ণ করতে যে ট্রান্সপোর্ট ব্যবহার করা হবে।
(শুধু পড়া যাবে)
mTransport-এর সম্ভাব্য ভ্যালু DMConstants.h-এ উল্লেখ করা আছে।
পাবলিক ফাংশন
CompleteConfirm
void CompleteConfirm( WeaveConnection *aConnection )
বাইন্ড অনুরোধের কনফার্মেশন ম্যানেজ করুন।
| বিবরণ | |||
|---|---|---|---|
| প্যারামিটারগুলি |
|
||
CompleteConfirm
void CompleteConfirm( StatusReport & aReport )
বাইন্ড অনুরোধের ব্যর্থতা ম্যানেজ করুন।
| বিবরণ | |||
|---|---|---|---|
| প্যারামিটারগুলি |
|
||
CompleteConfirm
void CompleteConfirm( void )
বাইন্ড অনুরোধের কনফার্মেশন ম্যানেজ করুন।
CompleteRequest
WEAVE_ERROR CompleteRequest( ProtocolEngine *aEngine )
বাইন্ডিং সম্পূর্ণ করার অনুরোধ।
বাইন্ডিং সম্পূর্ণ করার কাজটি, অন্তত TCP-র প্রয়োজন হয় এমন বাইন্ডিংয়ের ক্ষেত্রে, একটি নির্দিষ্ট ProtocolEngine অবজেক্টের সাপেক্ষে করা হয়, যা ExchangeManager ইনস্ট্যান্সে অ্যাক্সেস প্রদান করে।
| বিবরণ | |||||||
|---|---|---|---|---|---|---|---|
| প্যারামিটারগুলি |
|
||||||
| রিটার্ন ভ্যালু |
|
||||||
| ফেরত |
অন্যথায়, কানেক্ট করার চেষ্টা করার সময় যেকোনও WEAVE_ERROR রিটার্ন করা হয়।
|
||||||
কানেক্ট করুন
WEAVE_ERROR Connect( WeaveConnection *aConnection )
সম্পূর্ণ কানেকশন প্রদান করে TCP বাইন্ডিং সম্পূর্ণ করুন।
নতুন শুরু করা TCP বাইন্ডিং সম্পূর্ণ না হওয়া পর্যন্ত ব্যবহার করা যাবে না। সাধারণত, অ্যাপ্লিকেশন যখন মেসেজ পাঠানোর জন্য বাইন্ডিং ব্যবহার করার চেষ্টা করে তখন এটি চাহিদা অনুযায়ী করা হয়, তবে এটি Weave কানেকশন প্রদান করেও স্পষ্টভাবে সম্পূর্ণ করা যেতে পারে।
| বিবরণ | |||||||
|---|---|---|---|---|---|---|---|
| প্যারামিটারগুলি |
|
||||||
| রিটার্ন ভ্যালু |
|
||||||
ফাইনাল করুন
void Finalize( void )
"আনকমপ্লিট" বাইন্ডিং এবং এটি ফ্রি করুন।
বাইন্ডিংয়ের এমন অবস্থা থাকতে পারে যা ক্লিন-আপ করতে হয়, যেমন কানেকশন বন্ধ করা, যা Uncomplete() পদ্ধতির মাধ্যমে ম্যানেজ করা হয়, এর সাথে এমন অবস্থাও থাকে যা Free() পদ্ধতির মাধ্যমে প্রাথমিক অবস্থায় ফিরিয়ে আনা হয়। এই পদ্ধতি, মূলত সুবিধার জন্য, দুটিকেই আহ্বান করে।
আরও দেখুন:Finalize(WEAVE_ERROR)
ফাইনাল করুন
void Finalize( WEAVE_ERROR aErr )
"আনকমপ্লিট" বাইন্ডিং এবং এটি ফ্রি করুন।
বাইন্ডিংয়ের এমন অবস্থা থাকতে পারে যা ক্লিন-আপ করতে হয়, যেমন কানেকশন বন্ধ করা, যা Uncomplete() পদ্ধতির মাধ্যমে ম্যানেজ করা হয়, এর সাথে এমন অবস্থাও থাকে যা Free() পদ্ধতির মাধ্যমে প্রাথমিক অবস্থায় ফিরিয়ে আনা হয়। এই পদ্ধতি, মূলত সুবিধার জন্য, দুটিকেই আহ্বান করে।
| বিবরণ | |||
|---|---|---|---|
| প্যারামিটারগুলি |
|
||
Finalize(void)
ফ্রি
void Free( void )
বাইন্ডিং স্টেট মুছে দিন।
কোনও শর্ত ছাড়াই সমস্ত বাইন্ডিং স্টেটকে তার আসল স্টেটে ফিরিয়ে আনুন।
GetExchangeCtx
ExchangeContext * GetExchangeCtx( WeaveExchangeManager *aExchangeMgr, void *aAppState )
Binding থেকে একটি ExchangeContext অবজেক্ট তৈরি করুন।
| বিবরণ | |||||
|---|---|---|---|---|---|
| প্যারামিটারগুলি |
|
||||
| ফেরত |
ExchangeContext অবজেক্টের একটি পয়েন্টার, অথবা ব্যর্থ হলে NULL।
|
||||
IncompleteIndication
void IncompleteIndication( StatusReport & aReport )
বাইন্ডিংয়ের ব্যর্থতা ম্যানেজ করুন।
এই পদ্ধতিটি চালু করা হয় এবং এর ফলে, সম্পূর্ণ হওয়ার পরে বাইন্ডিং ব্যর্থ হলে উচ্চ-স্তরের হ্যান্ডলারদের চালু করে, অর্থাৎ, সাফল্যের ইঙ্গিত দেয় এমন একটি স্ট্যাটাস সহ CompleteConfirm() চালু হওয়ার পরে।
| বিবরণ | |||
|---|---|---|---|
| প্যারামিটারগুলি |
|
||
CompleteConfirm(StatusReport &aReport).
Init
WEAVE_ERROR Init( const uint64_t & aPeerNodeId )
শুধুমাত্র একটি নোড আইডি দিয়ে Binding শুরু করুন।
এর ফলে কনফিগার করা ডিফল্ট ট্রান্সপোর্টের সাথে বাইন্ডিং হয়।
| বিবরণ | |||||
|---|---|---|---|---|---|
| প্যারামিটারগুলি |
|
||||
| রিটার্ন ভ্যালু |
|
||||
Init
WEAVE_ERROR Init( const uint64_t & aPeerNodeId, uint8_t aTransport )
পিয়ার আইডি ও ট্রান্সপোর্টের উপর ভিত্তি করে বাইন্ডিং অবজেক্ট শুরু করুন।
| বিবরণ | |||||
|---|---|---|---|---|---|
| প্যারামিটারগুলি |
|
||||
| রিটার্ন ভ্যালু |
|
||||
Init
WEAVE_ERROR Init( const uint64_t & aServiceEpt, WeaveServiceManager *aServiceMgr, WeaveAuthMode aAuthMode )
পরিষেবা এন্ডপয়েন্টে বাইন্ডিং অবজেক্ট শুরু করুন।
Nest পরিষেবার নির্দিষ্ট এন্ডপয়েন্টের সাথে আপনি এইভাবে বাইন্ড করেন। এই ধরনের বাইন্ডিংয়ের জন্য মাল্টি-স্টেজ সম্পূর্ণ করার প্রসেস প্রয়োজন, যার মধ্যে লোকাল সার্ভিস ডিরেক্টরি ক্যাশে পপুলেট বা আপডেট করা অন্তর্ভুক্ত থাকতে পারে। বেশিরভাগ ক্ষেত্রে, এই প্রসেসটি অ্যাপ্লিকেশন থেকে লুকানো থাকে তবে এর অর্থ হল প্রসেসে পরে উদ্ভূত ত্রুটিগুলি ডেলিভার করা হতে পারে, সাধারণত প্রাসঙ্গিক "কনফার্ম" কলব্যাকের মাধ্যমে, পরে - কখনও কখনও অনেক পরে - বাইন্ডিং ব্যবহার (এবং সম্পূর্ণ) করার আসল অনুরোধের পরে।
| বিবরণ | |||||||
|---|---|---|---|---|---|---|---|
| প্যারামিটারগুলি |
|
||||||
| রিটার্ন ভ্যালু |
|
||||||
Init
WEAVE_ERROR Init( WeaveConnection *aConnection )
WeaveConnection-এর সাথে Binding অবজেক্ট শুরু করুন।
| বিবরণ | |||||
|---|---|---|---|---|---|
| প্যারামিটারগুলি |
|
||||
| রিটার্ন ভ্যালু |
|
||||
IsComplete
bool IsComplete( void )
বাইন্ডিং সম্পূর্ণ হয়েছে কিনা তা চেক করুন।
| বিবরণ | |
|---|---|
| ফেরত |
এটি সম্পূর্ণ হলে true, অন্যথায় false.
|
CompleteRequest(ProtocolEngine *aEngine)
IsFree
bool IsFree( void )
বাইন্ডিং ফ্রি কিনা তা চেক করুন।
এই প্রসঙ্গে "ফ্রি" বলতে বোঝায়, "একটি নির্দিষ্ট পিয়ার নোড আইডি আছে"। IsFree()-এর অর্থ "Free() কল করা হয়েছে এবং তারপর থেকে ব্যবহার করা হয়নি" হিসেবে বিবেচনা করা উচিত।
| বিবরণ | |
|---|---|
| ফেরত |
বাইন্ডিং ফ্রি হলে true, অন্যথায় false।
|
UncompleteRequest
void UncompleteRequest( void )
বাইন্ডিং অসম্পূর্ণ থেকে যায়।
মূলত, এই পদ্ধতি কল করার পরে বাইন্ডিং "অসম্পূর্ণ" অবস্থায় থাকবে, তবে আরও সূক্ষ্মভাবে, বাইন্ডিংয়ের মধ্যে নেই এমন যেকোনও প্রাসঙ্গিক অবস্থা, যেমন TCP কানেকশন, পরিষ্কার করা উচিত। অ্যাপ্লিকেশনগুলি ত্রুটির ক্ষেত্রে ক্লিনআপের অংশ হিসাবে UncompleteRequest() চালু করার কথা বিবেচনা করতে পারে।
এগুলিও দেখুন:UncompleteRequest(WEAVE_ERROR )
UncompleteRequest
void UncompleteRequest( WEAVE_ERROR aErr )
বাইন্ডিং অসম্পূর্ণ থেকে যায়।
মৌলিকভাবে, এই পদ্ধতিটি কল করার পরে একটি বাইন্ডিং "অসম্পূর্ণ" অবস্থায় থাকবে, তবে আরও সূক্ষ্মভাবে, বাইন্ডিংয়ে অন্তর্ভুক্ত নয় এমন কোনও প্রাসঙ্গিক অবস্থা, যেমন TCP কানেকশন, পরিষ্কার করা উচিত। অ্যাপ্লিকেশনগুলি ত্রুটির ক্ষেত্রে ক্লিনআপের অংশ হিসাবে UncompleteRequest() চালু করার কথা বিবেচনা করতে পারে।
| বিবরণ | |||
|---|---|---|---|
| প্যারামিটারগুলি |
|
||
UncompleteRequest(void)
~বাঁধাই
virtual ~Binding( void )
Binding অবজেক্টের জন্য ডেস্ট্রাক্টর।
সব ইন্টার্নাল স্টেট মুছে দেয় এবং প্রয়োজন হলে খোলা কানেকশন বন্ধ করে দেয়।