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

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

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::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 हैंडलिंग फ़ंक्शन शुरू करता है.

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

Init

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_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 गड़बड़ी दिखाता है.

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

ब्यौरा
पैरामीटर
[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() गड़बड़ी दिखाएगा.

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