nl:: বুনা:: প্রোফাইল:: ডেটা ম্যানেজমেন্ট_কারেন্ট:: আদেশ

#include <src/lib/profiles/data-management/Current/Command.h>

সারাংশ

দ্রষ্টব্য: এই ক্লাসটি কমান্ড পরিচালনায় একটি নির্দিষ্ট বিবরণ লুকানোর জন্য ডিজাইন করা হয়েছে। প্যাকেটবাফারগুলির হ্যান্ডলিং অ্যাপ্লিকেশন স্তরে রেখে দেওয়ার সময় এক্সচেঞ্জ কনটেক্সট এবং প্রমাণীকরণকারীর বৈধতার বিবরণ লুকানোর সিদ্ধান্ত নেওয়া হয়েছে। কমান্ড পরিচালনার চারপাশে এই মোড়কের উপযোগিতা প্রকৃতপক্ষে সীমিত, প্রধানত নিরাপত্তা যাচাইকরণ এবং ডেটা সিরিয়ালাইজেশন/ডি-সিরিয়ালাইজেশনের সাথে জড়িত জটিলতা/নমনীয়তার কারণে।

কমান্ড যাচাইকরণের বিশদটি এখনও টিবিডি

ইন-প্রোগ্রেস, স্ট্যাটাস রিপোর্ট এবং রেসপন্স মেসেজের জন্য রিট্রান্সমিশন টাইমিং সামঞ্জস্য করতে, অ্যাপ্লিকেশান লেয়ারটিকে একরকম এক্সচেঞ্জ কনটেক্সট অবজেক্টের সাথে ডিল করতে হবে। সর্বোত্তম অনুশীলনটি এখনও টিবিডি, তবে অ্যাপ্লিকেশন স্তরটিতে এই তিনটি পছন্দ রয়েছে:

1) GetExchangeContext এর মাধ্যমে এক্সচেঞ্জ কনটেক্সট অর্জন করুন এবং এটি সরাসরি মূল্যায়ন/সামঞ্জস্য করুন। 2) বুট আপের সময় একটি বাইন্ডিং প্রি-অ্যালোকেট এবং কনফিগার করুন, কোন কমান্ড আসার আগে, এবং এটি সঠিকভাবে কনফিগার করুন 3) এই ফাংশনটি BindingPool::NewResponderBindingFromExchangeContext ব্যবহার করে একটি অস্থায়ী বাইন্ডিং তৈরি করুন

(2) এবং (3) উভয় ক্ষেত্রেই, অ্যাপ্লিকেশন স্তরটি Binding::ConfigureExistingExchangeContext এর মাধ্যমে নিরাপত্তা/টাইমিং সেটিং প্রয়োগ করতে পারে। বাইন্ডিং কখনই কাস্টম কমান্ডের জন্য নতুন বিনিময় প্রসঙ্গ তৈরি করতে ব্যবহৃত হয় না, তাই এটি এই হ্যান্ডেলের মধ্যে সংরক্ষণ করতে হবে না।

অনুরোধ প্যাকেট বাফারটিও এই হ্যান্ডেলের মধ্যে সংরক্ষণ করা হয় না, কারণ এটির কোন সুস্পষ্ট ব্যবহার নেই। এটি বিশেষত সত্য যদি অ্যাপ্লিকেশন স্তরটি এই কমান্ডটি পরিচালনা করতে পারে এবং সরাসরি প্রতিক্রিয়া পাঠাতে পারে।

অ্যাপ্লিকেশন স্তরটি এই কমান্ড হ্যান্ডেলটি গ্রহণ করে একই কলব্যাক থেকে প্যাকেট বাফারটি গ্রহণ করবে। যদি এটি একটি অ্যাসিঙ্ক পদ্ধতিতে এই কমান্ডটি পরিচালনা করার সিদ্ধান্ত নেয় তবে এটিকে কমান্ড হ্যান্ডেল এবং প্যাকেট বাফার উভয়ই সংরক্ষণ করতে হবে।

পাবলিক প্রকার

CommandFlags {
kCommandFlag_MustBeVersionValid = 0x0001,
kCommandFlag_InitiationTimeValid = 0x0002,
kCommandFlag_ActionTimeValid = 0x0004,
kCommandFlag_ExpiryTimeValid = 0x0008,
kCommandFlag_IsOneWay = 0x0010
}
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

কমান্ড পতাকা বিট.

বৈশিষ্ট্য
kCommandFlag_ActionTimeValid

কর্মের সময় বৈধ হলে সেট করুন।

kCommandFlag_ExpiryTimeValid

মেয়াদ শেষ হলে সেট করুন।

kCommandFlag_InitiationTimeValid

শুরুর সময় বৈধ হলে সেট করুন।

kCommandFlag_IsOneWay

কমান্ড একমুখী হলে সেট করুন।

kCommandFlag_MustBeVersionValid

সংস্করণ ক্ষেত্রটি বৈধ হলে সেট করুন।

কমান্ড ফ্ল্যাগস

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
)