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
اضبط علامة 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
يعرض الحقل Isصالح ما إذا كان مثيل LoggingManagement صالحًا أم لا.
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)
يمكنك تسلسل أحداث 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 لوصف الطابع الزمني والعلامات الأخرى ذات الصلة بهذا الحدث.

CancelShutdownInProgress

void CancelShutdownInProgress(
  void
)

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

CheckShouldRunWDM

bool CheckShouldRunWDM(
  void
)

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

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

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

FetchEventsSince

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، وأصبح المزيد من الأحداث في السجلّ متاحًا.

GetBytesWritten

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
)

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

IsValid

bool IsValid(
  void
)

يعرض الحقل Isصالح ما إذا كان مثيل LoggingManagement صالحًا أم لا.

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

LoadEvents

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

التفاصيل
المَعلمات
[in] inSchema
المخطط يحدد الأهمية ورقم تعريف الملف الشخصي ونوع البنية لهذا الحدث.
[in] inEventWriter
معاودة الاتصال المطلوب استدعاءها لإنشاء تسلسل لبيانات الحدث
[in] inAppData
سياق التطبيق لمعاودة الاتصال.
[in] inOptions
خيارات البيانات الوصفية للحدث قد تكون فارغة.
المرتجعات
event_id_t معرّف الحدث إذا تمت كتابة الحدث في السجل، وإلا 0.

LoggingManagement

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

الدالة الإنشائية LoggingManagement.

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

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

LoggingManagement

 LoggingManagement(
  void
)

الدالة الإنشائية التلقائية LoggingManagement.

يتم توفيرها بشكل أساسي لجعل برنامج التحويل البرمجي سعيدًا.

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

MarkShutdownInProgress

void MarkShutdownInProgress(
  void
)

اضبط العلامة mShutdownInProgress على "صحيح".

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 للحصول على تفاصيل بشأن ما يجب تنفيذه من معاودة الاتصال.

التفاصيل
المَعلمات
[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
عند النجاح

RegisterEventCallbackForImportance

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

يشير ذلك المصطلح إلى واجهة برمجة التطبيقات العامة لتسجيل مجموعة من الأحداث المخزَّنة خارجيًا.

سجِّل معاودة الاتصال بالنموذج FetchExternalEventsFunct. تتطلب واجهة برمجة التطبيقات هذه أن تعرف المنصة عدد الأحداث عند التسجيل. تتطلب الأعمال الداخلية أيضًا أن يكون هذا الرقم ثابتًا. وبما أنّ واجهة برمجة التطبيقات هذه لا تسمح للنظام الأساسي بتسجيل أرقام تعريف أحداث محدّدة، يمنع ذلك النظام الأساسي من مواصلة تخزين الأحداث (على الأقل باستخدام معرّفات الأحداث الفريدة).

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

ويجب استخدام صيغة الدالة هذه عندما يريد الموفر الخارجي أن يتم إشعاره عند تسليم الأحداث إلى مشترك، وليس عند إخراج عنصر الأحداث الخارجية. عند تسليم الأحداث، يتم إشعار الموفر الخارجي بذلك بالإضافة إلى معرّف عقدة المستلم ومعرّف الحدث الأخير الذي تم تسليمه إلى هذا المستلم. وتجدُر الإشارة إلى أنّه قد يتم إرسال إشعار إلى الموفِّر الخارجي عدة مرات بشأن رقم تعريف الحدث نفسه. ليست هناك قيود محدَّدة على المعالج، على وجه الخصوص، قد يلغي المعالج تسجيل أرقام تعريف الأحداث الخارجية.

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

راجِع وثائق FetchExternalEventsFunct للحصول على تفاصيل بشأن ما يجب تنفيذه من معاودة الاتصال.

التفاصيل
المَعلمات
[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
عند النجاح

RegisterEventCallbackForImportance

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

يشير ذلك المصطلح إلى واجهة برمجة التطبيقات العامة لتسجيل مجموعة من الأحداث المخزَّنة خارجيًا.

سجِّل معاودة الاتصال بالنموذج FetchExternalEventsFunct. تتطلب واجهة برمجة التطبيقات هذه أن تعرف المنصة عدد الأحداث عند التسجيل. تتطلب الأعمال الداخلية أيضًا أن يكون هذا الرقم ثابتًا. وبما أنّ واجهة برمجة التطبيقات هذه لا تسمح للنظام الأساسي بتسجيل أرقام تعريف أحداث محدّدة، يمنع ذلك النظام الأساسي من مواصلة تخزين الأحداث (على الأقل باستخدام معرّفات الأحداث الفريدة).

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

يجب استخدام هذا المتغير من الدالة عندما يريد الموفر الخارجي إشعارًا، لا عندما يتم تسليم الأحداث الخارجية أو عند التخلص من عنصر الأحداث الخارجية.

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

راجِع وثائق FetchExternalEventsFunct للحصول على تفاصيل بشأن ما يجب تنفيذه من معاودة الاتصال.

التفاصيل
المَعلمات
[in] inImportance
مستوى الأهمية
[in] inCallback
معاودة الاتصال للتسجيل لاسترجاع الأحداث الخارجية
[in] inNumEvents
عدد الأحداث في هذه المجموعة
[out] outLastEventID
أشِر إلى event_id_t؛ عند التسجيل الناجح للأحداث الخارجية، ستخزِّن الدالة رقم تعريف الحدث المقابل لرقم تعريف الحدث الأخير لمجموعة الحدث الخارجي. قد تكون المعلمة فارغة (NULL).
قيم الإرجاع
WEAVE_ERROR_NO_MEMORY
في حال عدم توفّر المزيد من خانات معاودة الاتصال.
WEAVE_ERROR_INVALID_ARGUMENT
لا يوجد استدعاء للدالة أو لا توجد أحداث لتسجيلها.
WEAVE_NO_ERROR
عند النجاح

ScheduleFlushIfNeeded

WEAVE_ERROR ScheduleFlushIfNeeded(
  bool inFlushRequested
)

جدولة مهمة تفريغ سجلّ

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

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

طلب صريح للتخلص من المورد الاحتياطي

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

ما إذا كان هناك حدث طلب في انتظار المراجعة حاليًا.

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

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

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

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

SerializeEvents

WEAVE_ERROR SerializeEvents(
  TLVWriter & writer
)

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

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

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

SetBDXUploader

void SetBDXUploader(
  LogBDXUpload *inUploader
)

SetExchangeManager

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
)

SkipEvent

void SkipEvent(
  EventLoadOutContext *aContext
)

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

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

ThrottleLogger

void ThrottleLogger(
  void
)

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

UnregisterEventCallbackForImportance

void UnregisterEventCallbackForImportance(
  ImportanceType inImportance,
  event_id_t inEventID
)

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

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

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

تنجح هذه الدالة بدون شرط. إذا لم يتم تسجيل معاودة الاتصال أو سبق أن تم إلغاء تسجيلها، تكون هذه الميزة بيئة مستقلة.

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

UnthrottleLogger

void UnthrottleLogger(
  void
)

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

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

CreateLoggingManagement

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

أنشئ كائن LoggingManagement، وقم بإعداد النظام الفرعي لإدارة التسجيل باستخدام الموارد المقدمة.

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

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

DestroyLoggingManagement

void DestroyLoggingManagement(
  void
)

نفِّذ أي إجراءات نحتاج إليها عند إيقاف التشغيل.

GetInstance

LoggingManagement & GetInstance(
  void
)