nl:: Weave:: Profiles:: DataManagement_Current:: LoggingManagement
#include <src/lib/profiles/data-management/Current/LoggingManagement.h>
मेमोरी में मौजूद इवेंट लॉग को मैनेज करने वाली क्लास.
खास जानकारी
कंस्ट्रक्टर और डिस्ट्रक्टर |
|
---|---|
LoggingManagement(nl::Weave::WeaveExchangeManager *inMgr, size_t inNumBuffers, const LogStorageResources *const inLogStorageResources)
LoggingManagement कंस्ट्रक्टर.
|
|
LoggingManagement(void)
LoggingManagement डिफ़ॉल्ट कंस्ट्रक्टर.
|
सार्वजनिक फ़ंक्शन |
|
---|---|
BlitEvent(EventLoadOutContext *aContext, const EventSchema & inSchema, EventWriterFunct inEventWriter, void *inAppData, const EventOptions *inOptions)
|
इवेंट लॉगिंग प्रोटोकॉल के मुताबिक इवेंट हेडर और डेटा लिखने के लिए हेल्पर फ़ंक्शन.
|
CancelShutdownInProgress(void)
|
void
mशटडाउनइनप्रोग्रेस फ़्लैग को 'गलत' पर सेट करें.
|
CheckShouldRunWDM(void)
|
bool
तय करें कि अपलोड के लिए शेड्यूल नहीं किए गए इवेंट बफ़र में बाइट की संख्या के आधार पर इवेंट ऑफ़लोड करने हैं या नहीं.
|
FetchEventsSince(nl::Weave::TLV::TLVWriter & ioWriter, ImportanceType inImportance, event_id_t & ioEventID)
|
किसी खास इवेंट आईडी के बाद से, तय की गई अहमियत के इवेंट वापस पाने का फ़ंक्शन.
|
GetBytesWritten(void) const
|
uint32_t
इस लॉग के इंस्टैंशिएट होने के बाद से, उसमें लिखी गई बाइट की कुल संख्या (सभी इवेंट महत्व पर) पाएं.
|
GetEventReader(nl::Weave::TLV::TLVReader & ioReader, ImportanceType inImportance)
|
मेमोरी में सेव लॉग के बफ़र की जांच करने के लिए, एक मददगार तरीका.
|
GetFirstEventID(ImportanceType inImportance)
|
किसी खास अहमियत के लेवल के लिए फ़िलहाल सेव किया गया पहला इवेंट आईडी फ़ेच करें.
|
GetLastEventID(ImportanceType inImportance)
|
किसी खास अहमियत के लेवल के लिए, सबसे हाल ही में बदला गया आईडी फ़ेच करें.
|
IsShutdownInProgress(void)
|
bool
mशटडाउनइनप्रोग्रेस फ़्लैग की जांच करें.
|
IsValid(void)
|
bool
IsValid से यह पता चलता है कि LoggingManagement इंस्टेंस मान्य है या नहीं.
|
LoadEvents(TLVReader & reader)
|
पहले से मौजूद Weave इवेंट लोड करें.
|
LogEvent(const EventSchema & inSchema, EventWriterFunct inEventWriter, void *inAppData, const EventOptions *inOptions)
|
विकल्पों के साथ, कॉलबैक से इवेंट लॉग करें.
|
MarkShutdownInProgress(void)
|
void
mशटडाउनइनप्रोग्रेस फ़्लैग को 'सही है' पर सेट करें.
|
NotifyEventsDelivered(ImportanceType inImportance, event_id_t inLastDeliveredEventID, uint64_t inRecipientNodeID)
|
void
|
RegisterEventCallbackForImportance(ImportanceType inImportance, FetchExternalEventsFunct inFetchCallback, NotifyExternalEventsDeliveredFunct inNotifyCallback, NotifyExternalEventsEvictedFunct inEvictedCallback, size_t inNumEvents, event_id_t *outLastEventID)
|
बाहर से सेव किए गए इवेंट के सेट को रजिस्टर करने के लिए सार्वजनिक एपीआई.
|
RegisterEventCallbackForImportance(ImportanceType inImportance, FetchExternalEventsFunct inFetchCallback, NotifyExternalEventsDeliveredFunct inNotifyCallback, size_t inNumEvents, event_id_t *outLastEventID)
|
बाहर से सेव किए गए इवेंट के सेट को रजिस्टर करने के लिए सार्वजनिक एपीआई.
|
RegisterEventCallbackForImportance(ImportanceType inImportance, FetchExternalEventsFunct inFetchCallback, size_t inNumEvents, event_id_t *outLastEventID)
|
बाहर से सेव किए गए इवेंट के सेट को रजिस्टर करने के लिए सार्वजनिक एपीआई.
|
ScheduleFlushIfNeeded(bool inFlushRequested)
|
लॉग ऑफ़लोड टास्क शेड्यूल करें.
|
SerializeEvents(TLVWriter & writer)
|
सभी ज़रूरी कामों के लिए, Weave इवेंट को क्रम से लगाएं.
|
SetBDXUploader(LogBDXUpload *inUploader)
|
void
|
SetExchangeManager(nl::Weave::WeaveExchangeManager *inMgr)
|
इस लॉगिंग सबसिस्टम के साथ इस्तेमाल किए जाने के लिए WeaveExchangeManager को सेट करें.
|
SetLoggingEndpoint(event_id_t *inEventEndpoints, size_t inNumImportanceLevels, size_t & outLoggingPosition)
|
|
SkipEvent(EventLoadOutContext *aContext)
|
void
दिए गए इवेंट आईडी के हिसाब से इवेंट लिखना स्किप करने में हेल्पर फ़ंक्शन.
|
ThrottleLogger(void)
|
void
थ्रॉटललॉगर बेहतर लॉगिंग स्तर को उत्पादन स्तर तक बढ़ाता है.
|
UnregisterEventCallbackForImportance(ImportanceType inImportance, event_id_t inEventID)
|
void
बाहर से सेव किए गए इवेंट के किसी सेट का रजिस्ट्रेशन रद्द करने के लिए सार्वजनिक एपीआई.
|
UnthrottleLogger(void)
|
void
UnthrottleLogger, सही तरीके से लॉग करने के लेवल को, कॉन्फ़िगर किए गए लॉगिंग लेवल पर पहले जैसा करता है.
|
सार्वजनिक स्टैटिक फ़ंक्शन |
|
---|---|
CreateLoggingManagement(nl::Weave::WeaveExchangeManager *inMgr, size_t inNumBuffers, const LogStorageResources *const inLogStorageResources)
|
void
LoggingManagement ऑब्जेक्ट बनाएं और दिए गए संसाधनों के साथ, लॉगिंग मैनेजमेंट सबसिस्टम को शुरू करें.
|
DestroyLoggingManagement(void)
|
void
इस सुविधा के बंद होने के बाद जो भी कार्रवाइयां की जा सकती हैं उन्हें करें.
|
GetInstance(void)
|
सार्वजनिक फ़ंक्शन
BlitEvent
WEAVE_ERROR BlitEvent( EventLoadOutContext *aContext, const EventSchema & inSchema, EventWriterFunct inEventWriter, void *inAppData, const EventOptions *inOptions )
इवेंट लॉगिंग प्रोटोकॉल के मुताबिक इवेंट हेडर और डेटा लिखने के लिए हेल्पर फ़ंक्शन.
विवरण | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
पैरामीटर |
|
CancelShutdownInProgress
void CancelShutdownInProgress( void )
mशटडाउनइनप्रोग्रेस फ़्लैग को 'गलत' पर सेट करें.
CheckShouldRunWDM
bool CheckShouldRunWDM( void )
तय करें कि अपलोड के लिए शेड्यूल नहीं किए गए इवेंट बफ़र में बाइट की संख्या के आधार पर इवेंट ऑफ़लोड करने हैं या नहीं.
फ़ंक्शन के व्यवहार को WEAVE_CONFIG_EVENT_LOGGING_BYTE_THRESHOLD कॉन्सटेंट के ज़रिए कंट्रोल किया जाता है. अगर पिछली बार WDM नोटिफ़िकेशन भेजे जाने के बाद से सिस्टम ने बाइट की उस संख्या से ज़्यादा लिखा था, तो फ़ंक्शन यह बताएगा कि NotificationEngine को ट्रिगर करने का समय हो गया है.
विवरण | |||||
---|---|---|---|---|---|
रिटर्न वैल्यू |
|
FetchEventsSince
WEAVE_ERROR FetchEventsSince( nl::Weave::TLV::TLVWriter & ioWriter, ImportanceType inImportance, event_id_t & ioEventID )
किसी खास इवेंट आईडी के बाद से, तय की गई अहमियत वाले इवेंट को वापस पाने का फ़ंक्शन.
अगर nl::Weave::TLV::TLVWriter, एक ज़रूरी टाइप, और इवेंट आईडी दिया जाता है, तो फ़ंक्शन तय किए गए इवेंट के बाद से, तय की गई अहमियत वाले इवेंट फ़ेच करेगा. फ़ंक्शन तब तक इवेंट फ़ेच करना जारी रखेगा, जब तक कि nl::Weave::TLV::TLVWriter में या लॉग में जगह खत्म नहीं हो जाती. फ़ंक्शन, इवेंट सीमा पर इवेंट लिखना बंद कर देगा.
विवरण | |||||||
---|---|---|---|---|---|---|---|
पैरामीटर |
|
||||||
रिटर्न वैल्यू |
|
GetBytesWritten
uint32_t GetBytesWritten( void ) const
इस लॉग के इंस्टैंशिएट होने के बाद से, उसमें लिखी गई बाइट की कुल संख्या (सभी इवेंट महत्व पर) पाएं.
विवरण | |
---|---|
लौटाए जाने वाले प्रॉडक्ट |
लॉग में लिखे गए बाइट की संख्या.
|
GetEventReader
WEAVE_ERROR GetEventReader( nl::Weave::TLV::TLVReader & ioReader, ImportanceType inImportance )
मेमोरी में सेव लॉग के बफ़र की जांच करने के लिए, एक मददगार तरीका.
विवरण | |||||
---|---|---|---|---|---|
पैरामीटर |
|
||||
लौटाए जाने वाले प्रॉडक्ट |
WEAVE_NO_ERROR बिना किसी शर्त के.
|
GetFirstEventID
event_id_t GetFirstEventID( ImportanceType inImportance )
किसी खास अहमियत के लेवल के लिए फ़िलहाल सेव किया गया पहला इवेंट आईडी फ़ेच करें.
विवरण | |||
---|---|---|---|
पैरामीटर |
|
||
लौटाए जाने वाले प्रॉडक्ट |
event_id_t फ़िलहाल उस इवेंट के लिए सबसे पहले सेव किया गया इवेंट आईडी
|
GetLastEventID
event_id_t GetLastEventID( ImportanceType inImportance )
किसी खास अहमियत के लेवल के लिए, सबसे हाल ही में बदला गया आईडी फ़ेच करें.
विवरण | |||
---|---|---|---|
पैरामीटर |
|
||
लौटाए जाने वाले प्रॉडक्ट |
उस इवेंट अहमियत के लिए सबसे हाल ही में संशोधित इवेंट आईडी event_id_t
|
IsShutdownInProgress
bool IsShutdownInProgress( void )
mशटडाउनइनप्रोग्रेस फ़्लैग की जांच करें.
IsValid
bool IsValid( void )
IsValid से यह पता चलता है कि LoggingManagement इंस्टेंस मान्य है या नहीं.
विवरण | |||||
---|---|---|---|---|---|
रिटर्न वैल्यू |
|
LogEvent
event_id_t LogEvent( const EventSchema & inSchema, EventWriterFunct inEventWriter, void *inAppData, const EventOptions *inOptions )
विकल्पों के साथ, कॉलबैक से इवेंट लॉग करें.
फ़ंक्शन, EventWriterFunct और ऐप्लिकेशन के लिए खास appData
कॉन्टेक्स्ट के तौर पर दिखाए गए इवेंट को लॉग करता है. यह फ़ंक्शन, इवेंट का मेटाडेटा लिखता है और inEventWriter
को nl::Weave::TLV::TLVWriter रेफ़रंस और inAppData
कॉन्टेक्स्ट के साथ कॉल करता है, ताकि उपयोगकर्ता कोड, इवेंट डेटा को सीधे इवेंट लॉग में दिखा सके. इवेंट लॉग करने का यह तरीका, मेमोरी की खपत को कम करता है, क्योंकि इवेंट डेटा को सीधे टारगेट बफ़र में क्रम से लगाया जाता है. इवेंट डेटा में कॉन्टेक्स्ट टैग होने चाहिए, ताकि inProfileID
और inEventType
से पहचाने गए स्कीमा में उनकी जानकारी मिल सके. पहले एलिमेंट के टैग को अनदेखा कर दिया जाएगा; तो इवेंट लॉगिंग सिस्टम इसे eventData टैग से बदल देगा.
अगर स्कीमा की अहमियत, LoggingConfiguration में तय की गई लॉगिंग थ्रेशोल्ड से ज़्यादा होती है, तो इवेंट को लॉग किया जाता है. अगर इवेंट की अहमियत, मौजूदा थ्रेशोल्ड से कम है, तो उसे हटा दिया जाता है और फ़ंक्शन, इवेंट आईडी के तौर पर 0
दिखाता है.
बातचीत शुरू करने का यह वैरिएंट, कॉलर को EventOptions
का कोई भी कॉम्बिनेशन सेट करने की अनुमति देता है:
- टाइमस्टैंप, जब 0 डिफ़ॉल्ट रूप से कॉल के मौजूदा समय पर सेट होता है,
- "रूट" इवेंट सोर्स का सेक्शन (इवेंट सोर्स और Trait ID); अगर शून्य है, तो यह मौजूदा डिवाइस को डिफ़ॉल्ट तौर पर सेट करती है. इवेंट को कॉल कर रहे डिवाइस से संबंधित के तौर पर मार्क किया गया है,
- इवेंट आईडी के ग्रुप बनाने के लिए, मिलता-जुलता इवेंट आईडी; जब संबंधित इवेंट आईडी 0 होता है, तो इवेंट को 'किसी दूसरे इवेंट से मिलता-जुलता नहीं है' के तौर पर मार्क किया जाता है,
- तात्कालिकता; डिफ़ॉल्ट रूप से गैर-ज़रूरी है.
विवरण | |||||||||
---|---|---|---|---|---|---|---|---|---|
पैरामीटर |
|
||||||||
लौटाए जाने वाले प्रॉडक्ट |
event_id_t अगर इवेंट को लॉग में लिखा गया है, तो इवेंट आईडी 0 होता है.
|
LoggingManagement
LoggingManagement( nl::Weave::WeaveExchangeManager *inMgr, size_t inNumBuffers, const LogStorageResources *const inLogStorageResources )
LoggingManagement कंस्ट्रक्टर.
LogStorageResources की मदद से, LoggingManagement को शुरू करें. अरे में, अहमियत के हर मान्य लेवल के लिए संसाधन उपलब्ध होना चाहिए. साथ ही, कलेक्शन के एलिमेंट को अहमियत के साथ बढ़ती हुई न्यूमेरिक वैल्यू (और घटती अहमियत) में होना चाहिए; कलेक्शन का पहला एलिमेंट सबसे ज़रूरी इवेंट के लिए असाइन किए गए रिसॉर्स से जुड़ा होता है और आखिरी एलिमेंट सबसे कम ज़रूरी इवेंट से जुड़ा होता है.
विवरण | |||||||
---|---|---|---|---|---|---|---|
पैरामीटर |
|
LoggingManagement
LoggingManagement( void )
LoggingManagement डिफ़ॉल्ट कंस्ट्रक्टर.
खास तौर पर कंपाइलर को खुश करने के लिए दिया जाता है.
विवरण | |
---|---|
लौटाए जाने वाले प्रॉडक्ट |
MarkShutdownInProgress
void MarkShutdownInProgress( void )
mशटडाउनइनप्रोग्रेस फ़्लैग को 'सही है' पर सेट करें.
NotifyEventsDelivered
void NotifyEventsDelivered( ImportanceType inImportance, event_id_t inLastDeliveredEventID, uint64_t inRecipientNodeID )
RegisterEventCallbackForImportance
WEAVE_ERROR RegisterEventCallbackForImportance( ImportanceType inImportance, FetchExternalEventsFunct inFetchCallback, NotifyExternalEventsDeliveredFunct inNotifyCallback, NotifyExternalEventsEvictedFunct inEvictedCallback, size_t inNumEvents, event_id_t *outLastEventID )
बाहर से सेव किए गए इवेंट के सेट को रजिस्टर करने के लिए सार्वजनिक एपीआई.
FetchExternalEventsFunct फ़ॉर्म के लिए एक कॉलबैक को रजिस्टर करें. इस एपीआई का इस्तेमाल करने के लिए, प्लैटफ़ॉर्म को रजिस्ट्रेशन के दौरान इवेंट की संख्या जानने की ज़रूरत होती है. अंदरूनी काम करने के तरीके के लिए भी यह संख्या स्थिर होनी चाहिए. यह एपीआई, प्लैटफ़ॉर्म को किसी खास इवेंट आईडी को रजिस्टर करने की अनुमति नहीं देता. इसलिए, यह प्लैटफ़ॉर्म को इवेंट सेव करने से रोकता है (कम से कम यूनीक इवेंट आईडी के साथ).
जब भी कोई सदस्य रेंज में इवेंट आईडी फ़ेच करने की कोशिश करेगा, तब तक कॉलबैक किया जाएगा. ऐसा तब तक होगा, जब तक उसका रजिस्ट्रेशन रद्द नहीं किया जाता.
फ़ंक्शन के इस वैरिएंट का इस्तेमाल तब करना चाहिए, जब बाहरी सेवा देने वाली कंपनी किसी सदस्य को इवेंट डिलीवर किए जाने और बाहरी इवेंट ऑब्जेक्ट को हटाए जाने, दोनों ही मामलों में इसकी सूचना पाना चाहती हो.
जब इवेंट डिलीवर किए जाते हैं, तो बाहरी कंपनी को इसके बारे में सूचना दी जाती है. इसमें पाने वाले का नोड आईडी और आखिरी इवेंट का आईडी, जिसे ईमेल पाने वाले व्यक्ति को डिलीवर किया जाता है. ध्यान दें कि एक ही इवेंट आईडी के लिए, बाहरी कंपनी को कई बार सूचना दी जा सकती है. हैंडलर पर कोई खास पाबंदी नहीं है. खास तौर पर, हैंडलर बाहरी इवेंट आईडी का रजिस्ट्रेशन रद्द कर सकता है.
अगर लॉग बफ़र से बाहरी इवेंट ऑब्जेक्ट को हटा दिया जाता है, तो बाहरी इवेंट ऑब्जेक्ट की कॉपी के साथ बाहरी इवेंट को हटाने की सूचना दी जाती है.
फ़ेल होने पर, ExternalEvents स्ट्रक्चर का पॉइंटर शून्य हो जाएगा. ऐसा न होने पर, कॉलबैक को असाइन किए गए स्टार्ट और एंड इवेंट आईडी से अपने-आप जानकारी भर जाएगी. इस पॉइंटर का इस्तेमाल, इवेंट के सेट का रजिस्ट्रेशन रद्द करने के लिए किया जाना चाहिए.
कॉलबैक में क्या-क्या काम करना ज़रूरी है, इस बारे में जानकारी के लिए, FetchExternalEventsFunct का दस्तावेज़ देखें.
विवरण | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
पैरामीटर |
|
||||||||||||
रिटर्न वैल्यू |
|
RegisterEventCallbackForImportance
WEAVE_ERROR RegisterEventCallbackForImportance( ImportanceType inImportance, FetchExternalEventsFunct inFetchCallback, NotifyExternalEventsDeliveredFunct inNotifyCallback, size_t inNumEvents, event_id_t *outLastEventID )
बाहर से सेव किए गए इवेंट के सेट को रजिस्टर करने के लिए सार्वजनिक एपीआई.
FetchExternalEventsFunct फ़ॉर्म के लिए एक कॉलबैक को रजिस्टर करें. इस एपीआई का इस्तेमाल करने के लिए, प्लैटफ़ॉर्म को रजिस्ट्रेशन के दौरान इवेंट की संख्या जानने की ज़रूरत होती है. अंदरूनी काम करने के तरीके के लिए भी यह संख्या स्थिर होनी चाहिए. यह एपीआई, प्लैटफ़ॉर्म को किसी खास इवेंट आईडी को रजिस्टर करने की अनुमति नहीं देता. इसलिए, यह प्लैटफ़ॉर्म को इवेंट सेव करने से रोकता है (कम से कम यूनीक इवेंट आईडी के साथ).
जब भी कोई सदस्य रेंज में इवेंट आईडी फ़ेच करने की कोशिश करेगा, तब तक कॉलबैक किया जाएगा. ऐसा तब तक होगा, जब तक उसका रजिस्ट्रेशन रद्द नहीं किया जाता.
फ़ंक्शन के इस वैरिएंट का इस्तेमाल तब करना चाहिए, जब बाहरी सेवा देने वाली कंपनी यह चाहती हो कि वह किसी सदस्य को इवेंट डिलीवर किए जाने की सूचना दे. हालांकि, बाहरी इवेंट ऑब्जेक्ट को हटाए जाने पर नहीं. जब इवेंट डिलीवर किए जाते हैं, तो बाहरी कंपनी को इसके बारे में सूचना दी जाती है. इसमें पाने वाले का नोड आईडी और आखिरी इवेंट का आईडी, जिसे ईमेल पाने वाले व्यक्ति को डिलीवर किया जाता है. ध्यान दें कि एक ही इवेंट आईडी के लिए, बाहरी कंपनी को कई बार सूचना दी जा सकती है. हैंडलर पर कोई खास पाबंदी नहीं है. खास तौर पर, हैंडलर बाहरी इवेंट आईडी का रजिस्ट्रेशन रद्द कर सकता है.
फ़ेल होने पर, ExternalEvents स्ट्रक्चर का पॉइंटर शून्य हो जाएगा. ऐसा न होने पर, कॉलबैक को असाइन किए गए स्टार्ट और एंड इवेंट आईडी से अपने-आप जानकारी भर जाएगी. इस पॉइंटर का इस्तेमाल, इवेंट के सेट का रजिस्ट्रेशन रद्द करने के लिए किया जाना चाहिए.
कॉलबैक में क्या लागू करना ज़रूरी है, इस बारे में जानकारी के लिए, FetchExternalEventsFunct का दस्तावेज़ देखें.
विवरण | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
पैरामीटर |
|
||||||||||
रिटर्न वैल्यू |
|
RegisterEventCallbackForImportance
WEAVE_ERROR RegisterEventCallbackForImportance( ImportanceType inImportance, FetchExternalEventsFunct inFetchCallback, size_t inNumEvents, event_id_t *outLastEventID )
बाहर से सेव किए गए इवेंट के सेट को रजिस्टर करने के लिए सार्वजनिक एपीआई.
FetchExternalEventsFunct फ़ॉर्म के लिए एक कॉलबैक को रजिस्टर करें. इस एपीआई का इस्तेमाल करने के लिए, प्लैटफ़ॉर्म को रजिस्ट्रेशन के दौरान इवेंट की संख्या जानने की ज़रूरत होती है. अंदरूनी कामकाज के लिए भी इस संख्या का स्थिर रहना ज़रूरी है. यह एपीआई, प्लैटफ़ॉर्म को किसी खास इवेंट आईडी को रजिस्टर करने की अनुमति नहीं देता. इसलिए, यह प्लैटफ़ॉर्म को इवेंट सेव करने की सुविधा से बचाता है. कम से कम यूनीक इवेंट आईडी के साथ इवेंट सेव किया जाना ज़रूरी है.
जब भी कोई सदस्य रेंज में इवेंट आईडी फ़ेच करने की कोशिश करेगा, तब तक कॉलबैक किया जाएगा. ऐसा तब तक होगा, जब तक उसका रजिस्ट्रेशन रद्द नहीं किया जाता.
फ़ंक्शन के इस वैरिएंट का इस्तेमाल तब करना चाहिए, जब बाहरी सेवा देने वाली कंपनी यह सूचना देना चाहती हो कि बाहरी इवेंट डिलीवर नहीं हुए हैं और न ही बाहरी इवेंट ऑब्जेक्ट को हटाया जा रहा है.
फ़ेल होने पर, ExternalEvents स्ट्रक्चर का पॉइंटर शून्य हो जाएगा. ऐसा न होने पर, कॉलबैक को असाइन किए गए स्टार्ट और एंड इवेंट आईडी से अपने-आप जानकारी भर जाएगी. इस पॉइंटर का इस्तेमाल, इवेंट के सेट का रजिस्ट्रेशन रद्द करने के लिए किया जाना चाहिए.
कॉलबैक में क्या-क्या काम करना ज़रूरी है, इस बारे में जानकारी के लिए, FetchExternalEventsFunct का दस्तावेज़ देखें.
विवरण | |||||||||
---|---|---|---|---|---|---|---|---|---|
पैरामीटर |
|
||||||||
रिटर्न वैल्यू |
|
ScheduleFlushIfNeeded
WEAVE_ERROR ScheduleFlushIfNeeded( bool inFlushRequested )
लॉग ऑफ़लोड टास्क शेड्यूल करें.
फ़ंक्शन यह तय करता है कि किसी टास्क की ऑफ़लोड प्रोसेस को शेड्यूल करना है या नहीं. अगर ऐसा किया जाता है, तो यह LoggingFlushHandler
को Weave थ्रेड पर एसिंक्रोनस तरीके से चलने के लिए शेड्यूल करता है.
फ़्लश शेड्यूल करने का फ़ैसला तीन बातों पर निर्भर करता है:
बफ़र फ़्लश करने का साफ़ तौर पर अनुरोध
इवेंट बफ़र की स्थिति और इवेंट के उपभोक्ताओं के साथ सिंक नहीं किए गए डेटा की मात्रा
क्या कोई पहले से अनुरोध फ़्लश अनुरोध इवेंट है और उसे अभी मंज़ूरी नहीं मिली है.
फ़्लश शेड्यूल करने का साफ़ तौर पर अनुरोध, इनपुट पैरामीटर के ज़रिए पास किया जाता है.
आम तौर पर, अपने-आप फ़्लश होने की सुविधा को तब शेड्यूल किया जाता है, जब इवेंट बफ़र में नया ऑफ़लोड शुरू करने के लिए ज़रूरी डेटा मौजूद हो. ऑफ़लोड की रणनीति के आधार पर, ऑफ़लोड के बीच कम से कम और ज़्यादा से ज़्यादा समय जैसे अन्य ट्रिगर को भी ध्यान में रखा जा सकता है.
इवेंट लॉग की 'मंज़ूरी बाकी है' स्थिति को mUploadRequested
वैरिएबल से दिखाया जाता है. इस फ़ंक्शन को एक से ज़्यादा थ्रेड से कॉल किया जा सकता है. इसलिए, mUploadRequested
को अपने-आप पढ़ा और सेट किया जाना चाहिए, ताकि सूचना भेजने से पहले ग़ैर-ज़रूरी LoggingFlushHandler
शेड्यूल न किया जा सके.
विवरण | |||||
---|---|---|---|---|---|
पैरामीटर |
|
||||
रिटर्न वैल्यू |
|
SerializeEvents
WEAVE_ERROR SerializeEvents( TLVWriter & writer )
सभी ज़रूरी कामों के लिए, Weave इवेंट को क्रम से लगाएं.
यह फ़ंक्शन, WeaveCircularTLVBuffer और उससे जुड़े राज्यों को दिए गए बफ़र में इवेंट को क्रम में लगाता है.
यह तरीका, ऐसे डिवाइसों पर इस्तेमाल किया जा सकता है जिनमें सोते समय रैम नहीं होती. इस तरह, वे सोने से पहले गतिविधियों को बनाए रखते हैं और इवेंट के खोने से बचाते हैं
SetBDXUploader
void SetBDXUploader( LogBDXUpload *inUploader )
SetExchangeManager
WEAVE_ERROR SetExchangeManager( nl::Weave::WeaveExchangeManager *inMgr )
इस लॉगिंग सबसिस्टम के साथ इस्तेमाल किए जाने के लिए WeaveExchangeManager को सेट करें.
कुछ प्लैटफ़ॉर्म पर, ऐसा ऊपर दिए गए CreateLoggingManagement() से अलग की वजह से हो सकता है.
विवरण | |||
---|---|---|---|
पैरामीटर |
|
SetLoggingEndpoint
WEAVE_ERROR SetLoggingEndpoint( event_id_t *inEventEndpoints, size_t inNumImportanceLevels, size_t & outLoggingPosition )
SkipEvent
void SkipEvent( EventLoadOutContext *aContext )
दिए गए इवेंट आईडी के हिसाब से, इवेंट लिखना स्किप करने में हेल्पर फ़ंक्शन.
विवरण | |||
---|---|---|---|
पैरामीटर |
|
ThrottleLogger
void ThrottleLogger( void )
थ्रॉटललॉगर बेहतर लॉगिंग स्तर को उत्पादन स्तर तक बढ़ाता है.
UnregisterEventCallbackForImportance
void UnregisterEventCallbackForImportance( ImportanceType inImportance, event_id_t inEventID )
बाहर से सेव किए गए इवेंट के किसी सेट का रजिस्ट्रेशन रद्द करने के लिए सार्वजनिक एपीआई.
कॉलबैक का रजिस्ट्रेशन रद्द करने पर, LoggingManagement किसी इवेंट के सेट के लिए कॉलबैक को कॉल नहीं कर पाएगा. LoggingManagement अब आपके सदस्यों को ये इवेंट आईडी नहीं भेजेगा.
इंटेंट, एक बार में एक ही फ़ंक्शन के लिए इवेंट का एक सेट दिखाने के लिए होता है. अगर उसी फ़ंक्शन का इस्तेमाल करके इवेंट के नए सेट को रजिस्टर करना ज़रूरी हो, तो कॉलबैक का रजिस्ट्रेशन पहले रद्द करना होगा और फिर उसे फिर से रजिस्टर किया जाना चाहिए. इसका मतलब है कि अब इवेंट के मूल सेट को फ़ेच नहीं किया जा सकता.
यह फ़ंक्शन बिना किसी शर्त के काम करता है. अगर कॉलबैक को कभी रजिस्टर नहीं किया गया था या पहले से रजिस्टर नहीं किया गया था, तो यह नो-ऑप होता है.
विवरण | |||||
---|---|---|---|---|---|
पैरामीटर |
|
UnthrottleLogger
void UnthrottleLogger( void )
UnthrottleLogger, सही तरीके से लॉग करने के लेवल को, कॉन्फ़िगर किए गए लॉगिंग लेवल पर पहले जैसा करता है.
सार्वजनिक स्टैटिक फ़ंक्शन
CreateLoggingManagement
void CreateLoggingManagement( nl::Weave::WeaveExchangeManager *inMgr, size_t inNumBuffers, const LogStorageResources *const inLogStorageResources )
LoggingManagement ऑब्जेक्ट बनाएं और दिए गए संसाधनों के साथ, लॉगिंग मैनेजमेंट सबसिस्टम को शुरू करें.
LogStorageResources की मदद से, LoggingManagement को शुरू करें. अरे में, अहमियत के हर मान्य लेवल के लिए संसाधन उपलब्ध होना चाहिए. साथ ही, कलेक्शन के एलिमेंट को अहमियत के साथ बढ़ती हुई न्यूमेरिक वैल्यू (और घटती अहमियत) में होना चाहिए; कलेक्शन का पहला एलिमेंट सबसे ज़रूरी इवेंट के लिए असाइन किए गए रिसॉर्स से जुड़ा होता है और आखिरी एलिमेंट सबसे कम ज़रूरी इवेंट से जुड़ा होता है.
विवरण | |||||||
---|---|---|---|---|---|---|---|
पैरामीटर |
|
DestroyLoggingManagement
void DestroyLoggingManagement( void )
इस सुविधा के बंद होने के बाद जो भी कार्रवाइयां की जा सकती हैं उन्हें करें.