تنظيم صفحاتك في مجموعات يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.

nl::Weave::الملفات الشخصية::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(void)
مُنشئ تصميم تلقائي LogManagement.

وظائف عامة

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
تحقَّق من علامة mShutdownInProgress.
IsValid(void)
bool
تعرض قيمة isvalid ما إذا كان مثيل LoggingManagement صالحًا.
LoadEvents(TLVReader & reader)
تحميل حدث Weave الذي تم الاحتفاظ به سابقًا
LogEvent(const EventSchema & inSchema, EventWriterFunct inEventWriter, void *inAppData, const EventOptions *inOptions)
سجّل حدثًا عبر استدعاء، مع توفر خيارات.
MarkShutdownInProgress(void)
void
ضبط علامة mShutdownInProgress على true.
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
يعمل ThrottleLogger على رفع مستوى التسجيل الفعّال إلى مستوى الإنتاج.
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
)

دالة مساعدة لكتابة عنوان الحدث والبيانات وفقًا لبروتوكول تسجيل الأحداث.

التفاصيل
المعلَمات
[in,out] aContext
يتم إعداد EventLoadOutContext مع معلومات حالة المخزن المؤقت. يتم تعديل الحالة والاحتفاظ بها من خلال BlitEvent باستخدام هذا السياق.
[in] inSchema
مخطط يحدّد الأهمية ومعرّف الملف الشخصي ونوع البنية لهذا الحدث.
[in] inEventWriter
استدعاء استدعاء لتسلسل بيانات الحدث بالتسلسل.
[in] inAppData
سياق التطبيق لمعاودة الاتصال
[in] inOptions
EventOptions تصف الطابع الزمني والعلامات الأخرى ذات الصلة بهذا الحدث.

إلغاء الإغلاق

void CancelShutdownInProgress(
  void
)

ضبط علامة mShutdownInProgress على "خطأ"

قناة CheckShuldRunWDM

bool CheckShouldRunWDM(
  void
)

حدِّد ما إذا كنت تريد إلغاء تحميل الأحداث استنادًا إلى عدد وحدات البايت في المستودعات المؤقتة للأحداث غير المُجدوَلة للتحميل.

يتم التحكم في سلوك الدالة من خلال ثابت WEAVE_CONFIG_EVENT_LOGGING_BYTE_EXPIRY. إذا كتب النظام أكثر من هذا العدد من وحدات البايت منذ آخر مرة تم فيها إرسال إشعار WDM، ستشير الدالة إلى أن الوقت قد حان لتشغيل NotificationEngine.

التفاصيل
قيم الإرجاع
true
يجب إلغاء تحميل الأحداث
false
ويمكنك بدلاً من ذلك

FetchEventSince

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
عند إدخال رقم تعريف الحدث قبل استرجاع الحدث مباشرةً، عند الانتهاء، يتم جلب رقم تعريف الحدث الأخير.
قيم الإرجاع
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 الذي تم عرضه مؤخرًا لأهمية هذا الحدث

قيد إيقاف التشغيل

bool IsShutdownInProgress(
  void
)

تحقَّق من علامة mShutdownInProgress.

صالح

bool IsValid(
  void
)

تعرض قيمة isvalid ما إذا كان مثيل LoggingManagement صالحًا.

التفاصيل
قيم الإرجاع
true
المثيل صالح (تتم إعداده مع المتجر الاحتياطي المناسب)
false
ويمكنك بدلاً من ذلك

تحميل الأحداث

WEAVE_ERROR LoadEvents(
  TLVReader & reader
)

تحميل حدث Weave الذي تم الاحتفاظ به سابقًا

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 هو الوقت الحالي في وقت المكالمة،
  • "root" قسم مصدر الحدث (مصدر الحدث ورقم تعريف السمة)؛ وإذا كان فارغًا، يتم تعيينه تلقائيًا على الجهاز الحالي. ويتم وضع علامة على الحدث على أنه ذي صلة بالجهاز الذي يتم الاتصال من خلاله.
  • رقم تعريف حدث ذي صلة لتجميع أرقام تعريف الأحداث. إذا كان رقم تعريف الحدث ذي الصلة هو 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
)

أداة إنشاء إدارة الإدارة.

ابدأ في إعداد LogManagement باستخدام مصفوفة من LogStorageResources. يجب أن توفر المصفوفة موردًا لكل مستوى أهمية صالح، ويجب أن تكون عناصر المصفوفة في زيادة قيمة رقمية للأهمية (وتقلل الأهمية)، ويتوافق العنصر الأول في المصفوفة مع الموارد المخصصة للأحداث الأكثر أهمية، ويتوافق العنصر الأخير مع الأحداث الأقل أهمية.

التفاصيل
المعلَمات
[in] inMgr
WeaveExchangeManager للاستخدام مع هذا النظام الفرعي للتسجيل
[in] inNumBuffers
عدد العناصر في مصفوفة inLogStorageResources
[in] inLogStorageResources
مصفوفة من LogStorageResources لكل مستوى أهمية.

إدارة التسجيل

 LoggingManagement(
  void
)

مُنشئ تصميم تلقائي LogManagement.

يتم تقديمه في المقام الأول لإرضاء العارض.

التفاصيل
المرتجعات

وضع علامة على إيقاف التشغيل

void MarkShutdownInProgress(
  void
)

ضبط علامة mShutdownInProgress على true.

إشعارات الأحداث التي تم تسليمها

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

registrationEventCallbackForImportance

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؛ وعند تسجيل أحداث خارجية بنجاح، ستخزِّن الدالة رقم تعريف الحدث المقابل لمعرّف الحدث الأخير لقالب الأحداث الخارجية. قد تكون المعلمة NULL.
قيم الإرجاع
WEAVE_ERROR_NO_MEMORY
إذا لم تكن هناك خانات أخرى لمعاودة الاتصال متاحة.
WEAVE_ERROR_INVALID_ARGUMENT
دالة رد الاتصال فارغة أو لا توجد أحداث للتسجيل.
WEAVE_NO_ERROR
النجاح.

registrationEventCallbackForImportance

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؛ وعند تسجيل أحداث خارجية بنجاح، ستخزِّن الدالة رقم تعريف الحدث المقابل لمعرّف الحدث الأخير لقالب الأحداث الخارجية. قد تكون المعلمة NULL.
قيم الإرجاع
WEAVE_ERROR_NO_MEMORY
إذا لم تكن هناك خانات أخرى لمعاودة الاتصال متاحة.
WEAVE_ERROR_INVALID_ARGUMENT
دالة رد الاتصال فارغة أو لا توجد أحداث للتسجيل.
WEAVE_NO_ERROR
النجاح.

registrationEventCallbackForImportance

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؛ وعند تسجيل أحداث خارجية بنجاح، ستخزِّن الدالة رقم تعريف الحدث المقابل لمعرّف الحدث الأخير لقالب الأحداث الخارجية. قد تكون المعلمة NULL.
قيم الإرجاع
WEAVE_ERROR_NO_MEMORY
إذا لم تكن هناك خانات أخرى لمعاودة الاتصال متاحة.
WEAVE_ERROR_INVALID_ARGUMENT
دالة رد الاتصال فارغة أو لا توجد أحداث للتسجيل.
WEAVE_NO_ERROR
النجاح.

جدول زمنيFlushIf Needed

WEAVE_ERROR ScheduleFlushIfNeeded(
  bool inFlushRequested
)

جدولة مهمة إزاحة السجلّ.

وتقرِّر الدالة ما إذا كنت تريد جدولة عملية تفريغ المهمة، وإذا كان الأمر كذلك، فإنها تحدّد موعد تشغيل LoggingFlushHandler بشكل غير متزامن على سلسلة رسائل Weave.

يستند قرار تحديد موعد للتدفق إلى ثلاثة عوامل:

طلب صريح لمحو المخزن المؤقت

حالة المخزن المؤقت للحدث وكمية البيانات التي لم تتم مزامنتها بعد مع مستهلكي الحدث

ما إذا كان هناك حدث طلب إزالة معلّق للطلب مسبقًا.

يتم تمرير الطلب الصريح لجدولة تنظيف البيانات من خلال معلمة إدخال.

وعادةً ما تتم جدولة التدفق التلقائي عندما تحتوي المخازن المؤقتة للأحداث على بيانات كافية للبدء في بدء تفريغ جديد. قد يتم أيضًا وضع عوامل التشغيل الإضافية في الاعتبار، مثل الحد الأدنى والحد الأقصى لوقت التحميل بين عمليات التحميل، بناءً على استراتيجية التحميل.

تتم الإشارة إلى الحالة "في انتظار المراجعة" لسجلّ الأحداث باستخدام المتغيّر mUploadRequested. بما أنّه يمكن استدعاء هذه الدالة بواسطة سلاسل محادثات متعددة، يجب قراءة mUploadRequested وضبطه آليًا، لتجنُّب جدولة LoggingFlushHandler مكررة قبل إرسال الإشعار.

التفاصيل
المعلَمات
inRequestFlush
قيمة منطقية تشير إلى ما إذا كان يجب جدولة الغسيل بغض النظر عن سياسة إدارة المخزن المؤقت الداخلي.
قيم الإرجاع
WEAVE_ERROR_INCORRECT_STATE
لم يتم إعداد وحدة LoggingManagement بالكامل.
WEAVE_NO_ERROR
النجاح.

أحداث التسلسل

WEAVE_ERROR SerializeEvents(
  TLVWriter & writer
)

تسلسل أحداث Weave من جميع أنواع الأهمية.

تسلسل الأحداث في WeaveCircularTLVBuffer والولايات ذات الصلة إلى المخزن المؤقت الذي تم توفيره.

الهدف من هذه الطريقة أن يتم استخدامه من قِبل الأجهزة التي لا تحتفظ بذاكرة الوصول العشوائي (RAM) أثناء النوم، ما يتيح لها مواصلة تثبيت الأحداث قبل الخلود إلى النوم وبالتالي منع فقدان الأحداث.

عامل التحميل BDX

void SetBDXUploader(
  LogBDXUpload *inUploader
)

مدير Exchange

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

يمكنك ضبط WeaveExchangeManager ليتم استخدامها مع هذا النظام الفرعي للتسجيل.

على بعض الأنظمة الأساسية، قد يلزم حدوث ذلك بشكل منفصل عن CreateLoggingManagement() أعلاه.

التفاصيل
المعلَمات
[in] inMgr
WeaveExchangeManager للاستخدام مع هذا النظام الفرعي للتسجيل

ضبط نقطة تسجيل

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

SkipEvent

void SkipEvent(
  EventLoadOutContext *aContext
)

دالة مساعدة لتخطي كتابة حدث مطابق لرقم تعريف حدث مخصص.

التفاصيل
المعلَمات
[in,out] aContext
يتم إعداد EventLoadOutContext مع معلومات حالة المخزن المؤقت. يتم تعديل الحالة والاحتفاظ بها من خلال BlitEvent باستخدام هذا السياق.

ThrottleLogger

void ThrottleLogger(
  void
)

يعمل ThrottleLogger على رفع مستوى التسجيل الفعّال إلى مستوى الإنتاج.

إلغاء تسجيل CallcallForImportance

void UnregisterEventCallbackForImportance(
  ImportanceType inImportance,
  event_id_t inEventID
)

واجهة برمجة التطبيقات العامة لإلغاء تسجيل مجموعة من الأحداث المخزنة خارجيًا.

سيؤدي إلغاء تسجيل معاودة الاتصال إلى منع LoggingManagement من الاتصال باستدعاء مجموعة من الأحداث. لن ترسل LoggingManagement أرقام تعريف الأحداث هذه إلى المشتركين.

الهدف هو استخدام وظيفة واحدة لعرض مجموعة من الأحداث في الوقت نفسه. إذا كانت هناك مجموعة جديدة من الأحداث بحاجة إلى التسجيل باستخدام الدالة نفسها، يجب أولاً إلغاء تسجيل معاودة الاتصال، ثم تسجيلها مرة أخرى. يعني هذا أنه لم يعد من الممكن استرجاع المجموعة الأصلية من الأحداث.

تعمل هذه الدالة بدون شرط. إذا لم يتم تسجيل معاودة الاتصال مطلقًا أو تم إلغاء تسجيلها من قبل، فهذا يشير إلى عدم توافقها.

التفاصيل
المعلَمات
[in] inImportance
مستوى الأهمية
[in] inEventID
رقم تعريف الحدث المقابل لأي من الأحداث في قالب الحدث الخارجي ليتم إلغاء تسجيله.

جهاز عرض غير منتظم

void UnthrottleLogger(
  void
)

يستعيد UnthrottleLogger مستوى التسجيل الفعال إلى مستوى التسجيل الذي تم إعداده.

الدوال الثابتة العامة

إنشاء التسجيل

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

أنشئ العنصر LoggingManagement واضبط النظام الفرعي لإدارة التسجيل باستخدام الموارد المتاحة.

ابدأ في إعداد LogManagement باستخدام مصفوفة من LogStorageResources. يجب أن توفر المصفوفة موردًا لكل مستوى أهمية صالح، ويجب أن تكون عناصر المصفوفة في زيادة قيمة رقمية للأهمية (وتقلل الأهمية)، ويتوافق العنصر الأول في المصفوفة مع الموارد المخصصة للأحداث الأكثر أهمية، ويتوافق العنصر الأخير مع الأحداث الأقل أهمية.

التفاصيل
المعلَمات
[in] inMgr
WeaveExchangeManager للاستخدام مع هذا النظام الفرعي للتسجيل
[in] inNumBuffers
عدد العناصر في مصفوفة inLogStorageResources
[in] inLogStorageResources
مصفوفة من LogStorageResources لكل مستوى أهمية.

محو تسجيل الدخول

void DestroyLoggingManagement(
  void
)

تنفيذ أي إجراءات نحتاج إلى إيقافها

الحصول على مثيل

LoggingManagement & GetInstance(
  void
)