Google is committed to advancing racial equity for Black communities. See how.

এনএল :: তাঁত :: প্রোফাইল :: ডেটা ম্যানেজমেন্ট_ বর্তমান: কমান্ড

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

সারসংক্ষেপ

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

কমান্ড বৈধতার জন্য বিশদটি এখনও টিবিডি

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

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

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

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

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

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

CommandFlags {
kCommandFlag_MustBeVersionValid = 0x0001,
kCommandFlag_InitiationTimeValid = 0x0002,
kCommandFlag_ActionTimeValid = 0x0004,
kCommandFlag_ExpiryTimeValid = 0x0008,
kCommandFlag_IsOneWay = 0x0010
}
এনাম
কমান্ড পতাকা বিট।
CommandFlags টাইপডেফ
কমান্ড পতাকা বিট।

জনসাধারণের গুণাবলী

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

আবশ্যক

uint64_t mustBeVersion

পাবলিক ফাংশন

বন্ধ

void Close(
  void
)

গেট এক্সচেঞ্জকন্টেক্সট

nl::Weave::ExchangeContext * GetExchangeContext(
  void
) const 

এই ইনকামিং কমান্ড দ্বারা ব্যবহৃত বিনিময় প্রসঙ্গ অবজেক্টটি পুনরুদ্ধার করুন।

বিশদ
ফিরে আসে
এই ইনকামিং কমান্ড দ্বারা ব্যবহৃত এক্সচেঞ্জ কনটেক্সট অবজেক্টের পয়েন্টার

ইসএকশনটাইমভালিড

bool IsActionTimeValid(
  void
) const 

#ExpiryTimeValid

bool IsExpiryTimeValid(
  void
) const 

#InitiationTimeValid

bool IsInitiationTimeValid(
  void
) const 

#MustBeVersionValid

bool IsMustBeVersionValid(
  void
) const 

ইসনওয়ে

bool IsOneWay(
  void
) const 

সেন্ডআরআর

WEAVE_ERROR SendError(
  uint32_t aProfileId,
  uint16_t aStatusCode,
  WEAVE_ERROR aWeaveError
)

সেন্ডইনপ্রোগ্রেস

WEAVE_ERROR SendInProgress(
  void
)

সেন্রেসপনস

WEAVE_ERROR SendResponse(
  uint32_t traitInstanceVersion,
  nl::Weave::System::PacketBuffer *apPayload
)

বৈধতা অরথ্যান্টিকেটর

WEAVE_ERROR ValidateAuthenticator(
  nl::Weave::System::PacketBuffer *aRequestBuffer
)