nl:: বুনা:: প্রোফাইল:: ডেটা ম্যানেজমেন্ট_কারেন্ট:: আদেশ
#include <src/lib/profiles/data-management/Current/Command.h>
সারাংশ
দ্রষ্টব্য: এই ক্লাসটি কমান্ড পরিচালনায় একটি নির্দিষ্ট বিবরণ লুকানোর জন্য ডিজাইন করা হয়েছে। প্যাকেটবাফারগুলির হ্যান্ডলিং অ্যাপ্লিকেশন স্তরে রেখে দেওয়ার সময় এক্সচেঞ্জ কনটেক্সট এবং প্রমাণীকরণকারীর বৈধতার বিবরণ লুকানোর সিদ্ধান্ত নেওয়া হয়েছে। কমান্ড পরিচালনার চারপাশে এই মোড়কের উপযোগিতা প্রকৃতপক্ষে সীমিত, প্রধানত নিরাপত্তা যাচাইকরণ এবং ডেটা সিরিয়ালাইজেশন/ডি-সিরিয়ালাইজেশনের সাথে জড়িত জটিলতা/নমনীয়তার কারণে।
কমান্ড যাচাইকরণের বিশদটি এখনও টিবিডি
ইন-প্রোগ্রেস, স্ট্যাটাস রিপোর্ট এবং রেসপন্স মেসেজের জন্য রিট্রান্সমিশন টাইমিং সামঞ্জস্য করতে, অ্যাপ্লিকেশান লেয়ারটিকে একরকম এক্সচেঞ্জ কনটেক্সট অবজেক্টের সাথে ডিল করতে হবে। সর্বোত্তম অনুশীলনটি এখনও টিবিডি, তবে অ্যাপ্লিকেশন স্তরটিতে এই তিনটি পছন্দ রয়েছে:
1) GetExchangeContext এর মাধ্যমে এক্সচেঞ্জ কনটেক্সট অর্জন করুন এবং এটি সরাসরি মূল্যায়ন/সামঞ্জস্য করুন। 2) বুট আপের সময় একটি বাইন্ডিং প্রি-অ্যালোকেট এবং কনফিগার করুন, কোন কমান্ড আসার আগে, এবং এটি সঠিকভাবে কনফিগার করুন 3) এই ফাংশনটি BindingPool::NewResponderBindingFromExchangeContext ব্যবহার করে একটি অস্থায়ী বাইন্ডিং তৈরি করুন
(2) এবং (3) উভয় ক্ষেত্রেই, অ্যাপ্লিকেশন স্তরটি Binding::ConfigureExistingExchangeContext এর মাধ্যমে নিরাপত্তা/টাইমিং সেটিং প্রয়োগ করতে পারে। বাইন্ডিং কখনই কাস্টম কমান্ডের জন্য নতুন বিনিময় প্রসঙ্গ তৈরি করতে ব্যবহৃত হয় না, তাই এটি এই হ্যান্ডেলের মধ্যে সংরক্ষণ করতে হবে না।
অনুরোধ প্যাকেট বাফারটিও এই হ্যান্ডেলের মধ্যে সংরক্ষণ করা হয় না, কারণ এটির কোন সুস্পষ্ট ব্যবহার নেই। এটি বিশেষত সত্য যদি অ্যাপ্লিকেশন স্তরটি এই কমান্ডটি পরিচালনা করতে পারে এবং সরাসরি প্রতিক্রিয়া পাঠাতে পারে।
অ্যাপ্লিকেশন স্তরটি এই কমান্ড হ্যান্ডেলটি গ্রহণ করে একই কলব্যাক থেকে প্যাকেট বাফারটি গ্রহণ করবে। যদি এটি একটি অ্যাসিঙ্ক পদ্ধতিতে এই কমান্ডটি পরিচালনা করার সিদ্ধান্ত নেয় তবে এটিকে কমান্ড হ্যান্ডেল এবং প্যাকেট বাফার উভয়ই সংরক্ষণ করতে হবে।
পাবলিক প্রকার | |
---|---|
CommandFlags { | enum কমান্ড পতাকা বিট. |
CommandFlags | typedef কমান্ড পতাকা বিট. |
পাবলিক বৈশিষ্ট্য | |
---|---|
actionTimeMicroSecond | int64_t |
commandType | uint64_t |
expiryTimeMicroSecond | int64_t |
initiationTimeMicroSecond | int64_t |
mustBeVersion | uint64_t |
পাবলিক ফাংশন | |
---|---|
Close (void) | void |
GetExchangeContext (void) const | এই ইনকামিং কমান্ড দ্বারা ব্যবহৃত বিনিময় প্রসঙ্গ বস্তু পুনরুদ্ধার করুন। |
IsActionTimeValid (void) const | bool |
IsExpiryTimeValid (void) const | bool |
IsInitiationTimeValid (void) const | bool |
IsMustBeVersionValid (void) const | bool |
IsOneWay (void) const | bool |
SendError (uint32_t aProfileId, uint16_t aStatusCode, WEAVE_ERROR aWeaveError) | |
SendInProgress (void) | |
SendResponse (uint32_t traitInstanceVersion, nl::Weave::System::PacketBuffer *apPayload) | |
ValidateAuthenticator ( nl::Weave::System::PacketBuffer *aRequestBuffer) |
পাবলিক প্রকার
কমান্ড ফ্ল্যাগস
CommandFlags
কমান্ড পতাকা বিট.
কমান্ড ফ্ল্যাগস
enum nl::Weave::Profiles::DataManagement_Current::Command::CommandFlags CommandFlags
কমান্ড পতাকা বিট.
পাবলিক বৈশিষ্ট্য
অ্যাকশনটাইমমাইক্রোসেকেন্ড
int64_t actionTimeMicroSecond
কমান্ড টাইপ
uint64_t commandType
মেয়াদ শেষ হওয়ার সময়মাইক্রোসেকেন্ড
int64_t expiryTimeMicroSecond
শুরুর সময়মাইক্রোসেকেন্ড
int64_t initiationTimeMicroSecond
mustBeVersion
uint64_t mustBeVersion
পাবলিক ফাংশন
বন্ধ
void Close( void )
GetExchangeContext
nl::Weave::ExchangeContext * GetExchangeContext( void ) const
এই ইনকামিং কমান্ড দ্বারা ব্যবহৃত বিনিময় প্রসঙ্গ বস্তু পুনরুদ্ধার করুন।
বিস্তারিত | |
---|---|
রিটার্নস | এই ইনকামিং কমান্ড দ্বারা ব্যবহৃত বিনিময় প্রসঙ্গ বস্তুর একটি পয়েন্টার |
IsActionTimeValid
bool IsActionTimeValid( void ) const
IsExpiryTimeValid
bool IsExpiryTimeValid( void ) const
IsInitiationTimeValid
bool IsInitiationTimeValid( void ) const
IsMustBeVersionValid
bool IsMustBeVersionValid( void ) const
IsOneWay
bool IsOneWay( void ) const
SendError
WEAVE_ERROR SendError( uint32_t aProfileId, uint16_t aStatusCode, WEAVE_ERROR aWeaveError )
SendInProgress
WEAVE_ERROR SendInProgress( void )
প্রতিক্রিয়া পাঠান
WEAVE_ERROR SendResponse( uint32_t traitInstanceVersion, nl::Weave::System::PacketBuffer *apPayload )
প্রমাণীকরণকারী
WEAVE_ERROR ValidateAuthenticator( nl::Weave::System::PacketBuffer *aRequestBuffer )