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) 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
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
वेक पाइप पर सिंगल बाइट लिखकर, Select() का इस्तेमाल करके फ़ाइल डिस्क्रिप्टर पर नज़र रखने वाले I/O थ्रेड को चालू करें.

सार्वजनिक स्टैटिक फ़ंक्शन

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 इवेंट मैनेज करने की उसकी क्षमता बढ़ाई जा सके.

जानकारी
पैरामीटर
[in] aDelegate
ऐसा LwIP इवेंट हैंडलर डेलीगेट स्ट्रक्चर जिसे शुरू नहीं किया गया है
रिटर्न वैल्यू
WEAVE_SYSTEM_NO_ERROR
सफलता पर.
WEAVE_SYSTEM_ERROR_BAD_ARGS
अगर aडेलिगेट में मौजूद फ़ंक्शन पॉइंटर NULL है

CancelTimer

void CancelTimer(
  TimerCompleteFunct aOnComplete,
  void *aAppState
)

इस तरीके से, StartTimer() से शुरू हुए एक बार ट्रिगर होने वाले टाइमर को रद्द किया जाता है.

जानकारी
पैरामीटर
[in] aOnComplete
StartTimer() को कॉल करने के लिए इस्तेमाल किए गए कॉलबैक फ़ंक्शन का पॉइंटर.
[in] aAppState
StartTimer() को कॉल करने के लिए इस्तेमाल किए गए ऐप्लिकेशन की स्थिति के ऑब्जेक्ट का पॉइंटर.

DispatchEvent

Error DispatchEvent(
  Event aEvent
)

यह तय किए गए इवेंट को, इस इंस्टेंस से हैंडल करने के लिए भेजता है.

इवेंट के टाइप और आर्ग्युमेंट को अलग-अलग प्लैटफ़ॉर्म के हुक की मदद से मैनेज किया जाता है. हुक को असल डिस्पैच के लिए, layer::HandleEvent को वापस कॉल किया जाना चाहिए.

जानकारी
पैरामीटर
[in] aEvent
प्लैटफ़ॉर्म के हिसाब से भेजा जाने वाला इवेंट ऑब्जेक्ट, जिसे हैंडल करने के लिए भेजा जाना है.
लौटाए गए सामान
सफल होने पर 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
)

यह वीव सिस्टम लेयर इवेंट को असल में डिस्पैच और हैंडलिंग के तरीके को लागू करता है.

जानकारी
पैरामीटर
[in,out] aTarget
उस लेयर ऑब्जेक्ट का रेफ़रंस जिसे इवेंट टारगेट करता है.
[in] aEventType
इवेंट / मैसेज का टाइप, जिसे मैनेज करना है.
[in] aArgument
इवेंट / मैसेज से जुड़ा तर्क.
रिटर्न वैल्यू
WEAVE_SYSTEM_NO_ERROR
सफलता पर.
WEAVE_SYSTEM_ERROR_UNEXPECTED_STATE
अगर Inetlayer ऑब्जेक्ट की स्थिति गलत है.
WEAVE_SYSTEM_ERROR_UNEXPECTED_EVENT
अगर इवेंट टाइप की पहचान नहीं हो पाई.

HandlePlatformTimer

Error HandlePlatformTimer(
  void
)

प्लैटफ़ॉर्म टाइमर के खत्म होने की जानकारी वाले इवेंट को मैनेज करें.

कॉल nl::Weave::System::Timer::HandleExpiredTimers, ताकि वे टाइमर मैनेज कर सकें जिनकी समयसीमा खत्म हो चुकी है. यह माना जाता है कि इस एपीआई को सिर्फ़ उस थ्रेड पर कॉल किया जाता है जिसमें 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 हैंडलिंग फ़ंक्शन को शुरू करता है.

जानकारी
पैरामीटर
[in] aSetSize
चुने गए कॉल की रिटर्न वैल्यू.
[in] aReadSet
पढ़ी गई फ़ाइल डिस्क्रिप्टर के सेट के लिए पॉइंटर.
[in] aWriteSet
राइट फ़ाइल डिस्क्रिप्टर के सेट के लिए पॉइंटर.
[in] aExceptionSet
गड़बड़ियों वाले फ़ाइल डिस्क्रिप्टर के सेट का पॉइंटर.

शुरू करें

Error Init(
  void *aContext
)

परत

 Layer(
  void
)

NewTimer

Error NewTimer(
  Timer *& aTimerPtr
)

PostEvent

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
नींद के कुल समय के बारे में जानकारी.

ScheduleWork

Error ScheduleWork(
  TimerCompleteFunct aComplete,
  void *aAppState
)

TimerCompleteFunct के जैसे हस्ताक्षर वाले फ़ंक्शन को शेड्यूल करता है, ताकि Weave थ्रेड पर जल्द से जल्द चल सके.

जानकारी
पैरामीटर
[in] aComplete
इस टाइमर के चालू होने पर, कॉलबैक फ़ंक्शन का पॉइंटर.
[in] aAppState
ऐप्लिकेशन की स्थिति के ऑब्जेक्ट का पॉइंटर, जिसे कॉलबैक फ़ंक्शन को तर्क के तौर पर भेजा जाना है.
रिटर्न वैल्यू
WEAVE_SYSTEM_ERROR_UNEXPECTED_STATE
अगर Systemlayer को शुरू नहीं किया गया है.
WEAVE_SYSTEM_ERROR_NO_MEMORY
अगर Systemlayer नया टाइमर असाइन नहीं कर सकता है.
WEAVE_SYSTEM_NO_ERROR
सफलता पर.

SetPlatformData

void SetPlatformData(
  void *aPlatformData
)

यह इंस्टेंस के लिए क्लाइंट के हिसाब से खास प्लैटफ़ॉर्म का डेटा सेट करता है, ताकि क्लाइंट प्लैटफ़ॉर्म को बाद में वापस पाया जा सके.

जानकारी
पैरामीटर
[in] aPlatformData
क्लाइंट के हिसाब से, प्लैटफ़ॉर्म का वह डेटा जिसे सेट करना है.

बंद है

Error Shutdown(
  void
)

StartTimer

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

यह तरीका एक बार इस्तेमाल होने वाला टाइमर शुरू करता है.

जानकारी
पैरामीटर
[in] aMilliseconds
खत्म होने का समय - मिलीसेकंड में.
[in] aComplete
टाइमर के खत्म होने पर कॉल किए जाने वाले फ़ंक्शन का पॉइंटर.
[in] aAppState
टाइमर के खत्म होने पर, ऐप्लिकेशन की स्थिति के ऑब्जेक्ट का पॉइंटर.
लौटाए गए सामान
WEAVE_system_NO_ERROR सफल होने पर.
लौटाए गए सामान
WEAVE_ सिस्टम_ERROR_NO_MEMORY अगर टाइमर असाइन नहीं किया जा सकता.
लौटाए गए सामान
टाइमर से पता चलता है कि टाइमर शुरू नहीं हो सका.

स्थिति

LayerState State(
  void
) const 

यह लेयर ऑब्जेक्ट की मौजूदा स्थिति दिखाता है.

WakeSelect

void WakeSelect(
  void
)

वेक पाइप पर सिंगल बाइट लिखकर, Select() का इस्तेमाल करके फ़ाइल डिस्क्रिप्टर पर नज़र रखने वाले I/O थ्रेड को चालू करें.

ध्यान दें: अगर WakeSelect() को HandleSelectResult() के अंदर से कॉल किया जाता है, तो वेक पाइप पर लिखने की सुविधा को स्किप किया जा सकता है, क्योंकि I/O थ्रेड पहले से ही चालू है. इसके अलावा, अगर ऐसा नहीं होता है, तो हम उस पर ध्यान नहीं देते, क्योंकि पाइप के भर जाने की वजह से सिर्फ़ यह गड़बड़ी हो सकती है. ऐसा होने पर, चुने गए कॉलिंग थ्रेड फिर भी चालू हो जाएगा.

सार्वजनिक स्टैटिक फ़ंक्शन

GetClock_Monotonic

uint64_t GetClock_Monotonic(
  void
)

माइक्रोसेकंड की इकाइयों में मोनोटोनिक सिस्टम का समय दिखाता है.

यह फ़ंक्शन, प्लैटफ़ॉर्म के मुताबिक तय किए गए Epoch के बाद से माइक्रोसेकंड में बीता हुआ समय दिखाता है. यह वैल्यू इस बात की गारंटी देती है कि सिस्टम को फिर से चालू करने पर यह लगातार बढ़ता जाएगा (यानी कभी भी रैप नहीं होगा). इसके अलावा, मौजूदा समय के सोर्स की गारंटी है कि वह सिस्टम स्लीप मोड के दौरान लगातार टिक जाएगा और स्क्रीन चालू होने पर उसे रीस्टार्ट करना ज़रूरी नहीं होगा.

हालांकि, कुछ प्लैटफ़ॉर्म ऐसा वैल्यू दिखा सकते हैं जो सिस्टम के चालू होने के बाद के समय को मापता है, ऐप्लिकेशन को इस पर भरोसा नहीं करना चाहिए. इसके अलावा, GetClock_Monotonic() के लिए epoch का इस्तेमाल, किसी भी अन्य getClock... फ़ंक्शन के लिए इस्तेमाल किए जाने वाले epoch के जैसा होना ज़रूरी नहीं है. इसलिए, रिलेटिव टाइम की गिनती सिर्फ़ उसी फ़ंक्शन से लौटाए गए वैल्यू के लिए की जा सकती है.

यह फ़ंक्शन, थ्रेड की सुविधा इस्तेमाल करने वाले किसी भी प्लैटफ़ॉर्म पर, थ्रेड के लिए सुरक्षित होगा.

जानकारी
लौटाए गए सामान
प्लैटफ़ॉर्म के मुताबिक तय किए गए 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() गड़बड़ी WEAVE_system_ERROR_REAL_TIME_NOT_SYNCED दिखाएगा.

रीयल टाइम को ट्रैक नहीं कर सकने वाले प्लैटफ़ॉर्म पर, हो सकता है कि GetClock_RealTime() तरीका न दिखे. इसकी वजह से, इसे इस्तेमाल करने वाले सभी ऐप्लिकेशन के लिंक में गड़बड़ी हो जाएगी. इसके अलावा, ऐसे प्लैटफ़ॉर्म GetClock_RealTime() को लागू कर सकते हैं जो हमेशा गड़बड़ी WEAVE_ सिस्टम_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
)

मौजूदा असल (सिविल) समय को मिलीसेकंड यूनिक्स टाइम फ़ॉर्मैट में दिखाता है.

यह तरीका, स्थानीय प्लैटफ़ॉर्म के मौजूदा रीयल टाइम के बारे में बताता है. इसे मिलीसेकंड में स्केल किए गए यूनिक्स टाइम वैल्यू के तौर पर दिखाया जाता है. इसमें मौजूद घड़ी में कम से कम पूरे सेकंड (10,00,000 की वैल्यू) में सटीक घड़ी होगी. हालांकि, कुछ प्लैटफ़ॉर्म पर यह तेज़ी से चल सकता है.

अगर सिस्टम में मौजूद प्लैटफ़ॉर्म रीयल टाइम को ट्रैक कर सकता है, लेकिन सिस्टम फ़िलहाल सिंक नहीं है, तो GetClock_RealTimeMS() गड़बड़ी WEAVE_System_ERROR_REAL_TIME_NOT_SYNCED दिखाएगा.

रीयल टाइम को ट्रैक नहीं कर सकने वाले प्लैटफ़ॉर्म पर, हो सकता है कि GetClock_RealTimeMS() तरीका न दिखे. इसकी वजह से, इसे इस्तेमाल करने वाले सभी ऐप्लिकेशन के लिंक में गड़बड़ी हो जाएगी. इसके अलावा, इस तरह के प्लैटफ़ॉर्म GetClock_RealTimeMS() को लागू कर सकते हैं जो हमेशा WEAVE_ सिस्टम_ERROR_NOT_SUPPORTED गड़बड़ी दिखाता है.

यह फ़ंक्शन, थ्रेड की सुविधा इस्तेमाल करने वाले किसी भी प्लैटफ़ॉर्म पर, थ्रेड के लिए सुरक्षित होगा.

जानकारी
पैरामीटर
[out] curTime
मौजूदा समय, जिसे यूनिक्स समय के तौर पर मिलीसेकंड में स्केल किया गया है.
रिटर्न वैल्यू
WEAVE_SYSTEM_NO_ERROR
अगर तरीका काम कर गया है.
#WEAVE_SYSTEM_ERROR_REAL_TIME_NOT_SYNCED
अगर प्लैटफ़ॉर्म रीयल-टाइम ट्रैक कर सकता है, लेकिन फ़िलहाल वह सिंक नहीं है.
#WEAVE_SYSTEM_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 गड़बड़ी दिखाता है.

यह फ़ंक्शन, थ्रेड की सुविधा इस्तेमाल करने वाले किसी भी प्लैटफ़ॉर्म पर, थ्रेड के लिए सुरक्षित होगा.

जानकारी
पैरामीटर
[in] newCurTime
नया मौजूदा समय, जिसे यूनिक्स समय के तौर पर माइक्रोसेकंड में बढ़ाया गया है.
रिटर्न वैल्यू
WEAVE_SYSTEM_NO_ERROR
अगर तरीका काम कर गया है.
#WEAVE_SYSTEM_ERROR_NOT_SUPPORTED
अगर प्लैटफ़ॉर्म रीयल-टाइम ट्रैक करने में असमर्थ है.
#WEAVE_SYSTEM_ERROR_ACCESS_DENIED
अगर कॉल करने वाले ऐप्लिकेशन के पास मौजूदा समय सेट करने का खास अधिकार नहीं है.