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) | typedefError(* |
TimerCompleteFunct )(Layer *aLayer, void *aAppState, Error aError) | typedefvoid(* |
পাবলিক ফাংশন | |
---|---|
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 ইভেন্টগুলি পরিচালনা করার ক্ষমতা প্রসারিত করতে সিস্টেম স্তরে একটি ইভেন্ট হ্যান্ডলার প্রতিনিধি যোগ করে।
বিস্তারিত | |||||
---|---|---|---|---|---|
পরামিতি |
| ||||
রিটার্ন মান |
|
বাতিল টাইমার
void CancelTimer( TimerCompleteFunct aOnComplete, void *aAppState )
এই পদ্ধতিটি একটি ওয়ান-শট টাইমার বাতিল করে, যা আগে StartTimer()
এর মাধ্যমে শুরু হয়েছিল।
বিস্তারিত | |||||
---|---|---|---|---|---|
পরামিতি |
|
ডিসপ্যাচ ইভেন্ট
Error DispatchEvent( Event aEvent )
এটি এই উদাহরণ দ্বারা পরিচালনার জন্য নির্দিষ্ট ইভেন্ট প্রেরণ করে।
ইভেন্ট থেকে টাইপ এবং আর্গুমেন্টের আনমার্শালিং একটি প্ল্যাটফর্ম-নির্দিষ্ট হুক দ্বারা পরিচালিত হয় যা প্রকৃত প্রেরণের জন্য Layer::HandleEvent- এ ফিরে যেতে হবে।
বিস্তারিত | |||
---|---|---|---|
পরামিতি |
| ||
রিটার্নস | সাফল্যে 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 )
এটি একটি ওয়েভ সিস্টেম লেয়ার ইভেন্টের প্রকৃত প্রেরণ এবং পরিচালনাকে কার্যকর করে।
বিস্তারিত | |||||||
---|---|---|---|---|---|---|---|
পরামিতি |
| ||||||
রিটার্ন মান |
|
হ্যান্ডেল প্ল্যাটফর্ম টাইমার
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 হ্যান্ডলিং ফাংশনগুলিকে আহ্বান করে।
বিস্তারিত | |||||||||
---|---|---|---|---|---|---|---|---|---|
পরামিতি |
|
ইনিট
Error Init( void *aContext )
স্তর
Layer( void )
নিউটাইমার
Error NewTimer( Timer *& aTimerPtr )
পোস্ট ইভেন্ট
Error PostEvent( Object & aTarget, EventType aEventType, uintptr_t aArgument )
এটি এই উদাহরণের প্ল্যাটফর্ম-নির্দিষ্ট ইভেন্ট সারিতে প্রদত্ত আর্গুমেন্ট সহ নির্দিষ্ট ধরণের একটি ইভেন্ট/বার্তা পোস্ট করে।
বিস্তারিত | |||||||||
---|---|---|---|---|---|---|---|---|---|
পরামিতি |
| ||||||||
রিটার্ন মান |
|
PrepareSelect
void PrepareSelect( int & aSetSize, fd_set *aReadSet, fd_set *aWriteSet, fd_set *aExceptionSet, struct timeval & aSleepTime )
select()
এর সাথে কাজ করার জন্য ফাইল বর্ণনাকারীর সেট প্রস্তুত করুন।
বিস্তারিত | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
পরামিতি |
|
শিডিউল ওয়ার্ক
Error ScheduleWork( TimerCompleteFunct aComplete, void *aAppState )
Weave থ্রেডে যত তাড়াতাড়ি সম্ভব চালানোর জন্য TimerCompleteFunct
এর অনুরূপ একটি স্বাক্ষর সহ একটি ফাংশন নির্ধারণ করে।
বিস্তারিত | |||||||
---|---|---|---|---|---|---|---|
পরামিতি |
| ||||||
রিটার্ন মান |
|
প্ল্যাটফর্ম ডেটা সেট করুন
void SetPlatformData( void *aPlatformData )
এটি নির্দিষ্ট ক্লায়েন্ট-নির্দিষ্ট প্ল্যাটফর্ম ডেটাকে ক্লায়েন্ট প্ল্যাটফর্ম দ্বারা পরবর্তী পুনরুদ্ধারের উদাহরণে সেট করে।
বিস্তারিত | |||
---|---|---|---|
পরামিতি |
|
শাটডাউন
Error Shutdown( void )
স্টার্টটাইমার
Error StartTimer( uint32_t aMilliseconds, TimerCompleteFunct aComplete, void *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 ত্রুটি ফেরত দেয়।
এই ফাংশন থ্রেড-নিরাপদ যে কোনো প্ল্যাটফর্ম যে থ্রেডিং নিযুক্ত করা নিশ্চিত করা হয়.
বিস্তারিত | |||||||
---|---|---|---|---|---|---|---|
পরামিতি |
| ||||||
রিটার্ন মান |
|
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 ত্রুটি ফেরত দেয়।
এই ফাংশন থ্রেড-নিরাপদ যে কোনো প্ল্যাটফর্ম যে থ্রেডিং নিযুক্ত করা নিশ্চিত করা হয়.
বিস্তারিত | |||||||
---|---|---|---|---|---|---|---|
পরামিতি |
| ||||||
রিটার্ন মান |
|
সেটক্লক_রিয়েলটাইম
Error SetClock_RealTime( uint64_t newCurTime )
বর্তমান বাস্তব (সিভিল) সময়ের প্ল্যাটফর্মের ধারণা সেট করে।
বর্তমান বাস্তব সময়ের স্থানীয় প্ল্যাটফর্মের ধারণা সেট করতে অ্যাপ্লিকেশনগুলি এই ফাংশনটিকে কল করতে পারে। নতুন বর্তমান সময়কে মাইক্রোসেকেন্ডে স্কেল করা ইউনিক্স সময়ের মান হিসাবে প্রকাশ করা হয়।
একবার সেট হয়ে গেলে, অন্তর্নিহিত প্ল্যাটফর্ম ঘড়ি অন্তত পুরো সেকেন্ডের গ্রানুলারিটি সহ রিয়েল টাইম ট্র্যাক করার গ্যারান্টি দেওয়া হয়।
কিছু প্ল্যাটফর্ম কোন অ্যাপ্লিকেশন বা প্রসেস রিয়েল টাইম সেট করতে পারে তা সীমাবদ্ধ করতে পারে। কলকারীকে রিয়েল টাইম পরিবর্তন করার অনুমতি না থাকলে, SetClock_RealTime() ফাংশন WEAVE_SYSTEM_ERROR_ACCESS_DENIED ত্রুটি ফিরিয়ে দেবে।
যে প্ল্যাটফর্মগুলি রিয়েল টাইম ট্র্যাক করতে অক্ষম, বা রিয়েল টাইম সেট করার ক্ষমতা অফার করে না, সেখানে SetClock_RealTime() ফাংশন অনুপস্থিত থাকতে পারে, যার ফলে এটি উল্লেখ করে এমন যেকোনো অ্যাপ্লিকেশনের জন্য একটি লিঙ্ক ত্রুটি হতে পারে। বিকল্পভাবে, এই জাতীয় প্ল্যাটফর্মগুলি SetClock_RealTime() এর বাস্তবায়ন সরবরাহ করতে পারে যা সর্বদা WEAVE_SYSTEM_ERROR_NOT_SUPPORTED ত্রুটি ফেরত দেয়।
এই ফাংশন থ্রেড-নিরাপদ যে কোনো প্ল্যাটফর্ম যে থ্রেডিং নিযুক্ত করা নিশ্চিত করা হয়.
বিস্তারিত | |||||||
---|---|---|---|---|---|---|---|
পরামিতি |
| ||||||
রিটার্ন মান |
|