nl:: বুনা:: সিস্টেম:: স্তর

#include <src/system/SystemLayer.h>

This provides access to timers according to the configured event handling model.

সারাংশ

WEAVE_SYSTEM_CONFIG_USE_SOCKETS এর জন্য, প্ল্যাটফর্ম অভিযোজনে প্রথাগত পোল/নির্বাচন বাস্তবায়নের মাধ্যমে ইভেন্ট প্রস্তুতির বিজ্ঞপ্তি পরিচালনা করা হয়।

WEAVE_SYSTEM_CONFIG_USE_LWIP এর জন্য, ইভেন্ট/বার্তা এবং প্ল্যাটফর্ম- এবং ইভেন্ট/মেসেজ সিস্টেমের জন্য সিস্টেম-নির্দিষ্ট হুকের মাধ্যমে ইভেন্ট প্রস্তুতির বিজ্ঞপ্তি হ্যান্ডেল করা হয়।

কনস্ট্রাক্টর এবং ডেস্ট্রাক্টর

Layer (void)

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

EventHandler )(Object &aTarget, EventType aEventType, uintptr_t aArgument) typedef
Error(*
TimerCompleteFunct )(Layer *aLayer, void *aAppState, Error aError) typedef
void(*

পাবলিক ফাংশন

AddEventHandlerDelegate ( LwIPEventHandlerDelegate & aDelegate)
Error
এটি LwIP ইভেন্টগুলি পরিচালনা করার ক্ষমতা প্রসারিত করতে সিস্টেম স্তরে একটি ইভেন্ট হ্যান্ডলার প্রতিনিধি যোগ করে।
CancelTimer (TimerCompleteFunct aOnComplete, void *aAppState)
void
এই পদ্ধতিটি একটি ওয়ান-শট টাইমার বাতিল করে, যা আগে StartTimer() এর মাধ্যমে শুরু হয়েছিল।
DispatchEvent (Event aEvent)
Error
এটি এই উদাহরণ দ্বারা পরিচালনার জন্য নির্দিষ্ট ইভেন্ট প্রেরণ করে।
DispatchEvents (void)
Error
এটি একটি প্ল্যাটফর্ম-নির্দিষ্ট হুকের চারপাশে একটি সিনট্যাকটিক মোড়ক যা একটি ইভেন্ট লুপকে প্রভাবিত করে, একটি সারিতে অপেক্ষা করে যা এই উদাহরণটি পরিষেবা দেয়, সেই সারির ইভেন্টগুলিকে টেনে নিয়ে যায় এবং তারপরে সেগুলি পরিচালনার জন্য প্রেরণ করে।
GetPlatformData (void) const
void *
এটি কোনো ক্লায়েন্ট-নির্দিষ্ট প্ল্যাটফর্ম তথ্য প্রদান করে, যদি এটি পূর্বে সেট করা থাকে।
HandleEvent ( Object & aTarget, EventType aEventType, uintptr_t aArgument)
Error
এটি একটি ওয়েভ সিস্টেম লেয়ার ইভেন্টের প্রকৃত প্রেরণ এবং পরিচালনাকে কার্যকর করে।
HandlePlatformTimer (void)
Error
প্ল্যাটফর্ম টাইমারের মেয়াদ শেষ হওয়ার ঘটনাটি পরিচালনা করুন।
HandleSelectResult (int aSetSize, fd_set *aReadSet, fd_set *aWriteSet, fd_set *aExceptionSet)
void
একটি নির্বাচিত কল থেকে I/O হ্যান্ডেল করুন।
Init (void *aContext)
Error
NewTimer ( Timer *& aTimerPtr)
Error
PostEvent ( Object & aTarget, EventType aEventType, uintptr_t aArgument)
Error
এটি এই উদাহরণের প্ল্যাটফর্ম-নির্দিষ্ট ইভেন্ট সারিতে প্রদত্ত আর্গুমেন্ট সহ নির্দিষ্ট ধরণের একটি ইভেন্ট/বার্তা পোস্ট করে।
PrepareSelect (int & aSetSize, fd_set *aReadSet, fd_set *aWriteSet, fd_set *aExceptionSet, struct timeval & aSleepTime)
void
select() এর সাথে কাজ করার জন্য ফাইল বর্ণনাকারীর সেট প্রস্তুত করুন।
ScheduleWork (TimerCompleteFunct aComplete, void *aAppState)
Error
Weave থ্রেডে যত তাড়াতাড়ি সম্ভব চালানোর জন্য TimerCompleteFunct এর অনুরূপ একটি স্বাক্ষর সহ একটি ফাংশন নির্ধারণ করে।
SetPlatformData (void *aPlatformData)
void
এটি নির্দিষ্ট ক্লায়েন্ট-নির্দিষ্ট প্ল্যাটফর্ম ডেটাকে ক্লায়েন্ট প্ল্যাটফর্ম দ্বারা পরবর্তী পুনরুদ্ধারের উদাহরণে সেট করে।
Shutdown (void)
Error
StartTimer (uint32_t aMilliseconds, TimerCompleteFunct aComplete, void *aAppState)
Error
এই পদ্ধতিটি এক-শট টাইমার শুরু করে।
State (void) const
LayerState
এটি লেয়ার অবজেক্টের বর্তমান অবস্থা প্রদান করে।
WakeSelect (void)
void
I/O থ্রেডকে জাগিয়ে তুলুন যা ওয়েক পাইপে একটি একক বাইট লিখে select() ব্যবহার করে ফাইলের বর্ণনাকারীকে নিরীক্ষণ করে।

পাবলিক স্ট্যাটিক ফাংশন

GetClock_Monotonic (void)
uint64_t
মাইক্রোসেকেন্ডের এককে একটি একঘেয়ে সিস্টেম সময় প্রদান করে।
GetClock_MonotonicHiRes (void)
uint64_t
মাইক্রোসেকেন্ডের এককে একটি (সম্ভাব্য) উচ্চ-রেজোলিউশন একঘেয়ে সিস্টেম সময় প্রদান করে।
GetClock_MonotonicMS (void)
uint64_t
মিলিসেকেন্ডের ইউনিটে একটি একঘেয়ে সিস্টেম সময় প্রদান করে।
GetClock_RealTime (uint64_t & curTime)
Error
মাইক্রোসেকেন্ড ইউনিক্স সময় বিন্যাসে বর্তমান বাস্তব (সিভিল) সময় প্রদান করে।
GetClock_RealTimeMS (uint64_t & curTimeMS)
Error
মিলিসেকেন্ড ইউনিক্স সময় বিন্যাসে বর্তমান বাস্তব (সিভিল) সময় প্রদান করে।
SetClock_RealTime (uint64_t newCurTime)
Error
বর্তমান বাস্তব (সিভিল) সময়ের প্ল্যাটফর্মের ধারণা সেট করে।

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

ইভেন্টহ্যান্ডলার

Error(* EventHandler)(Object &aTarget, EventType aEventType, uintptr_t aArgument)

TimerCompleteFunct

void(* TimerCompleteFunct)(Layer *aLayer, void *aAppState, Error aError)

পাবলিক ফাংশন

AddEventHandlerDelegate

Error AddEventHandlerDelegate(
  LwIPEventHandlerDelegate & aDelegate
)

এটি LwIP ইভেন্টগুলি পরিচালনা করার ক্ষমতা প্রসারিত করতে সিস্টেম স্তরে একটি ইভেন্ট হ্যান্ডলার প্রতিনিধি যোগ করে।

বিস্তারিত
পরামিতি
[in] aDelegate
একটি সূচনাবিহীন LwIP ইভেন্ট হ্যান্ডলার প্রতিনিধি কাঠামো
রিটার্ন মান
WEAVE_SYSTEM_NO_ERROR
সাফল্যের উপর।
WEAVE_SYSTEM_ERROR_BAD_ARGS
যদি aDelegate এ থাকা ফাংশন পয়েন্টারটি NULL হয়

বাতিল টাইমার

void CancelTimer(
  TimerCompleteFunct aOnComplete,
  void *aAppState
)

এই পদ্ধতিটি একটি ওয়ান-শট টাইমার বাতিল করে, যা আগে StartTimer() এর মাধ্যমে শুরু হয়েছিল।

বিস্তারিত
পরামিতি
[in] aOnComplete
StartTimer() কল করার জন্য ব্যবহৃত কলব্যাক ফাংশনের একটি পয়েন্টার।
[in] aAppState
StartTimer() কল করার জন্য ব্যবহৃত অ্যাপ্লিকেশন স্টেট অবজেক্টের একটি পয়েন্টার।

ডিসপ্যাচ ইভেন্ট

Error DispatchEvent(
  Event aEvent
)

এটি এই উদাহরণ দ্বারা পরিচালনার জন্য নির্দিষ্ট ইভেন্ট প্রেরণ করে।

ইভেন্ট থেকে টাইপ এবং আর্গুমেন্টের আনমার্শালিং একটি প্ল্যাটফর্ম-নির্দিষ্ট হুক দ্বারা পরিচালিত হয় যা প্রকৃত প্রেরণের জন্য Layer::HandleEvent- এ ফিরে যেতে হবে।

বিস্তারিত
পরামিতি
[in] aEvent
পরিচালনার জন্য পাঠানোর জন্য প্ল্যাটফর্ম-নির্দিষ্ট ইভেন্ট অবজেক্ট।
রিটার্নস
সাফল্যে WEAVE_SYSTEM_NO_ERROR; অন্যথায়, সূচনা ব্যর্থতার কারণ নির্দেশ করে একটি নির্দিষ্ট ত্রুটি।

ডিসপ্যাচ ইভেন্টস

Error DispatchEvents(
  void
)

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

বিস্তারিত
রিটার্নস
সাফল্যে WEAVE_SYSTEM_NO_ERROR ; অন্যথায়, সূচনা ব্যর্থতার কারণ নির্দেশ করে একটি নির্দিষ্ট ত্রুটি।

GetPlatformData

void * GetPlatformData(
  void
) const 

এটি কোনো ক্লায়েন্ট-নির্দিষ্ট প্ল্যাটফর্ম তথ্য প্রদান করে, যদি এটি পূর্বে সেট করা থাকে।

বিস্তারিত
রিটার্নস
ক্লায়েন্ট-নির্দিষ্ট প্ল্যাটফর্ম ডেটা, যদি আগে সেট করা থাকে; অন্যথায়, NULL.

হ্যান্ডেল ইভেন্ট

Error HandleEvent(
  Object & aTarget,
  EventType aEventType,
  uintptr_t aArgument
)

এটি একটি ওয়েভ সিস্টেম লেয়ার ইভেন্টের প্রকৃত প্রেরণ এবং পরিচালনাকে কার্যকর করে।

বিস্তারিত
পরামিতি
[in,out] aTarget
লেয়ার অবজেক্টের একটি রেফারেন্স যেখানে ইভেন্ট টার্গেট করা হয়েছে।
[in] aEventType
হ্যান্ডেল করার জন্য ইভেন্ট/বার্তার ধরন।
[in] aArgument
ঘটনা/বার্তার সাথে যুক্ত যুক্তি।
রিটার্ন মান
WEAVE_SYSTEM_NO_ERROR
সাফল্যের উপর।
WEAVE_SYSTEM_ERROR_UNEXPECTED_STATE
যদি InetLayer অবজেক্টের অবস্থা ভুল হয়।
WEAVE_SYSTEM_ERROR_UNEXPECTED_EVENT
যদি ইভেন্টের ধরনটি অচেনা হয়।

হ্যান্ডেল প্ল্যাটফর্ম টাইমার

Error HandlePlatformTimer(
  void
)

প্ল্যাটফর্ম টাইমারের মেয়াদ শেষ হওয়ার ঘটনাটি পরিচালনা করুন।

nl::Weave::System::Timer::HandleExpiredTimers যেকোন মেয়াদোত্তীর্ণ টাইমার পরিচালনা করতে কল করে। এটা অনুমান করা হয় যে এই API শুধুমাত্র থ্রেডে থাকাকালীন কল করা হয় যা ওয়েভ সিস্টেম লেয়ার অবজেক্টের মালিক।

বিস্তারিত
রিটার্নস
সাফল্যে WEAVE_SYSTEM_NO_ERROR, অন্যথায় ত্রুটি কোড।

হ্যান্ডেল সিলেক্ট রেজাল্ট

void HandleSelectResult(
  int aSetSize,
  fd_set *aReadSet,
  fd_set *aWriteSet,
  fd_set *aExceptionSet
)

একটি নির্বাচিত কল থেকে I/O হ্যান্ডেল করুন।

এই পদ্ধতিটি প্রতিটি সক্রিয় এন্ডপয়েন্টে মুলতুবি I/O ইভেন্ট নিবন্ধন করে এবং তারপর সেই শেষ পয়েন্টগুলির জন্য সংশ্লিষ্ট I/O হ্যান্ডলিং ফাংশনগুলিকে আহ্বান করে।

বিস্তারিত
পরামিতি
[in] aSetSize
সিলেক্ট কলের রিটার্ন মান।
[in] aReadSet
পঠিত ফাইল বর্ণনাকারীর সেটের একটি পয়েন্টার।
[in] aWriteSet
লেখার ফাইল বর্ণনাকারীর সেটের একটি পয়েন্টার।
[in] aExceptionSet
ত্রুটি সহ ফাইল বর্ণনাকারীর সেটের একটি পয়েন্টার।

ইনিট

Error Init(
  void *aContext
)

স্তর

 Layer(
  void
)

নিউটাইমার

Error NewTimer(
  Timer *& aTimerPtr
)

পোস্ট ইভেন্ট

Error PostEvent(
  Object & aTarget,
  EventType aEventType,
  uintptr_t aArgument
)

এটি এই উদাহরণের প্ল্যাটফর্ম-নির্দিষ্ট ইভেন্ট সারিতে প্রদত্ত আর্গুমেন্ট সহ নির্দিষ্ট ধরণের একটি ইভেন্ট/বার্তা পোস্ট করে।

বিস্তারিত
পরামিতি
[in,out] aTarget
ওয়েভ সিস্টেম লেয়ার অবজেক্টের একটি পয়েন্টার পোস্ট অনুরোধ করছে।
[in] aEventType
পোস্ট করার ইভেন্টের ধরন।
[in,out] aArgument
যুক্তিতর্কের ঘটনার সাথে পোস্ট করার।
রিটার্ন মান
WEAVE_SYSTEM_NO_ERROR
সাফল্যের উপর।
WEAVE_SYSTEM_ERROR_UNEXPECTED_STATE
যদি লেয়ার অবজেক্টের অবস্থা ভুল হয়।
WEAVE_SYSTEM_ERROR_NO_MEMORY
ইভেন্ট সারি ইতিমধ্যে পূর্ণ হলে.
other
প্ল্যাটফর্ম-নির্দিষ্ট ত্রুটিগুলি ব্যর্থতার কারণ নির্দেশ করে।

PrepareSelect

void PrepareSelect(
  int & aSetSize,
  fd_set *aReadSet,
  fd_set *aWriteSet,
  fd_set *aExceptionSet,
  struct timeval & aSleepTime
)

select() এর সাথে কাজ করার জন্য ফাইল বর্ণনাকারীর সেট প্রস্তুত করুন।

বিস্তারিত
পরামিতি
[out] aSetSize
ফাইল বর্ণনাকারী সেটে ফাইল বর্ণনাকারীর পরিসর।
[in] aReadSet
পঠনযোগ্য ফাইল বর্ণনাকারীর সেটের একটি পয়েন্টার।
[in] aWriteSet
লিখনযোগ্য ফাইল বর্ণনাকারীর সেটের একটি পয়েন্টার।
[in] aExceptionSet
ত্রুটি সহ ফাইল বর্ণনাকারীর সেটের একটি পয়েন্টার।
[in] aSleepTime
সর্বোচ্চ ঘুমের সময়ের একটি রেফারেন্স।

শিডিউল ওয়ার্ক

Error ScheduleWork(
  TimerCompleteFunct aComplete,
  void *aAppState
)

Weave থ্রেডে যত তাড়াতাড়ি সম্ভব চালানোর জন্য TimerCompleteFunct এর অনুরূপ একটি স্বাক্ষর সহ একটি ফাংশন নির্ধারণ করে।

বিস্তারিত
পরামিতি
[in] aComplete
একটি কলব্যাক ফাংশনের একটি পয়েন্টার যা কল করা হবে যখন এই টাইমারটি ফায়ার হবে।
[in] aAppState
আর্গুমেন্ট হিসাবে কলব্যাক ফাংশনে পাস করার জন্য একটি অ্যাপ্লিকেশন স্টেট অবজেক্টের একটি পয়েন্টার।
রিটার্ন মান
WEAVE_SYSTEM_ERROR_UNEXPECTED_STATE
যদি SystemLayer আরম্ভ করা না হয়।
WEAVE_SYSTEM_ERROR_NO_MEMORY
যদি SystemLayer একটি নতুন টাইমার বরাদ্দ করতে না পারে।
WEAVE_SYSTEM_NO_ERROR
সাফল্যের উপর।

প্ল্যাটফর্ম ডেটা সেট করুন

void SetPlatformData(
  void *aPlatformData
)

এটি নির্দিষ্ট ক্লায়েন্ট-নির্দিষ্ট প্ল্যাটফর্ম ডেটাকে ক্লায়েন্ট প্ল্যাটফর্ম দ্বারা পরবর্তী পুনরুদ্ধারের উদাহরণে সেট করে।

বিস্তারিত
পরামিতি
[in] aPlatformData
সেট করার জন্য ক্লায়েন্ট-নির্দিষ্ট প্ল্যাটফর্ম ডেটা।

শাটডাউন

Error Shutdown(
  void
)

স্টার্টটাইমার

Error StartTimer(
  uint32_t aMilliseconds,
  TimerCompleteFunct aComplete,
  void *aAppState
)

এই পদ্ধতিটি এক-শট টাইমার শুরু করে।

বিস্তারিত
পরামিতি
[in] aMilliseconds
মেয়াদ শেষ হওয়ার সময় মিলিসেকেন্ডে।
[in] aComplete
টাইমারের মেয়াদ শেষ হলে ফাংশনের একটি পয়েন্টার বলা হয়।
[in] aAppState
টাইমারের মেয়াদ শেষ হলে ব্যবহৃত অ্যাপ্লিকেশন স্টেট অবজেক্টের একটি পয়েন্টার।
রিটার্নস
WEAVE_SYSTEM_NO_ERROR সাফল্যে।
রিটার্নস
WEAVE_SYSTEM_ERROR_NO_MEMORY যদি একটি টাইমার বরাদ্দ না করা যায়।
রিটার্নস
অন্য মান নির্দেশ করে টাইমার শুরু হতে ব্যর্থ হয়েছে৷

রাজ্য

LayerState State(
  void
) const 

এটি লেয়ার অবজেক্টের বর্তমান অবস্থা প্রদান করে।

ওয়েক সিলেক্ট

void WakeSelect(
  void
)

I/O থ্রেডকে জাগিয়ে তুলুন যা ওয়েক পাইপে একটি একক বাইট লিখে select() ব্যবহার করে ফাইলের বর্ণনাকারীকে নিরীক্ষণ করে।

দ্রষ্টব্য: যদি HandleSelectResult() এর মধ্যে থেকে WakeSelect() কল করা হয়, তাহলে ওয়েক পাইপে লেখাটি এড়িয়ে যেতে পারে, যেহেতু I/O থ্রেড ইতিমধ্যেই জেগে আছে। তদুপরি, এই লেখাটি ব্যর্থ হলে আমরা চিন্তা করি না কারণ একমাত্র যুক্তিসঙ্গতভাবে ব্যর্থতার কারণ হল পাইপটি পূর্ণ, এই ক্ষেত্রে নির্বাচন করা কলিং থ্রেডটি যাইহোক জেগে উঠতে চলেছে৷

পাবলিক স্ট্যাটিক ফাংশন

GetClock_Monotonic

uint64_t GetClock_Monotonic(
  void
)

মাইক্রোসেকেন্ডের এককে একটি একঘেয়ে সিস্টেম সময় প্রদান করে।

এই ফাংশনটি একটি স্বেচ্ছাচারী, প্ল্যাটফর্ম-সংজ্ঞায়িত যুগ থেকে মাইক্রোসেকেন্ডে একটি অতিবাহিত সময় প্রদান করে। সিস্টেমের রিবুটগুলির মধ্যে যে মানটি ফেরত দেওয়া হয়েছে তা নিশ্চিতভাবে ক্রমবর্ধমান (অর্থাৎ কখনই মোড়ানো হবে না)। অতিরিক্তভাবে, অন্তর্নিহিত সময়ের উৎসটি যেকোনও সিস্টেম স্লিপ মোডের সময় একটানা টিক দেওয়ার গ্যারান্টি দেওয়া হয় যা জেগে ওঠার পরে পুনরায় আরম্ভ করে না।

যদিও কিছু প্ল্যাটফর্ম এমন একটি মান ফেরত দিতে পারে যা সিস্টেমের জন্য বুট হওয়ার পর থেকে সময় পরিমাপ করে, অ্যাপ্লিকেশনগুলিকে এর উপর নির্ভর করা উচিত নয় । অতিরিক্তভাবে, GetClock_Monotonic() এর যুগ অন্য যেকোনো GetClock... ফাংশনের জন্য একই হতে হবে না । তাই আপেক্ষিক সময়ের গণনা শুধুমাত্র একই ফাংশন দ্বারা প্রত্যাবর্তিত মানগুলির উপর সঞ্চালিত হতে পারে।

এই ফাংশন থ্রেড-নিরাপদ যে কোনো প্ল্যাটফর্ম যে থ্রেডিং নিযুক্ত করা নিশ্চিত করা হয়.

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

GetClock_MonotonicHiRes

uint64_t GetClock_MonotonicHiRes(
  void
)

মাইক্রোসেকেন্ডের এককে একটি (সম্ভাব্য) উচ্চ-রেজোলিউশন একঘেয়ে সিস্টেম সময় প্রদান করে।

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

কিছু প্ল্যাটফর্ম GetClock_MonotonicHiRes() ব্যবহার করে একটি উচ্চ-রেজোলিউশন টাইমার ব্যবহার করতে পারে যা GetClock_Monotonic() এর চেয়ে বেশি নির্ভুলতা দিতে সক্ষম এবং এটি ধীরে ধীরে ঘড়ির সামঞ্জস্য (স্লিউইং) সাপেক্ষে নয়। এই ধরনের টাইমার ছাড়া সিস্টেমগুলি কেবল GetClock_Monotonic() এর মতো একই মান ফেরত দিতে পারে।

GetClock_MonotonicHiRes() দ্বারা প্রত্যাবর্তিত সময়ের জন্য GetClock_Monotonic() সহ অন্যান্য GetClock... ফাংশনগুলির জন্য একই হতে হবে না।

এই ফাংশন থ্রেড-নিরাপদ যে কোনো প্ল্যাটফর্ম যে থ্রেডিং নিযুক্ত করা নিশ্চিত করা হয়.

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

GetClock_MonotonicMS

uint64_t GetClock_MonotonicMS(
  void
)

মিলিসেকেন্ডের ইউনিটে একটি একঘেয়ে সিস্টেম সময় প্রদান করে।

এই ফাংশনটি একটি নির্বিচারে, প্ল্যাটফর্ম-সংজ্ঞায়িত যুগ থেকে মিলিসেকেন্ডে একটি অতিবাহিত সময় প্রদান করে। সিস্টেমের রিবুটগুলির মধ্যে যে মানটি ফেরত দেওয়া হয়েছে তা নিশ্চিতভাবে ক্রমবর্ধমান (অর্থাৎ কখনই মোড়ানো হবে না)। অতিরিক্তভাবে, অন্তর্নিহিত সময়ের উৎসটি যেকোনও সিস্টেম স্লিপ মোডের সময় একটানা টিক দেওয়ার গ্যারান্টি দেওয়া হয় যা জেগে ওঠার পরে পুনরায় আরম্ভ করে না।

যদিও কিছু প্ল্যাটফর্ম এমন একটি মান ফেরত দিতে পারে যা সিস্টেমের জন্য বুট হওয়ার পর থেকে সময় পরিমাপ করে, অ্যাপ্লিকেশনগুলিকে এর উপর নির্ভর করা উচিত নয় । অতিরিক্তভাবে, GetClock_Monotonic() এর যুগ অন্য যেকোনো GetClock... ফাংশনের জন্য একই হতে হবে না । তাই আপেক্ষিক সময়ের গণনা শুধুমাত্র একই ফাংশন দ্বারা প্রত্যাবর্তিত মানগুলির উপর সঞ্চালিত হতে পারে।

এই ফাংশন থ্রেড-নিরাপদ যে কোনো প্ল্যাটফর্ম যে থ্রেডিং নিযুক্ত করা নিশ্চিত করা হয়.

বিস্তারিত
রিটার্নস
একটি নির্বিচারে, প্ল্যাটফর্ম-সংজ্ঞায়িত যুগ থেকে মিলিসেকেন্ডে অতিবাহিত সময়।

GetClock_RealTime

Error GetClock_RealTime(
  uint64_t & curTime
)

মাইক্রোসেকেন্ড ইউনিক্স সময় বিন্যাসে বর্তমান বাস্তব (সিভিল) সময় প্রদান করে।

এই পদ্ধতিটি বর্তমান রিয়েল টাইমের স্থানীয় প্ল্যাটফর্মের ধারণা ফিরিয়ে দেয়, যা মাইক্রোসেকেন্ডে স্কেল করা ইউনিক্স সময়ের মান হিসাবে প্রকাশ করা হয়। অন্তর্নিহিত ঘড়িতে কমপক্ষে পুরো সেকেন্ডের হারে (1,000,000 মান) টিক দেওয়ার নিশ্চয়তা রয়েছে, তবে কিছু প্ল্যাটফর্মে দ্রুত টিক টিক হতে পারে।

যদি অন্তর্নিহিত প্ল্যাটফর্মটি রিয়েল টাইম ট্র্যাক করতে সক্ষম হয়, কিন্তু সিস্টেমটি বর্তমানে আনসিঙ্ক্রোনাইজ করা থাকে, GetClock_RealTime() ত্রুটি WEAVE_SYSTEM_ERROR_REAL_TIME_NOT_SYNCED ফিরিয়ে দেবে৷

যে প্ল্যাটফর্মগুলি রিয়েল টাইম ট্র্যাক করতে অক্ষম, সেখানে GetClock_RealTime() পদ্ধতিটি অনুপস্থিত থাকতে পারে, যার ফলে এটির উল্লেখ করে এমন যেকোনো অ্যাপ্লিকেশনের জন্য একটি লিঙ্ক ত্রুটি হতে পারে। বিকল্পভাবে, এই ধরনের প্ল্যাটফর্মগুলি GetClock_RealTime() এর বাস্তবায়ন সরবরাহ করতে পারে যা সর্বদা WEAVE_SYSTEM_ERROR_NOT_SUPPORTED ত্রুটি ফেরত দেয়।

এই ফাংশন থ্রেড-নিরাপদ যে কোনো প্ল্যাটফর্ম যে থ্রেডিং নিযুক্ত করা নিশ্চিত করা হয়.

বিস্তারিত
পরামিতি
[out] curTime
বর্তমান সময়, ইউনিক্স সময়কে মাইক্রোসেকেন্ডে স্কেল করা হয়েছে।
রিটার্ন মান
WEAVE_SYSTEM_NO_ERROR
যদি পদ্ধতি সফল হয়।
#WEAVE_SYSTEM_ERROR_REAL_TIME_NOT_SYNCED
যদি প্ল্যাটফর্মটি রিয়েল টাইম ট্র্যাক করতে সক্ষম হয় তবে বর্তমানে এটি আনসিঙ্ক্রোনাইজ করা আছে।
#WEAVE_SYSTEM_ERROR_NOT_SUPPORTED
যদি প্ল্যাটফর্মটি রিয়েল টাইম ট্র্যাক করতে অক্ষম হয়।

GetClock_RealTimeMS

Error GetClock_RealTimeMS(
  uint64_t & curTimeMS
)

মিলিসেকেন্ড ইউনিক্স সময় বিন্যাসে বর্তমান বাস্তব (সিভিল) সময় প্রদান করে।

এই পদ্ধতিটি বর্তমান বাস্তব সময়ের স্থানীয় প্ল্যাটফর্মের ধারণা প্রদান করে, যা মিলিসেকেন্ডে স্কেল করা ইউনিক্স সময় মান হিসাবে প্রকাশ করা হয়। অন্তর্নিহিত ঘড়িতে কমপক্ষে পুরো সেকেন্ডের হারে (1,000,000 মান) টিক দেওয়ার নিশ্চয়তা রয়েছে, তবে কিছু প্ল্যাটফর্মে দ্রুত টিক টিক হতে পারে।

যদি অন্তর্নিহিত প্ল্যাটফর্মটি রিয়েল টাইম ট্র্যাক করতে সক্ষম হয়, কিন্তু সিস্টেমটি বর্তমানে আনসিঙ্ক্রোনাইজ করা থাকে, GetClock_RealTimeMS() WEAVE_SYSTEM_ERROR_REAL_TIME_NOT_SYNCED ত্রুটি ফিরিয়ে দেবে৷

যে প্ল্যাটফর্মগুলি রিয়েল টাইম ট্র্যাক করতে অক্ষম, সেখানে GetClock_RealTimeMS() পদ্ধতি অনুপস্থিত থাকতে পারে, যার ফলে এটির উল্লেখ করে এমন যেকোনো অ্যাপ্লিকেশনের জন্য একটি লিঙ্ক ত্রুটি হতে পারে। বিকল্পভাবে, এই ধরনের প্ল্যাটফর্মগুলি GetClock_RealTimeMS() এর বাস্তবায়ন সরবরাহ করতে পারে যা সর্বদা WEAVE_SYSTEM_ERROR_NOT_SUPPORTED ত্রুটি ফেরত দেয়।

এই ফাংশন থ্রেড-নিরাপদ যে কোনো প্ল্যাটফর্ম যে থ্রেডিং নিযুক্ত করা নিশ্চিত করা হয়.

বিস্তারিত
পরামিতি
[out] curTime
বর্তমান সময়, ইউনিক্স সময়কে মিলিসেকেন্ডে স্কেল করা হয়েছে।
রিটার্ন মান
WEAVE_SYSTEM_NO_ERROR
যদি পদ্ধতি সফল হয়।
#WEAVE_SYSTEM_ERROR_REAL_TIME_NOT_SYNCED
যদি প্ল্যাটফর্মটি রিয়েল টাইম ট্র্যাক করতে সক্ষম হয় তবে বর্তমানে এটি আনসিঙ্ক্রোনাইজ করা আছে।
#WEAVE_SYSTEM_ERROR_NOT_SUPPORTED
যদি প্ল্যাটফর্মটি রিয়েল টাইম ট্র্যাক করতে অক্ষম হয়।

সেটক্লক_রিয়েলটাইম

Error SetClock_RealTime(
  uint64_t newCurTime
)

বর্তমান বাস্তব (সিভিল) সময়ের প্ল্যাটফর্মের ধারণা সেট করে।

বর্তমান বাস্তব সময়ের স্থানীয় প্ল্যাটফর্মের ধারণা সেট করতে অ্যাপ্লিকেশনগুলি এই ফাংশনটিকে কল করতে পারে। নতুন বর্তমান সময়কে মাইক্রোসেকেন্ডে স্কেল করা ইউনিক্স সময়ের মান হিসাবে প্রকাশ করা হয়।

একবার সেট হয়ে গেলে, অন্তর্নিহিত প্ল্যাটফর্ম ঘড়ি অন্তত পুরো সেকেন্ডের গ্রানুলারিটি সহ রিয়েল টাইম ট্র্যাক করার গ্যারান্টি দেওয়া হয়।

কিছু প্ল্যাটফর্ম কোন অ্যাপ্লিকেশন বা প্রসেস রিয়েল টাইম সেট করতে পারে তা সীমাবদ্ধ করতে পারে। কলকারীকে রিয়েল টাইম পরিবর্তন করার অনুমতি না থাকলে, SetClock_RealTime() ফাংশন WEAVE_SYSTEM_ERROR_ACCESS_DENIED ত্রুটি ফিরিয়ে দেবে।

যে প্ল্যাটফর্মগুলি রিয়েল টাইম ট্র্যাক করতে অক্ষম, বা রিয়েল টাইম সেট করার ক্ষমতা অফার করে না, সেখানে SetClock_RealTime() ফাংশন অনুপস্থিত থাকতে পারে, যার ফলে এটি উল্লেখ করে এমন যেকোনো অ্যাপ্লিকেশনের জন্য একটি লিঙ্ক ত্রুটি হতে পারে। বিকল্পভাবে, এই জাতীয় প্ল্যাটফর্মগুলি SetClock_RealTime() এর বাস্তবায়ন সরবরাহ করতে পারে যা সর্বদা WEAVE_SYSTEM_ERROR_NOT_SUPPORTED ত্রুটি ফেরত দেয়।

এই ফাংশন থ্রেড-নিরাপদ যে কোনো প্ল্যাটফর্ম যে থ্রেডিং নিযুক্ত করা নিশ্চিত করা হয়.

বিস্তারিত
পরামিতি
[in] newCurTime
নতুন বর্তমান সময়, ইউনিক্স সময়কে মাইক্রোসেকেন্ডে স্কেল করা হয়েছে।
রিটার্ন মান
WEAVE_SYSTEM_NO_ERROR
যদি পদ্ধতি সফল হয়।
#WEAVE_SYSTEM_ERROR_NOT_SUPPORTED
যদি প্ল্যাটফর্মটি রিয়েল টাইম ট্র্যাক করতে অক্ষম হয়।
#WEAVE_SYSTEM_ERROR_ACCESS_DENIED
কলিং অ্যাপ্লিকেশনের বর্তমান সময় সেট করার বিশেষাধিকার না থাকলে।