संग्रह की मदद से व्यवस्थित रहें अपनी प्राथमिकताओं के आधार पर, कॉन्टेंट को सेव करें और कैटगरी में बांटें.

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) टाइपडेफ़
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
यह इस इंस्टेंस और#39; प्लैटफ़ॉर्म के खास इवेंट की सूची में दिए गए तर्क के साथ, बताए गए टाइप का इवेंट / मैसेज पोस्ट करता है.
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
मौजूदा असली समय (सिविल) के समय के बारे में बताने वाला प्लैटफ़ॉर्म सेट करता है.

सार्वजनिक प्रकार

इवेंट हैंडलर

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

टाइमर पूरा किया गया

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

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

जोड़ेंEventHandlerDelegate

Error AddEventHandlerDelegate(
  LwIPEventHandlerDelegate & aDelegate
)

इससे LwIP इवेंट को हैंडल करने की क्षमता बढ़ाने के लिए, सिस्टम लेयर में इवेंट हैंडलर का ऐक्सेस जोड़ा जाता है.

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

टाइमर रद्द करें

void CancelTimer(
  TimerCompleteFunct aOnComplete,
  void *aAppState
)

इस तरीके से एक शॉट वाला टाइमर रद्द हो जाता है. यह StartTimer() से पहले शुरू हुआ था.

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

डिस्पैच इवेंट

Error DispatchEvent(
  Event aEvent
)

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

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

ब्यौरा
पैरामीटर
[in] aEvent
प्लैटफ़ॉर्म के हिसाब से इवेंट ऑब्जेक्ट को हैंडलिंग के लिए भेजा जाता है.
लौटाए गए सामान
सफलता पर WEAVE_System_NO_ERROR; या फिर, आरंभ न होने की वजह का संकेत देने वाली एक खास गड़बड़ी.

डिस्पैच इवेंट

Error DispatchEvents(
  void
)

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

ब्यौरा
लौटाए गए सामान
इंस्टॉल होने के बाद, WEAVE_System_NO_ERROR; नहीं तो, किसी खास गड़बड़ी की वजह से शुरू नहीं हो सका.

GetPlatformData

void * GetPlatformData(
  void
) const 

यह इंस्टेंस को असाइन किया गया सभी क्लाइंट का खास प्लैटफ़ॉर्म डेटा दिखाता है, अगर यह पहले से सेट किया गया हो.

ब्यौरा
लौटाए गए सामान
क्लाइंट का खास प्लैटफ़ॉर्म डेटा, अगर उसे पहले से सेट किया गया हो; अगर ऐसा नहीं है, तो शून्य है.

हैंडल इवेंट

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::HandleEXPIRE लिए गए टाइमर का इस्तेमाल किया गया है. इससे, इन टाइमर की समयसीमा खत्म हो जाती है. यह माना जाता है कि इस एपीआई का इस्तेमाल सिर्फ़ उस थ्रेड पर किया जाता है जिसके पास वीव सिस्टम लेयर ऑब्जेक्ट होता है.

ब्यौरा
लौटाए गए सामान
सफल होने पर 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
)

यह इस इंस्टेंस और#39; प्लैटफ़ॉर्म के खास इवेंट की सूची में दिए गए तर्क के साथ, बताए गए टाइप का इवेंट / मैसेज पोस्ट करता है.

ब्यौरा
पैरामीटर
[in,out] aTarget
Weave System Layer ऑब्जेक्ट का पॉइंटर, पोस्ट के लिए अनुरोध करता है.
[in] aEventType
पोस्ट किए जाने वाले इवेंट का टाइप.
[in,out] aArgument
पोस्ट करने के लिए, इवेंट से जुड़ा आर्ग्युमेंट.
सामान लौटाने की वैल्यू
WEAVE_SYSTEM_NO_ERROR
सफल रहा.
WEAVE_SYSTEM_ERROR_UNEXPECTED_STATE
अगर लेयर ऑब्जेक्ट की स्थिति गलत है.
WEAVE_SYSTEM_ERROR_NO_MEMORY
अगर इवेंट की सूची पहले से ही भरी हुई है.
other
प्लैटफ़ॉर्म के हिसाब से बनी गड़बड़ियां, जो पुष्टि न होने की वजह दिखाती हैं.

तैयार करें

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
)

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
)

टाइमर शुरू करें

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

इस तरीके से वन-शॉट टाइमर शुरू होता है.

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

राज्य

LayerState State(
  void
) const 

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

WakeSelect

void WakeSelect(
  void
)

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

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

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

GetClock_Monotonic

uint64_t GetClock_Monotonic(
  void
)

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

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

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

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

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

GetClock_MonotonicHiRes

uint64_t GetClock_MonotonicHiRes(
  void
)

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

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

कुछ प्लैटफ़ॉर्म, GetClock_MonotonicHiRes() को लागू कर सकते हैं. यह हाई रिज़ॉल्यूशन वाले टाइमर का इस्तेमाल करता है, जो GetClock_Monotonic() से ज़्यादा सटीक होता है. साथ ही, यह क्रम के हिसाब से घड़ियों के अडजस्टमेंट (स्लीविंग) पर निर्भर नहीं करता. बिना टाइमर वाले सिस्टम, GetClock_Monotonic() के बराबर वैल्यू ही दे सकते हैं.

GetClock_MonotonicHiRes() से मिले समय के लिए GetClock_Monotonic() जैसे epoch का इस्तेमाल, GetClock_Monotonic() फ़ंक्शन वाले किसी भी फ़ंक्शन के लिए करना ज़रूरी नहीं है.

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

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

GetClock_MonotonicMS

uint64_t GetClock_MonotonicMS(
  void
)

मिलीसेकंड में एक मोनेटिक सिस्टम समय देता है.

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

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

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

ब्यौरा
लौटाए गए सामान
प्लैटफ़ॉर्म की ओर से तय किए गए समय के बाद, मिलीसेकंड में समय खत्म हो गया.

GetClock_realTime

Error GetClock_RealTime(
  uint64_t & curTime
)

वर्तमान सेकंड (सिविल) समय को माइक्रोसेकंड यूनिक्स समय प्रारूप में लौटाता है.

इस तरीके से लोकल प्लैटफ़ॉर्म का #{0/}9 वर्शन दिखता है. इससे यह पता चलता है कि यह रीयल टाइम में यूनीक है या नहीं. इसके हिसाब से, यह यूनिक्स टाइम की वैल्यू के तौर पर माइक्रोसेकंड में बदल जाता है. नीचे दी गई घड़ी कम से कम सेकंड की दर (1,000,000 के मान) पर टिकने की गारंटी होती है. हालांकि, कुछ प्लैटफ़ॉर्म पर यह तेज़ी से दिख सकती है.

अगर दिया गया प्लैटफ़ॉर्म, रीयल टाइम में ट्रैक करने की सुविधा देता है, लेकिन फ़िलहाल सिस्टम सिंक नहीं किया गया है, तो GetClock_realTime() गड़बड़ी WEAVE_सिस्टम_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
)

वर्तमान वास्तविक (सिविल) समय को मिलीसेकंड में यूनिक्स समय प्रारूप देता है.

इस तरीके से, स्थानीय प्लैटफ़ॉर्म का मौजूदा #{0/}3 व्यू होता है. इसे यूनिक्स टाइम की वैल्यू के तौर पर मिलीसेकंड में दिखाया जाता है. नीचे दी गई घड़ी कम से कम सेकंड की दर (1,000,000 के मान) पर टिकने की गारंटी होती है. हालांकि, कुछ प्लैटफ़ॉर्म पर यह तेज़ी से दिख सकती है.

अगर दिए गए प्लैटफ़ॉर्म में रीयल टाइम ट्रैकिंग की सुविधा है, लेकिन फ़िलहाल सिस्टम सिंक नहीं होता है, तो GetClock_RealTimeMS() की मदद से WEAVE_सिस्टम_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
अगर प्लैटफ़ॉर्म, रीयल टाइम में ट्रैक नहीं कर पा रहा है.

सेट समय लॉक_रीयल टाइम

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
अगर कॉल करने वाले ऐप्लिकेशन के पास मौजूदा समय सेट करने का खास अधिकार नहीं है.