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