nl:: Weave:: System:: Layer
#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)
|
टाइपडिफ़Error(*
|
TimerCompleteFunct)(Layer *aLayer, void *aAppState, Error aError)
|
टाइपडिफ़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
TimerCompleteFunct के जैसे हस्ताक्षर वाले फ़ंक्शन को Weave थ्रेड पर जल्द से जल्द चलाने के लिए शेड्यूल करता है. |
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
प्लैटफ़ॉर्म के हिसाब से, मौजूदा रीयल (सिविल) समय को सेट करता है.
|
सार्वजनिक प्रकार
EventHandler
Error(* EventHandler)(Object &aTarget, EventType aEventType, uintptr_t aArgument)
TimerCompleteFunct
void(* TimerCompleteFunct)(Layer *aLayer, void *aAppState, Error aError)
सार्वजनिक फ़ंक्शन
AddEventHandlerDelegate
Error AddEventHandlerDelegate( LwIPEventHandlerDelegate & aDelegate )
इससे सिस्टम लेयर में, इवेंट हैंडलर डेलिगेट का प्रतिनिधि जुड़ जाता है, ताकि LwIP इवेंट मैनेज करने की उसकी क्षमता बढ़ाई जा सके.
ब्यौरा | |||||
---|---|---|---|---|---|
पैरामीटर |
|
||||
रिटर्न वैल्यू |
|
CancelTimer
void CancelTimer( TimerCompleteFunct aOnComplete, void *aAppState )
इस तरीके से, एक शॉट वाले टाइमर को रद्द कर दिया जाता है. यह टाइमर StartTimer()
से पहले शुरू होता था.
ब्यौरा | |||||
---|---|---|---|---|---|
पैरामीटर |
|
DispatchEvent
Error DispatchEvent( Event aEvent )
यह इस इंस्टेंस से हैंडल करने के लिए, बताए गए इवेंट को डिस्पैच करता है.
इवेंट के टाइप और आर्ग्युमेंट को अनमार्शल करने का काम, प्लैटफ़ॉर्म के हिसाब से बने एक हुक की मदद से किया जाता है. इसके बाद, असल में डेटा भेजने के लिए, layer::HandleEvent को वापस कॉल किया जाना चाहिए.
ब्यौरा | |||
---|---|---|---|
पैरामीटर |
|
||
लौटाए जाने वाले प्रॉडक्ट |
सफलता पर WEAVE_ सिस्टम_NO_ERROR; अगर ऐसा नहीं होता है, तो एक गड़बड़ी की वजह से शुरू न हो पाने की वजह बताई जा सकती है.
|
DispatchEvents
Error DispatchEvents( void )
यह किसी प्लैटफ़ॉर्म के हिसाब से बने हुक पर चलने वाला एक सिंटैक्ट रैपर है. यह इवेंट लूप पर असर डालता है. यह इवेंट लूप में चलने वाले इवेंट की सूची पर इंतज़ार करता है, इवेंट को उस सूची से हटाता है, और फिर उन्हें हैंडल करने के लिए भेजता है.
ब्यौरा | |
---|---|
लौटाए जाने वाले प्रॉडक्ट |
सफलता मिलने पर WEAVE_SYSTEM_NO_ERROR; अगर ऐसा नहीं होता है, तो एक गड़बड़ी की वजह से शुरू न हो पाने की वजह बताई जा सकती है.
|
GetPlatformData
void * GetPlatformData( void ) const
ऐसा करने पर, इंस्टेंस को असाइन किया गया, क्लाइंट का ऐसा कोई भी प्लैटफ़ॉर्म डेटा दिखाएगा जिसे पहले से सेट किया गया है.
ब्यौरा | |
---|---|
लौटाए जाने वाले प्रॉडक्ट |
अगर पहले से सेट किया गया है, तो क्लाइंट के लिए प्लैटफ़ॉर्म का डेटा; नहीं तो, शून्य.
|
HandleEvent
Error HandleEvent( Object & aTarget, EventType aEventType, uintptr_t aArgument )
यह किसी वीव सिस्टम लेयर इवेंट के असल डिस्पैच और हैंडलिंग को लागू करता है.
ब्यौरा | |||||||
---|---|---|---|---|---|---|---|
पैरामीटर |
|
||||||
रिटर्न वैल्यू |
|
HandlePlatformTimer
Error HandlePlatformTimer( void )
प्लैटफ़ॉर्म टाइमर की समयसीमा खत्म होने के इवेंट को मैनेज करना.
समय खत्म हो चुके किसी भी टाइमर को हैंडल करने के लिए, nl::Weave::System::Timer::HandleExpiresTimers पर कॉल करें. यह माना जाता है कि इस एपीआई को सिर्फ़ उस थ्रेड पर कॉल किया जाता है जो Weave System लेयर ऑब्जेक्ट का मालिकाना हक रखता है.
ब्यौरा | |
---|---|
लौटाए जाने वाले प्रॉडक्ट |
सफलता पर WEAVE_ सिस्टम_NO_ERROR, नहीं तो गड़बड़ी कोड.
|
HandleSelectResult
void HandleSelectResult( int aSetSize, fd_set *aReadSet, fd_set *aWriteSet, fd_set *aExceptionSet )
चुनिंदा कॉल से I/O हैंडल करें.
यह तरीका हर ऐक्टिव एंडपॉइंट में, बचे हुए I/O इवेंट को रजिस्टर करता है. इसके बाद, उन एंडपॉइंट के लिए, उनसे जुड़े I/O हैंडलिंग फ़ंक्शन शुरू करता है.
ब्यौरा | |||||||||
---|---|---|---|---|---|---|---|---|---|
पैरामीटर |
|
Init
Error Init( void *aContext )
परत
Layer( void )
NewTimer
Error NewTimer( Timer *& aTimerPtr )
PostEvent
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()
उन पर काम कर सके.
ब्यौरा | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
पैरामीटर |
|
ScheduleWork
Error ScheduleWork( TimerCompleteFunct aComplete, void *aAppState )
TimerCompleteFunct
के जैसे हस्ताक्षर वाले फ़ंक्शन को Weave थ्रेड पर जल्द से जल्द चलाने के लिए शेड्यूल करता है.
ब्यौरा | |||||||
---|---|---|---|---|---|---|---|
पैरामीटर |
|
||||||
रिटर्न वैल्यू |
|
SetPlatformData
void SetPlatformData( void *aPlatformData )
इससे, क्लाइंट के लिए खास प्लैटफ़ॉर्म का डेटा, इंस्टेंस पर सेट किया जाता है, ताकि क्लाइंट प्लैटफ़ॉर्म से उसे बाद में वापस लाया जा सके.
ब्यौरा | |||
---|---|---|---|
पैरामीटर |
|
बंद करें
Error Shutdown( void )
StartTimer
Error StartTimer( uint32_t aMilliseconds, TimerCompleteFunct aComplete, void *aAppState )
इस तरीके से एक शॉट वाला टाइमर शुरू हो जाएगा.
ब्यौरा | |||||||
---|---|---|---|---|---|---|---|
पैरामीटर |
|
||||||
लौटाए जाने वाले प्रॉडक्ट |
WEAVE_System_NO_ERROR सफलता पर
|
||||||
लौटाए जाने वाले प्रॉडक्ट |
WEAVE_System_ERROR_NO_MEMORY अगर कोई टाइमर असाइन नहीं किया जा सकता.
|
||||||
लौटाए जाने वाले प्रॉडक्ट |
टाइमर की वैल्यू दिखाने वाली अन्य वैल्यू शुरू नहीं हो सकी.
|
स्थिति
LayerState State( void ) const
यह लेयर ऑब्जेक्ट की मौजूदा स्थिति दिखाता है.
WakeSelect
void WakeSelect( void )
वह I/O थ्रेड चालू करें जो वेक पाइप में एक बाइट लिखकर, select() का इस्तेमाल करके फ़ाइल डिस्क्रिप्टर को मॉनिटर करता है.
ध्यान दें:अगर HandleSelectResult()
के अंदर से WakeSelect()
को कॉल किया जा रहा है, तो वेक पाइप पर लिखना स्किप किया जा सकता है, क्योंकि I/O थ्रेड पहले से ही चालू है.
इसके अलावा, अगर यह राइट काम नहीं करता है, तो हमें इसकी परवाह नहीं होती. ऐसा इसलिए, क्योंकि सिर्फ़ पाइप के भरा होने की संभावना है और इस मामले में, कॉल करने के लिए चुना गया थ्रेड फिर भी चालू हो जाएगा.
सार्वजनिक स्टैटिक फ़ंक्शन
GetClock_Monotonic
uint64_t GetClock_Monotonic( void )
माइक्रोसेकंड की इकाइयों में एक मोनोटोनिक सिस्टम समय देता है.
यह फ़ंक्शन, प्लैटफ़ॉर्म के हिसाब से तय किए गए किसी epoch के लिए, माइक्रोसेकंड में बीता हुआ समय दिखाता है. इस बात की गारंटी है कि सिस्टम को फिर से चालू करने के दौरान, दी गई वैल्यू लगातार बढ़ती जाएगी (यानी कि कभी रैप नहीं किया जाएगा). इसके अलावा, इस बात की गारंटी है कि सिस्टम के स्लीप मोड (कम बैटरी मोड) के दौरान, समय का सोर्स लगातार टिक करेगा, क्योंकि जागने के बाद रीस्टार्ट करने की ज़रूरत नहीं होती.
हालांकि कुछ प्लैटफ़ॉर्म ऐसा मान लौटाने का विकल्प चुन सकते हैं जो सिस्टम के बूट होने के बाद से अब तक के समय को मापता है, फिर भी ऐप्लिकेशन को इस पर भरोसा नहीं करना चाहिए. इसके अलावा, GetClock_Monotonic() के लिए epoch का किसी भी अन्य GetClock... फ़ंक्शन के जैसा होना ज़रूरी नहीं है. इसलिए, रिलेटिव टाइम कैलकुलेशन सिर्फ़ उसी फ़ंक्शन से लौटाए गए वैल्यू पर ही की जा सकती हैं.
थ्रेडिंग की सुविधा वाले किसी भी प्लैटफ़ॉर्म पर यह फ़ंक्शन, थ्रेड के सुरक्षित होने की गारंटी देता है.
ब्यौरा | |
---|---|
लौटाए जाने वाले प्रॉडक्ट |
एक आर्बिट्रेरी, प्लैटफ़ॉर्म-परिभाषित epoch के बाद से माइक्रोसेकंड में बीता समय.
|
GetClock_MonotonicHiRes
uint64_t GetClock_MonotonicHiRes( void )
माइक्रोसेकंड की इकाइयों में (संभावित रूप से) हाई-रिज़ॉल्यूशन के मोनोटोनिक सिस्टम टाइम दिखाता है.
यह फ़ंक्शन, प्लैटफ़ॉर्म के हिसाब से तय किए गए किसी epoch के लिए, माइक्रोसेकंड में बीता हुआ समय दिखाता है. इस बात की गारंटी है कि सिस्टम को फिर से चालू करने के दौरान, दी गई वैल्यू लगातार बढ़ती जाएगी (यानी कि कभी रैप नहीं किया जाएगा). हालांकि, सिस्टम में डीप स्लीप मोड के दौरान, टाइमर को लगातार टिक करने की ज़रूरत नहीं है.
कुछ प्लैटफ़ॉर्म, हाई-रिज़ॉल्यूशन वाले टाइमर का इस्तेमाल करके GetClock_MonotonicHiRes() को लागू कर सकते हैं. इस टाइमर को GetClock_Monotonic() से ज़्यादा सटीक तरीके से सेट किया जा सकता है. इस अपडेट पर समय के साथ घड़ी में होने वाले बदलाव (स्लविंग) की ज़रूरत नहीं होती. बिना टाइमर वाले सिस्टम, GetClock_Monotonic() की वैल्यू के तौर पर रिटर्न कर सकते हैं.
यह ज़रूरी नहीं है कि GetClock_MonotonicHiRes() से मिलने वाले समय का epoch एक जैसा हो. यह GetClock_Monotonic() जैसे अन्य GetClock... फ़ंक्शन के लिए, एक जैसे होना चाहिए.
थ्रेडिंग की सुविधा वाले किसी भी प्लैटफ़ॉर्म पर यह फ़ंक्शन, थ्रेड के सुरक्षित होने की गारंटी देता है.
ब्यौरा | |
---|---|
लौटाए जाने वाले प्रॉडक्ट |
एक आर्बिट्रेरी, प्लैटफ़ॉर्म-परिभाषित epoch के बाद से माइक्रोसेकंड में बीता समय.
|
GetClock_MonotonicMS
uint64_t GetClock_MonotonicMS( void )
मिलीसेकंड की इकाइयों में एक मोनोटोनिक सिस्टम समय देता है.
यह फ़ंक्शन, किसी आर्बिट्रेरी और प्लैटफ़ॉर्म के तय किए गए epoch के बाद, मिलीसेकंड में बीता हुआ समय दिखाता है. इस बात की गारंटी है कि सिस्टम को फिर से चालू करने के दौरान, दी गई वैल्यू लगातार बढ़ती जाएगी (यानी कि कभी रैप नहीं किया जाएगा). इसके अलावा, इस बात की गारंटी है कि सिस्टम के स्लीप मोड (कम बैटरी मोड) के दौरान, समय का सोर्स लगातार टिक करेगा, क्योंकि जागने के बाद रीस्टार्ट करने की ज़रूरत नहीं होती.
हालांकि कुछ प्लैटफ़ॉर्म ऐसा मान लौटाने का विकल्प चुन सकते हैं जो सिस्टम के बूट होने के बाद से अब तक के समय को मापता है, फिर भी ऐप्लिकेशन को इस पर भरोसा नहीं करना चाहिए. इसके अलावा, GetClock_Monotonic() के लिए epoch का किसी भी अन्य GetClock... फ़ंक्शन के जैसा होना ज़रूरी नहीं है. इसलिए, रिलेटिव टाइम कैलकुलेशन सिर्फ़ उसी फ़ंक्शन से लौटाए गए वैल्यू पर ही की जा सकती हैं.
थ्रेडिंग की सुविधा वाले किसी भी प्लैटफ़ॉर्म पर यह फ़ंक्शन, थ्रेड के सुरक्षित होने की गारंटी देता है.
ब्यौरा | |
---|---|
लौटाए जाने वाले प्रॉडक्ट |
आर्बिट्रेरी, प्लैटफ़ॉर्म-परिभाषित epoch के बाद से मिलीसेकंड में बीता समय.
|
GetClock_RealTime
Error GetClock_RealTime( uint64_t & curTime )
माइक्रोसेकंड यूनिक्स टाइम फ़ॉर्मैट में मौजूदा रीयल (सिविल) समय दिखाता है.
यह तरीका, लोकल प्लैटफ़ॉर्म के मौजूदा रीयल टाइम का अनुमान दिखाता है, जिसे माइक्रोसेकंड में स्केल किए गए यूनिक्स टाइम वैल्यू के रूप में दिखाया जाता है. इस बात की गारंटी है कि इसमें दी गई घड़ी कम से कम पूरे सेकंड (वैल्यू 10,00,000) की दर से टिक करेगी, लेकिन कुछ प्लैटफ़ॉर्म पर तेज़ी से टिक किया जा सकता है.
अगर दिया गया प्लैटफ़ॉर्म रीयल टाइम को ट्रैक कर सकता है, लेकिन सिस्टम फ़िलहाल सिंक नहीं है, तो GetClock_RealTime() गड़बड़ी दिखाएगा.
ऐसे प्लैटफ़ॉर्म पर जो रीयल टाइम को ट्रैक नहीं कर सकते, उन पर GetClock_RealTime() तरीका मौजूद नहीं हो सकता. इस वजह से, इसका रेफ़रंस देने वाले किसी भी ऐप्लिकेशन में लिंक से जुड़ी गड़बड़ी का मैसेज दिखता है. इसके अलावा, ऐसे प्लैटफ़ॉर्म GetClock_RealTime() को लागू करने की सुविधा दे सकते हैं जो हमेशा WEAVE_ सिस्टम_ERROR_NOT_SUPPORTED गड़बड़ी दिखाता है.
इस फ़ंक्शन की गारंटी है कि यह उन प्लैटफ़ॉर्म पर थ्रेड-सुरक्षित होगा जिनमें थ्रेड की सुविधा इस्तेमाल की जाती है.
ब्यौरा | |||||||
---|---|---|---|---|---|---|---|
पैरामीटर |
|
||||||
रिटर्न वैल्यू |
|
GetClock_RealTimeMS
Error GetClock_RealTimeMS( uint64_t & curTimeMS )
मिलीसेकंड में यूनिक्स टाइम फ़ॉर्मैट में मौजूदा रीयल (सिविल) समय दिखाता है.
यह तरीका, लोकल प्लैटफ़ॉर्म के मौजूदा रीयल टाइम का अनुमान दिखाता है, जिसे मिलीसेकंड में स्केल की गई यूनिक्स टाइम वैल्यू के तौर पर दिखाया जाता है. इस बात की गारंटी है कि इसमें दी गई घड़ी कम से कम पूरे सेकंड (वैल्यू 10,00,000) की दर से टिक करेगी, लेकिन कुछ प्लैटफ़ॉर्म पर तेज़ी से टिक किया जा सकता है.
अगर दिए गए प्लैटफ़ॉर्म पर रीयल टाइम को ट्रैक किया जा सकता है, लेकिन सिस्टम फ़िलहाल सिंक नहीं है, तो GetClock_RealTimeMS() गड़बड़ी दिखाएगा.
ऐसे प्लैटफ़ॉर्म पर जो रीयल-टाइम में ट्रैकिंग नहीं कर सकते, उन पर GetClock_RealTimeMS() तरीका मौजूद नहीं हो सकता. इस वजह से, इसका रेफ़रंस देने वाले किसी भी ऐप्लिकेशन में लिंक से जुड़ी गड़बड़ी का मैसेज दिखता है. इसके अलावा, ऐसे प्लैटफ़ॉर्म GetClock_RealTimeMS() को लागू करने की सुविधा दे सकते हैं जो हमेशा WEAVE_सिस्टम_ERROR_NOT_SUPPORTED गड़बड़ी दिखाता है.
थ्रेडिंग की सुविधा वाले किसी भी प्लैटफ़ॉर्म पर यह फ़ंक्शन, थ्रेड के सुरक्षित होने की गारंटी देता है.
ब्यौरा | |||||||
---|---|---|---|---|---|---|---|
पैरामीटर |
|
||||||
रिटर्न वैल्यू |
|
SetClock_RealTime
Error SetClock_RealTime( uint64_t newCurTime )
प्लैटफ़ॉर्म के हिसाब से, मौजूदा रीयल (सिविल) समय को सेट करता है.
मौजूदा रीयल टाइम के हिसाब से, लोकल प्लैटफ़ॉर्म के बारे में राय सेट करने के लिए, ऐप्लिकेशन इस फ़ंक्शन को कॉल कर सकते हैं. नए मौजूदा समय को यूनिक्स टाइम वैल्यू के तौर पर दिखाया जाता है. इसे माइक्रोसेकंड में स्केल किया गया यूनिक्स टाइम वैल्यू के तौर पर दिखाया जाता है.
सेट हो जाने के बाद, मौजूदा प्लैटफ़ॉर्म की घड़ी, रीयल टाइम को कम से कम पूरे सेकंड की जानकारी के साथ ट्रैक करेगी.
कुछ प्लैटफ़ॉर्म सीमित कर सकते हैं कि कौनसे ऐप्लिकेशन या प्रोसेस रीयल टाइम के लिए सेट की जा सकती हैं. अगर कॉल करने वाले (कॉलर) को रीयल-टाइम में बदलाव करने की अनुमति नहीं है, तो SetClock_RealTime() फ़ंक्शन, गड़बड़ी WEAVE_ सिस्टम_ERROR_ACCESS_DENIED दिखाएगा.
ऐसे प्लैटफ़ॉर्म पर जो रीयल टाइम को ट्रैक नहीं कर सकते या जिनमें रीयल टाइम सेट करने की सुविधा नहीं है, हो सकता है कि SetClock_RealTime() फ़ंक्शन मौजूद न हो. इस वजह से, लिंक करने वाले किसी भी ऐप्लिकेशन में गड़बड़ी का मैसेज दिखेगा. इसके अलावा, ऐसे प्लैटफ़ॉर्म SetClock_RealTime() को लागू करने की सुविधा दे सकते हैं जो हमेशा WEAVE_ सिस्टम_ERROR_NOT_SUPPORTED गड़बड़ी दिखाता है.
इस फ़ंक्शन की गारंटी है कि यह उन प्लैटफ़ॉर्म पर थ्रेड-सुरक्षित होगा जिनमें थ्रेड की सुविधा इस्तेमाल की जाती है.
ब्यौरा | |||||||
---|---|---|---|---|---|---|---|
पैरामीटर |
|
||||||
रिटर्न वैल्यू |
|