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

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

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
)

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

IsValid

bool IsValid(
  void
)

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

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

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
)