nl:: বুনা:: প্রোফাইল:: ডেটা ম্যানেজমেন্ট_কারেন্ট:: কমান্ড সেন্ডার
#include <src/lib/profiles/data-management/Current/CommandSender.h>
সারাংশ
দ্রষ্টব্য: এই ক্লাসটি কমান্ড পাঠানোর প্রোটোকল বিশদগুলিকে অন্তর্ভুক্ত করে, অ্যাপ্লিকেশনগুলির জন্য জড়িত মেকানিক্সকে সরল করে। অ্যাপ্লিকেশনটি কমান্ডের পেলোড সহ একটি প্যাকেটবাফার প্রদান করে এবং সেইসাথে আর্গুমেন্টের একটি ঐচ্ছিক সেট যা কমান্ড হেডারের বিষয়বস্তু এবং কমান্ডের আচরণ পরিবর্তন করে। কমান্ড পরিচালনার চারপাশে এই মোড়কের উপযোগিতা প্রকৃতপক্ষে সীমিত, প্রধানত নিরাপত্তা যাচাইকরণ এবং ডেটা সিরিয়ালাইজেশন/ডি-সিরিয়ালাইজেশনের সাথে জড়িত জটিলতা/নমনীয়তার কারণে।
কমান্ড যাচাইকরণের বিশদটি এখনও টিবিডি
এই ক্লাসটি অ্যাপ্লিকেশনগুলিকে অনুমান করতেও সাহায্য করে যে কোনও সংশ্লিষ্ট TraitDataSink- এর মধ্যে থাকা ডেটা কমান্ডের পার্শ্ব-প্রতিক্রিয়াগুলি ধরেছে কিনা (কমান্ড প্রতিক্রিয়ায় প্রদত্ত সংস্করণের উপর ভিত্তি করে)। অ্যাপ্লিকেশনটি সেই বস্তুর স্টোরেজ পরিচালনার জন্য দায়ী।
ওয়েভ বাঁধাই
এই ক্লাসের একটি অবজেক্টকে ওয়েভ বাইন্ডিং দিয়ে শুরু করা যেতে পারে, যা কমান্ড পাঠাতে ব্যবহার করার জন্য ডিফল্ট বাইন্ডিং হিসেবে কাজ করবে। ব্যবহারকারী SendCommand() এর প্রতিটি কলে একটি বাইন্ডিং প্রদান করতে পারে, যা ডিফল্ট বাইন্ডিংকে ওভাররাইড করবে। একটি ডিফল্ট বাইন্ডিং প্রদান করা আবশ্যক নয়, তবে CommandSender- এ প্রদত্ত যেকোন বাইন্ডিং ইতিমধ্যেই আরম্ভ করা আবশ্যক।
ইভেন্ট কলব্যাক
ব্যবহারকারীকে অবশ্যই এই ধরনের একটি ফাংশন সংজ্ঞায়িত করতে হবে যদি তারা কমান্ড পাঠানোর পরে ঘটে যাওয়া ইভেন্টগুলি সম্পর্কে আপডেট করতে চায় (নীচে "API ইভেন্টগুলি" দেখুন)। এটি NULL হতে পারে যদি ব্যবহারকারী কমান্ড পাঠানোর পরে কি ঘটবে তা চিন্তা না করে।
API ইভেন্ট
নিম্নলিখিত ইভেন্টগুলি একটি কমান্ড পাঠানোর পরে সম্ভাব্য ফলাফল:
যোগাযোগের ত্রুটি
কমান্ড তৈরি বা পাঠানোর সময় বা প্রতিক্রিয়ার জন্য অপেক্ষা করার সময় একটি ত্রুটি ঘটেছে। একটি প্রতিক্রিয়ার জন্য অপেক্ষা করার সময় ঘটতে পারে এমন ত্রুটিগুলির উদাহরণ হল মূল ত্রুটি বা সংযোগের অপ্রত্যাশিত বন্ধ। ইভেন্টকলব্যাক হ্যান্ডলারের কাছে InEventParam আর্গুমেন্টে ত্রুটির কারণ থাকবে।
ইনপ্রগ্রেস রিসিভড
প্রাপক একটি 'প্রগতিতে চলছে' বার্তা পাঠাতে পারে যা নির্দেশ করে যে কমান্ডটি গৃহীত হয়েছে, কিন্তু এখনও সম্পূর্ণ হয়নি। একবার সম্পূর্ণ হলে, প্রাপক একটি প্রতিক্রিয়া বা স্ট্যাটাস রিপোর্ট পাঠাবে। একটি 'প্রগতিতে' বার্তা পাঠানোর প্রয়োজন নেই৷
স্ট্যাটাস রিপোর্ট প্রাপ্ত
একটি StatusReport এর প্রাপ্তি বোঝায় যে কমান্ড প্রক্রিয়াকরণে একটি ত্রুটি ছিল। InEventParam- এর মাধ্যমে StatusReport অ্যাক্সেস করা যেতে পারে।
প্রতিক্রিয়া প্রাপ্ত
একটি প্রতিক্রিয়া প্রাপ্তি বোঝায় যে কমান্ড প্রাপক কমান্ডটি সফলভাবে পরিচালনা করেছেন। প্রতিক্রিয়াতে একটি পেলোড থাকতে পারে বা নাও থাকতে পারে। যদি অ্যাপলিকেশন প্যাকেট বাফার রাখতে চায়, তাহলে রেফ কাউন্ট বাড়ানোর জন্য এটি ExchangeContext::AddRef() কল করতে পারে।
পাবলিক প্রকার | |
---|---|
EventCallback )(void *const aAppState, EventType aEvent, const InEventParam &aInParam, OutEventParam &aOutEventParam) | typedefvoid(* |
EventType | enum |
পাবলিক বৈশিষ্ট্য | |
---|---|
mAppState = NULL | void * |
mSyncronizedTraitState = NULL |
পাবলিক স্ট্যাটিক ফাংশন | |
---|---|
DefaultEventHandler (void *aAppState, EventType aEvent, const InEventParam & aInParam, OutEventParam & aOutParam) | void |
পাবলিক ফাংশন | |
---|---|
Close (bool aAbortNow) | void |
Init ( nl::Weave::Binding *aBinding, const EventCallback aEventCallback, void *const aAppState) | |
SendCommand ( nl::Weave::PacketBuffer *aPayload, nl::Weave::Binding *aBinding, ResourceIdentifier & aResourceId, uint32_t aProfileId, uint32_t aCommandType) | |
SendCommand ( nl::Weave::PacketBuffer *aPayload, nl::Weave::Binding *aBinding, SendParams & aSendParams) | |
SetSynchronizedTraitState ( SynchronizedTraitState *aTraitState) | void |
কাঠামো | |
---|---|
nl:: বুনন:: প্রোফাইল:: ডেটা ম্যানেজমেন্ট_কারেন্ট:: কমান্ড সেন্ডার:: ইভেন্টপারম | কাস্টম কমান্ডের প্রাপকের দ্বারা প্রেরকের কাছে ডেটা ফিরে আসে। |
nl:: বুনা:: প্রোফাইল:: ডেটা ম্যানেজমেন্ট_কারেন্ট:: কমান্ড সেন্ডার:: আউটইভেন্টপারম | একটি EventCallback ফাংশন থেকে ডেটা CommandSender অবজেক্টে ফিরে এসেছে। |
nl:: বুনন:: প্রোফাইল:: ডেটা ম্যানেজমেন্ট_কারেন্ট:: কমান্ড সেন্ডার:: সেন্ডপারাম | SendCommand() এ পাস করার জন্য আর্গুমেন্টগুলিকে এনক্যাপসুলেট করে। |
nl:: বুনা:: প্রোফাইল:: ডেটা ম্যানেজমেন্ট_কারেন্ট:: কমান্ড সেন্ডার:: সিঙ্ক্রোনাইজড ট্র্যাটস্টেট |
পাবলিক প্রকার
ইভেন্ট কলব্যাক
void(* EventCallback)(void *const aAppState, EventType aEvent, const InEventParam &aInParam, OutEventParam &aOutEventParam)
ইভেন্ট টাইপ
EventType
পাবলিক বৈশিষ্ট্য
mAppState
void * mAppState = NULL
mSyncronizedTraitState
SynchronizedTraitState * mSyncronizedTraitState = NULL
পাবলিক স্ট্যাটিক ফাংশন
ডিফল্ট ইভেন্টহ্যান্ডলার
void DefaultEventHandler( void *aAppState, EventType aEvent, const InEventParam & aInParam, OutEventParam & aOutParam )
পাবলিক ফাংশন
বন্ধ
void Close( bool aAbortNow )
ইনিট
WEAVE_ERROR Init( nl::Weave::Binding *aBinding, const EventCallback aEventCallback, void *const aAppState )
সেন্ডকমান্ড
WEAVE_ERROR SendCommand( nl::Weave::PacketBuffer *aPayload, nl::Weave::Binding *aBinding, ResourceIdentifier & aResourceId, uint32_t aProfileId, uint32_t aCommandType )
সেন্ডকমান্ড
WEAVE_ERROR SendCommand( nl::Weave::PacketBuffer *aPayload, nl::Weave::Binding *aBinding, SendParams & aSendParams )
SynchronizedTraitState সেট করুন
void SetSynchronizedTraitState( SynchronizedTraitState *aTraitState )