nl:: बुना::प्रोफ़ाइलें::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
mShutdownInProgress फ़्लैग को 'गलत' पर सेट करें.
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
mShutdownInProress का फ़्लैग देखें.
IsValid(void)
bool
क्या LoggingManagement इंस्टेंस मान्य है या नहीं, is साफ़ तौर पर दिखाता है.
LoadEvents(TLVReader & reader)
पहले से जारी Weave इवेंट लोड करें.
LogEvent(const EventSchema & inSchema, EventWriterFunct inEventWriter, void *inAppData, const EventOptions *inOptions)
विकल्पों के साथ, कॉलबैक से इवेंट लॉग करें.
MarkShutdownInProgress(void)
void
mShutdownInProgress को 'सही' पर सेट करें.
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)
सभी ज़रूरी टाइप के वीव इवेंट को क्रम से लगाएं.
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
UnthrottleLoger कॉन्फ़िगर किए गए लॉगिंग स्तर पर प्रभावी लॉगिंग स्तर को बहाल करता है.

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

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
)

इवेंट लॉगिंग प्रोटोकॉल के मुताबिक इवेंट हेडर और डेटा लिखने के लिए हेल्पर फ़ंक्शन.

ब्यौरा
पैरामीटर
[in,out] aContext
EventLoadOutContext, जिसे बफ़र के लिए, स्थिति की जानकारी के साथ शुरू किया गया है. स्थिति के हिसाब से BlitEvent, स्थिति को अपडेट और सुरक्षित करता है.
[in] inSchema
स्कीमा इस इवेंट की अहमियत, प्रोफ़ाइल आईडी, और स्ट्रक्चर के टाइप के बारे में बताएं.
[in] inEventWriter
इवेंट डेटा को क्रम से लगाने के लिए कॉलबैक.
[in] inAppData
कॉलबैक के लिए ऐप्लिकेशन कॉन्टेक्स्ट.
[in] inOptions
EventOptions, इस इवेंट से जुड़े टाइमस्टैंप और दूसरे टैग के बारे में बताता है.

शटडाउन इनप्रोग्रेशन रद्द करें

void CancelShutdownInProgress(
  void
)

mShutdownInProgress फ़्लैग को 'गलत' पर सेट करें.

CheckShouldRunWDM

bool CheckShouldRunWDM(
  void
)

तय करें कि अपलोड करने के लिए शेड्यूल किए गए इवेंट बफ़र में बाइट की संख्या के आधार पर इवेंट को ऑफ़लोड करना है या नहीं.

फ़ंक्शन का व्यवहार WEAVE_CONFIG_EVENT_LOGGING_BYTE_TRIP स्थिरांक से नियंत्रित होता है. अगर सिस्टम ने पिछली बार WDM सूचना भेजे जाने के बाद से उस संख्या से ज़्यादा बाइट लिखा था, तो फ़ंक्शन यह बताएगा कि समय से NotificationsEngine ट्रिगर होगी.

ब्यौरा
सामान लौटाने की वैल्यू
true
इवेंट ऑफ़लोड होने चाहिए
false
या फिर

फ़ेच इवेंट

WEAVE_ERROR FetchEventsSince(
  nl::Weave::TLV::TLVWriter & ioWriter,
  ImportanceType inImportance,
  event_id_t & ioEventID
)

किसी दिए गए इवेंट आईडी के बाद से, तय की गई अहमियत के इवेंट को फिर से पाने का फ़ंक्शन.

एक nl::Weave::TLV::TLVWriter, एक ज़रूरी तरह का और इवेंट आईडी दिए जाने पर, फ़ंक्शन तय किए गए इवेंट के बाद से खास अहमियत वाले इवेंट को फ़ेच करेगा. फ़ंक्शन तब तक इवेंट फ़ेच करता रहेगा, जब तक कि nl::Weave::TLV::TLVWriter या लॉग में जगह खत्म नहीं हो जाती. फ़ंक्शन, इवेंट सीमा पर इवेंट लिखने की सुविधा को खत्म कर देगा.

ब्यौरा
पैरामीटर
[in] ioWriter
इवेंट की मेमोरी में इस्तेमाल करने वाला लेखक
[in] inImportance
फ़ेच किए जाने वाले इवेंट की अहमियत
[in,out] ioEventID
इनपुट पर, हम जिस इवेंट को फ़ेच कर रहे हैं उसके ठीक पहले इवेंट का आईडी #33; पूरा होने पर, आखिरी इवेंट का आईडी फ़ेच किया गया.
सामान लौटाने की वैल्यू
WEAVE_END_OF_TLV
फ़ंक्शन, तय किए गए महत्व के लेवल पर उपलब्ध लॉग एंट्री के आखिर तक पहुंच गया है
WEAVE_ERROR_NO_MEMORY
ioWriter में फ़ंक्शन के लिए जगह नहीं बची, लॉग में और इवेंट उपलब्ध हैं.
WEAVE_ERROR_BUFFER_TOO_SMALL
ioWriter में फ़ंक्शन के लिए जगह नहीं बची, लॉग में और इवेंट उपलब्ध हैं.

GetBytesWrite

uint32_t GetBytesWritten(
  void
) const 

इंस्टैंशिएट किए जाने के बाद, इस लॉग में कुल बाइट की कुल संख्या (सभी इवेंट का महत्व) पाएं.

ब्यौरा
लौटाए गए सामान
लॉग में लिखे गए बाइट की संख्या.

GetEventReader

WEAVE_ERROR GetEventReader(
  nl::Weave::TLV::TLVReader & ioReader,
  ImportanceType inImportance
)

मेमोरी में लॉग बफ़र की जांच करने के लिए उपयोगी सहायता विधि.

ब्यौरा
पैरामीटर
[in,out] ioReader
रीडर के लिए रेफ़रंस, जिसे इवेंट लॉग में मौजूद बैक अप स्टोरेज के साथ शुरू किया जाएगा
[in] inImportance
पाठकों के लिए शुरुआती अहमियत. ध्यान दें कि इस मामले में शुरुआती अहमियत कुछ हद तक आसान है. ज़्यादा ज़रूरी इवेंट, बफ़र के साथ-साथ कम अहमियत वाले इवेंट के साथ बफ़र होते हैं. इस वजह से, डीबग करने की अहमियत पास होने पर रीडर, कम से कम डेटा को पार करेगा.
लौटाए गए सामान
WEAVE_NO_ERROR बिना किसी शर्त के.

GetFirstEventID

event_id_t GetFirstEventID(
  ImportanceType inImportance
)

किसी खास अहमियत के लेवल के लिए, पहले सेव किए गए पहले इवेंट आईडी को फ़ेच करें.

ब्यौरा
पैरामीटर
inImportance
अहमियत का लेवल
लौटाए गए सामान
event_id_t फ़िलहाल, उस इवेंट के अहमियत के लिए इवेंट आईडी को पहले स्टोर किया गया

GetLastEventID

event_id_t GetLastEventID(
  ImportanceType inImportance
)

किसी खास अहमियत के लेवल के लिए, उस नंबर को फ़ेच करें जिसे हाल ही में भेजा गया है.

ब्यौरा
पैरामीटर
inImportance
अहमियत का लेवल
लौटाए गए सामान
उस इवेंट की अहमियत के लिए, event_id_t ने हाल ही में इवेंट आईडी भेजा है

IsShutdownInProgress

bool IsShutdownInProgress(
  void
)

mShutdownInProress का फ़्लैग देखें.

मान्य है

bool IsValid(
  void
)

क्या LoggingManagement इंस्टेंस मान्य है या नहीं, is साफ़ तौर पर दिखाता है.

ब्यौरा
सामान लौटाने की वैल्यू
true
इंस्टेंस मान्य है (सही बैकिंग स्टोर से शुरू किया गया)
false
या फिर

लोड इवेंट

WEAVE_ERROR LoadEvents(
  TLVReader & reader
)

पहले से जारी Weave इवेंट लोड करें.

लॉग इवेंट

event_id_t LogEvent(
  const EventSchema & inSchema,
  EventWriterFunct inEventWriter,
  void *inAppData,
  const EventOptions *inOptions
)

विकल्पों के साथ, कॉलबैक से इवेंट लॉग करें.

फ़ंक्शन, EventWriterFunct और ऐप्लिकेशन के लिए खास appData संदर्भ के तौर पर इवेंट को लॉग करता है. फ़ंक्शन, इवेंट का मेटाडेटा लिखता है और nl::Weave::TLV::TLVWriter रेफ़रंस और inAppData कॉन्टेक्स्ट के साथ कॉल करता है, ताकि उपयोगकर्ता कोड, इवेंट डेटा को सीधे इवेंट लॉग में भेज सके. इवेंट लॉग करने का यह तरीका, मेमोरी की खपत को कम करता है. ऐसा इसलिए, क्योंकि इवेंट का डेटा सीधे टारगेट बफ़र में क्रम से लगाया जाता है. इवेंट डेटा में, संदर्भ टैग शामिल होने चाहिए, ताकि inProfileID और inEventType वाले स्कीमा में इसकी जानकारी दी जा सके. पहले एलिमेंट के टैग को अनदेखा कर दिया जाएगा; इवेंट लॉगिंग सिस्टम उसे eventData टैग से बदल देगा.

अगर स्कीमा की अहमियत LoggingConfiguration में तय की गई लॉगिंग सीमा से ज़्यादा हो जाती है, तो इवेंट लॉग किया जाता है. अगर इवेंट और #39 की अहमियत मौजूदा सीमा से कम है, तो इसे छोड़ दिया जाता है. यह फ़ंक्शन, इवेंट आईडी के तौर पर 0 दिखाता है.

न्योते के इस वैरिएंट से, कॉलर को EventOptions के किसी भी कॉम्बिनेशन को सेट करने की अनुमति मिलती है:

  • टाइमस्टैंप, जब कॉल के बिंदु पर 0 डिफ़ॉल्ट रूप से मौजूदा समय पर होता है,
  • & पहचानने की सुविधा (नोट) > इवेंट स्रोत का सेक्शन (इवेंट स्रोत और विशेषता आईडी); अगर NULL है, तो डिफ़ॉल्ट रूप से मौजूदा डिवाइस पर सेट होता है. इवेंट को कॉल करने वाले डिवाइस से जुड़ी स्थिति के तौर पर मार्क किया गया है,
  • इवेंट आईडी को ग्रुप करने के लिए मिलती-जुलती इवेंट आईडी; जब उससे जुड़ा इवेंट आईडी 0 है, तो इवेंट को किसी दूसरे इवेंट से संबंधित नहीं के तौर पर मार्क किया जाता है,
  • ज़रूरी; डिफ़ॉल्ट रूप से तुरंत नहीं.

ब्यौरा
पैरामीटर
[in] inSchema
स्कीमा इस इवेंट की अहमियत, प्रोफ़ाइल आईडी, और स्ट्रक्चर के टाइप के बारे में बताएं.
[in] inEventWriter
इवेंट डेटा को क्रम से लगाने के लिए शुरू करने वाला कॉलबैक
[in] inAppData
कॉलबैक के लिए ऐप्लिकेशन कॉन्टेक्स्ट.
[in] inOptions
इवेंट मेटाडेटा के विकल्प. शून्य हो सकता है.
लौटाए गए सामान
अगर इवेंट लॉग में लिखा गया था, तो event_id_t इवेंट आईडी 0 है.

लॉगिंग मैनेजमेंट

 LoggingManagement(
  nl::Weave::WeaveExchangeManager *inMgr,
  size_t inNumBuffers,
  const LogStorageResources *const inLogStorageResources
)

LoggingManagement कंस्ट्रक्टर.

LogStorageResources की श्रेणी के साथ LoggingManagement को शुरू करें. श्रेणी को हर मान्य महत्व के स्तर पर एक संसाधन देना चाहिए, श्रेणी के एलिमेंट का महत्व (और घटती अहमियत में) का मान बढ़ाना ज़रूरी है; श्रेणी का पहला एलिमेंट सबसे अहम इवेंट के लिए दिए गए संसाधनों से मेल खाता है और आखिरी एलिमेंट सबसे कम ज़रूरी इवेंट से मेल खाता है.

ब्यौरा
पैरामीटर
[in] inMgr
इस लॉगिंग सबसिस्टम के साथ इस्तेमाल करने के लिए WeaveExchangeManager
[in] inNumBuffers
inLogStorageResources श्रेणी में एलिमेंट की संख्या
[in] inLogStorageResources
हर ज़रूरी लेवल के लिए, LogStorageResources की एक कैटगरी.

लॉगिंग मैनेजमेंट

 LoggingManagement(
  void
)

LoggingManagement डिफ़ॉल्ट कंस्ट्रक्टर.

मुख्य रूप से, कंपाइलर को खुश करने के लिए उपलब्ध कराया जाता है.

ब्यौरा
लौटाए गए सामान

MarkShutdownInProgress

void MarkShutdownInProgress(
  void
)

mShutdownInProgress को 'सही' पर सेट करें.

सूचित किए गए इवेंट

void NotifyEventsDelivered(
  ImportanceType inImportance,
  event_id_t inLastDeliveredEventID,
  uint64_t inRecipientNodeID
)

रजिस्टर इवेंट कॉलबैक का इंपोर्ट

WEAVE_ERROR RegisterEventCallbackForImportance(
  ImportanceType inImportance,
  FetchExternalEventsFunct inFetchCallback,
  NotifyExternalEventsDeliveredFunct inNotifyCallback,
  NotifyExternalEventsEvictedFunct inEvictedCallback,
  size_t inNumEvents,
  event_id_t *outLastEventID
)

बाहरी रूप से स्टोर किए गए इवेंट के सेट को रजिस्टर करने के लिए सार्वजनिक एपीआई.

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

कॉलबैक तब तक कॉल किया जाएगा, जब कोई सदस्य रेंज के अंदर कई बार इवेंट आईडी फ़ेच करने की कोशिश करता है. ऐसा तब तक किया जाता है, जब तक कि रजिस्ट्रेशन रद्द नहीं कर दिया जाता.

फ़ंक्शन के इस वैरिएंट का इस्तेमाल तब करना चाहिए, जब बाहरी कंपनी किसी सदस्य को इवेंट की जानकारी देना चाहती हो और बाहरी इवेंट को बाहर कर दिया गया हो.

जब इवेंट डिलीवर हो जाते हैं, तब बाहरी कंपनी को इसके बारे में सूचना दी जाती है. साथ ही, पाने वाले के नोड आईडी और उसे पाने वाले के आखिरी इवेंट के आईडी के साथ भी इसकी सूचना दी जाती है. ध्यान दें, सेवा देने वाली बाहरी कंपनी को, एक ही इवेंट आईडी के लिए कई बार सूचना दी जा सकती है. हैंडलर पर कोई खास प्रतिबंध नहीं है, खास तौर पर, हैंडलर बाहरी इवेंट आईडी का रजिस्ट्रेशन रद्द कर सकता है.

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

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

कॉलबैक को क्या लागू करना चाहिए, यह जानने के लिए FetchExternalEventFunct का दस्तावेज़ देखें.

ब्यौरा
पैरामीटर
[in] inImportance
अहमियत का लेवल
[in] inFetchCallback
बाहरी इवेंट फ़ेच करने के लिए रजिस्टर करने के लिए कॉलबैक
[in] inNotifyCallback
डिलीवरी की सूचना के लिए रजिस्टर करने के लिए कॉलबैक
[in] inEvictedCallback
बेदखली की सूचना के लिए रजिस्टर करने के लिए कॉलबैक
[in] inNumEvents
इस सेट में इवेंट की संख्या
[out] outLastEventID
event_id_t का पॉइंटर; बाहरी इवेंट के कामयाब रजिस्ट्रेशन पर, फ़ंक्शन बाहरी इवेंट ब्लॉक के आखिरी इवेंट आईडी से जुड़ा इवेंट आईडी स्टोर करेगा. पैरामीटर शून्य हो सकता है.
सामान लौटाने की वैल्यू
WEAVE_ERROR_NO_MEMORY
अगर कोई और कॉलबैक स्लॉट उपलब्ध नहीं हैं.
WEAVE_ERROR_INVALID_ARGUMENT
शून्य फ़ंक्शन कॉलबैक या रजिस्टर करने के लिए कोई इवेंट नहीं है.
WEAVE_NO_ERROR
सफल रहा.

रजिस्टर इवेंट कॉलबैक का इंपोर्ट

WEAVE_ERROR RegisterEventCallbackForImportance(
  ImportanceType inImportance,
  FetchExternalEventsFunct inFetchCallback,
  NotifyExternalEventsDeliveredFunct inNotifyCallback,
  size_t inNumEvents,
  event_id_t *outLastEventID
)

बाहरी रूप से स्टोर किए गए इवेंट के सेट को रजिस्टर करने के लिए सार्वजनिक एपीआई.

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

कॉलबैक तब तक कॉल किया जाएगा, जब कोई सदस्य रेंज के अंदर कई बार इवेंट आईडी फ़ेच करने की कोशिश करता है. ऐसा तब तक किया जाता है, जब तक कि रजिस्ट्रेशन रद्द नहीं कर दिया जाता.

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

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

कॉलबैक को क्या लागू करना चाहिए, यह जानने के लिए FetchExternalEventFunct का दस्तावेज़ देखें.

ब्यौरा
पैरामीटर
[in] inImportance
अहमियत का लेवल
[in] inCallback
बाहरी इवेंट फ़ेच करने के लिए रजिस्टर करने के लिए कॉलबैक
[in] inNotifyCallback
डिलीवरी की सूचना के लिए रजिस्टर करने के लिए कॉलबैक
[in] inNumEvents
इस सेट में इवेंट की संख्या
[out] outLastEventID
event_id_t का पॉइंटर; बाहरी इवेंट के कामयाब रजिस्ट्रेशन पर, फ़ंक्शन बाहरी इवेंट ब्लॉक के आखिरी इवेंट आईडी से जुड़ा इवेंट आईडी स्टोर करेगा. पैरामीटर शून्य हो सकता है.
सामान लौटाने की वैल्यू
WEAVE_ERROR_NO_MEMORY
अगर कोई और कॉलबैक स्लॉट उपलब्ध नहीं हैं.
WEAVE_ERROR_INVALID_ARGUMENT
शून्य फ़ंक्शन कॉलबैक या रजिस्टर करने के लिए कोई इवेंट नहीं है.
WEAVE_NO_ERROR
सफल रहा.

रजिस्टर इवेंट कॉलबैक का इंपोर्ट

WEAVE_ERROR RegisterEventCallbackForImportance(
  ImportanceType inImportance,
  FetchExternalEventsFunct inFetchCallback,
  size_t inNumEvents,
  event_id_t *outLastEventID
)

बाहरी रूप से स्टोर किए गए इवेंट के सेट को रजिस्टर करने के लिए सार्वजनिक एपीआई.

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

कॉलबैक तब तक कॉल किया जाएगा, जब कोई सदस्य रेंज के अंदर कई बार इवेंट आईडी फ़ेच करने की कोशिश करता है. ऐसा तब तक किया जाता है, जब तक कि रजिस्ट्रेशन रद्द नहीं कर दिया जाता.

फ़ंक्शन के इस वैरिएंट का इस्तेमाल तब करना चाहिए, जब बाहरी कंपनी सूचना देना चाहे, जब बाहरी इवेंट डिलीवर किए गए हों या बाहरी इवेंट का ऑब्जेक्ट हटा दिया गया हो.

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

कॉलबैक को क्या लागू करना चाहिए, यह जानने के लिए FetchExternalEventFunct का दस्तावेज़ देखें.

ब्यौरा
पैरामीटर
[in] inImportance
अहमियत का लेवल
[in] inCallback
बाहरी इवेंट फ़ेच करने के लिए रजिस्टर करने के लिए कॉलबैक
[in] inNumEvents
इस सेट में इवेंट की संख्या
[out] outLastEventID
event_id_t का पॉइंटर; बाहरी इवेंट के कामयाब रजिस्ट्रेशन पर, फ़ंक्शन बाहरी इवेंट ब्लॉक के आखिरी इवेंट आईडी से जुड़ा इवेंट आईडी स्टोर करेगा. पैरामीटर शून्य हो सकता है.
सामान लौटाने की वैल्यू
WEAVE_ERROR_NO_MEMORY
अगर कोई और कॉलबैक स्लॉट उपलब्ध नहीं हैं.
WEAVE_ERROR_INVALID_ARGUMENT
शून्य फ़ंक्शन कॉलबैक या रजिस्टर करने के लिए कोई इवेंट नहीं है.
WEAVE_NO_ERROR
सफल रहा.

शेड्यूलFlushIfREQUIRED

WEAVE_ERROR ScheduleFlushIfNeeded(
  bool inFlushRequested
)

लॉग ऑफ़लोड टास्क शेड्यूल करें.

फ़ंक्शन यह तय करता है कि टास्क के ऑफ़लोड होने की प्रोसेस को शेड्यूल करना है या नहीं. अगर ऐसा है, तो यह Weave थ्रेड पर एसिंक्रोनस तौर पर चलाने के लिए शेड्यूल करता है.

फ़्लश शेड्यूल करने का फ़ैसला तीन बातों पर निर्भर करता है:

बफ़र को साफ़ करने का साफ़ अनुरोध

इवेंट के बफ़र की स्थिति और इवेंट के उपभोक्ताओं के साथ सिंक नहीं किए गए डेटा की मात्रा

क्या कोई ऐसा अनुरोध है जो पहले से किया गया कोई अनुरोध बाकी है.

फ़्लश शेड्यूल करने का खास अनुरोध, इनपुट पैरामीटर से पास किया जाता है.

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

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

ब्यौरा
पैरामीटर
inRequestFlush
बूलियन वैल्यू बताती है कि अंदरूनी बफ़र मैनेजमेंट की नीति पर ध्यान दिए बिना फ़्लश को शेड्यूल किया जाना चाहिए या नहीं.
सामान लौटाने की वैल्यू
WEAVE_ERROR_INCORRECT_STATE
LoggingManagement मॉड्यूल पूरी तरह चालू नहीं किया गया.
WEAVE_NO_ERROR
सफल रहा.

क्रम से इवेंट

WEAVE_ERROR SerializeEvents(
  TLVWriter & writer
)

सभी ज़रूरी टाइप के वीव इवेंट को क्रम से लगाएं.

WeaveCircularTLVBuffer और इससे जुड़े राज्यों के इवेंट को सप्लाई किए गए बफ़र में क्रम से लगाता है.

इस तरीके का इस्तेमाल उन डिवाइसों को करने के लिए किया जाता है जो स्लीप मोड (कम बैटरी मोड) में होने पर, रैम को नहीं बचाते हैं. इससे, सोने से पहले इवेंट चालू रखने और इवेंट खोने से बचने में मदद मिलती है

सेटBDXअपलोडर

void SetBDXUploader(
  LogBDXUpload *inUploader
)

सेट एक्सचेंज मैनेजर

WEAVE_ERROR SetExchangeManager(
  nl::Weave::WeaveExchangeManager *inMgr
)

इस लॉगिंग सबसिस्टम के साथ इस्तेमाल करने के लिए WeaveExchangeManager को सेट करें.

कुछ प्लैटफ़ॉर्म पर, ऐसा ऊपर दिए गए CreateLoggingManagement() से अलग हो सकता है.

ब्यौरा
पैरामीटर
[in] inMgr
इस लॉगिंग सबसिस्टम के साथ इस्तेमाल करने के लिए WeaveExchangeManager

setLoggingEndpoint

WEAVE_ERROR SetLoggingEndpoint(
  event_id_t *inEventEndpoints,
  size_t inNumImportanceLevels,
  size_t & outLoggingPosition
)

छोड़ें इवेंट

void SkipEvent(
  EventLoadOutContext *aContext
)

दिए गए इवेंट आईडी से जुड़े इवेंट को छोड़ने के लिए, हेल्पर फ़ंक्शन.

ब्यौरा
पैरामीटर
[in,out] aContext
EventLoadOutContext, जिसे बफ़र के लिए, स्थिति की जानकारी के साथ शुरू किया गया है. स्थिति के हिसाब से BlitEvent, स्थिति को अपडेट और सुरक्षित करता है.

थ्रॉटलॉगर

void ThrottleLogger(
  void
)

थ्रॉटललॉगर, इस्तेमाल करने के बेहतर लेवल को प्रोडक्शन लेवल पर ले जाता है.

रजिस्ट्रेशन रद्द करने का इवेंटबैकबैक

void UnregisterEventCallbackForImportance(
  ImportanceType inImportance,
  event_id_t inEventID
)

बाहरी तौर पर सेव किए गए इवेंट के सेट का रजिस्ट्रेशन रद्द करने के लिए सार्वजनिक एपीआई.

कॉलबैक का रजिस्ट्रेशन रद्द करने से, LoggingManagement को इवेंट के किसी सेट के लिए कॉलबैक पर कॉल करने से रोक दिया जाएगा. LoggingManagement अब आपके सदस्यों को इवेंट आईडी नहीं भेजेगा.

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

यह फ़ंक्शन बिना किसी शर्त के सफल होता है. अगर कॉलबैक को कभी रजिस्टर नहीं किया गया है या उसका रजिस्ट्रेशन पहले ही रद्द कर दिया गया था, तो यह' no-op है.

ब्यौरा
पैरामीटर
[in] inImportance
अहमियत का लेवल
[in] inEventID
बाहरी इवेंट ब्लॉक में किसी भी इवेंट से जुड़ा इवेंट आईडी का रजिस्ट्रेशन रद्द किया जा सकता है.

थ्रॉटललॉगर

void UnthrottleLogger(
  void
)

UnthrottleLoger कॉन्फ़िगर किए गए लॉगिंग स्तर पर प्रभावी लॉगिंग स्तर को बहाल करता है.

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

CreateLoggingManagement

void CreateLoggingManagement(
  nl::Weave::WeaveExchangeManager *inMgr,
  size_t inNumBuffers,
  const LogStorageResources *const inLogStorageResources
)

LoggingManagement ऑब्जेक्ट बनाएं और दिए गए संसाधनों की मदद से लॉगिंग मैनेजमेंट सबसिस्टम की शुरुआत करें.

LogStorageResources की श्रेणी के साथ LoggingManagement को शुरू करें. श्रेणी को हर मान्य महत्व के स्तर पर एक संसाधन देना चाहिए, श्रेणी के एलिमेंट का महत्व (और घटती अहमियत में) का मान बढ़ाना ज़रूरी है; श्रेणी का पहला एलिमेंट सबसे अहम इवेंट के लिए दिए गए संसाधनों से मेल खाता है और आखिरी एलिमेंट सबसे कम ज़रूरी इवेंट से मेल खाता है.

ब्यौरा
पैरामीटर
[in] inMgr
इस लॉगिंग सबसिस्टम के साथ इस्तेमाल करने के लिए WeaveExchangeManager
[in] inNumBuffers
inLogStorageResources श्रेणी में एलिमेंट की संख्या
[in] inLogStorageResources
हर ज़रूरी लेवल के लिए, LogStorageResources की एक कैटगरी.

खत्म करना

void DestroyLoggingManagement(
  void
)

शटडाउन करने के लिए ज़रूरी कोई भी कार्रवाई करें.

GetInstance

LoggingManagement & GetInstance(
  void
)