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)
تابع Helper برای نوشتن هدر رویداد و داده ها بر اساس پروتکل ثبت رویداد.
CancelShutdownInProgress (void)
void
پرچم mShutdownInProgress را روی false تنظیم کنید.
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)
API عمومی برای ثبت مجموعه ای از رویدادهای ذخیره شده خارجی.
RegisterEventCallbackForImportance ( ImportanceType inImportance, FetchExternalEventsFunct inFetchCallback, NotifyExternalEventsDeliveredFunct inNotifyCallback, size_t inNumEvents, event_id_t *outLastEventID)
API عمومی برای ثبت مجموعه ای از رویدادهای ذخیره شده خارجی.
RegisterEventCallbackForImportance ( ImportanceType inImportance, FetchExternalEventsFunct inFetchCallback, size_t inNumEvents, event_id_t *outLastEventID)
API عمومی برای ثبت مجموعه ای از رویدادهای ذخیره شده خارجی.
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
تابع Helper برای پرش از نوشتن یک رویداد مربوط به شناسه رویداد اختصاص داده شده.
ThrottleLogger (void)
void
ThrottleLogger سطح ثبت موثر را به سطح تولید ارتقا می دهد.
UnregisterEventCallbackForImportance ( ImportanceType inImportance, event_id_t inEventID)
void
API عمومی برای لغو ثبت مجموعه ای از رویدادهای ذخیره شده خارجی.
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
)

تابع Helper برای نوشتن هدر رویداد و داده ها بر اساس پروتکل ثبت رویداد.

جزئیات
پارامترها
[in,out] aContext
EventLoadOutContext ، با اطلاعات حالت اولیه برای بافر مقداردهی شده است. State با استفاده از این زمینه توسط BlitEvent به روز و حفظ می شود.
[in] inSchema
طرحواره تعیین کننده اهمیت، شناسه نمایه و نوع ساختار این رویداد.
[in] inEventWriter
فراخوانی برای سریال‌سازی داده‌های رویداد.
[in] inAppData
زمینه برنامه برای پاسخ به تماس
[in] inOptions
EventOptions که مهر زمانی و سایر برچسب‌های مرتبط با این رویداد را توصیف می‌کنند.

CancelShutdownInProgress

void CancelShutdownInProgress(
  void
)

پرچم mShutdownInProgress را روی false تنظیم کنید.

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
اهمیت شروع برای خواننده. توجه داشته باشید که در این مورد، اهمیت شروع تا حدودی غیر شهودی است: رویدادهای مهمتر، علاوه بر بافرهای اختصاصی، بافرها را با رویدادهای کمتر مهم به اشتراک می گذارند. در نتیجه، زمانی که اهمیت Debug داده شود، خواننده کمترین داده را طی می کند.
برمی گرداند
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 را بررسی کنید.

معتبر است

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 به طور پیش‌فرض روی زمان فعلی در نقطه تماس قرار می‌گیرد،
  • بخش "ریشه" منبع رویداد (منبع رویداد و شناسه صفت)؛ اگر NULL باشد، به طور پیش فرض روی دستگاه فعلی است. رویداد به عنوان مربوط به دستگاهی است که تماس را برقرار می کند،
  • شناسه رویداد مرتبط برای گروه‌بندی شناسه‌های رویداد؛ هنگامی که شناسه رویداد مربوطه 0 باشد، رویداد به‌عنوان غیرمرتبط با هیچ رویداد دیگری علامت‌گذاری می‌شود،
  • فوریت؛ به طور پیش فرض غیر فوری

جزئیات
پارامترها
[in] inSchema
طرحواره تعیین کننده اهمیت، شناسه نمایه و نوع ساختار این رویداد.
[in] inEventWriter
تماس برگشتی برای فراخوانی برای سریال سازی واقعی داده های رویداد
[in] inAppData
زمینه برنامه برای پاسخ به تماس
[in] inOptions
گزینه های مربوط به ابرداده رویداد. ممکن است NULL باشد.
برمی گرداند
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 را روی true تنظیم کنید.

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
)

API عمومی برای ثبت مجموعه ای از رویدادهای ذخیره شده خارجی.

یک پاسخ تماس از فرم FetchExternalEventsFunct ثبت کنید. این API به پلتفرم نیاز دارد که تعداد رویدادهای ثبت نام را بداند. عملکرد داخلی نیز مستلزم ثابت بودن این عدد است. از آنجایی که این API به پلتفرم اجازه نمی‌دهد شناسه‌های رویداد خاصی را ثبت کند، این امر مانع از ذخیره‌سازی مداوم رویدادها (حداقل با شناسه‌های رویداد منحصربه‌فرد) می‌شود.

هر زمان که مشترکی تلاش کند شناسه رویداد را در محدوده هر تعداد دفعه واکشی کند تا زمانی که ثبت نشود، تماس برگشتی فراخوانی می شود.

این نوع عملکرد باید زمانی استفاده شود که ارائه‌دهنده خارجی می‌خواهد هم زمانی که رویدادها به یک مشترک تحویل داده می‌شوند و هم در صورتی که شی رویدادهای خارجی خارج شده است، مطلع شود.

هنگامی که رویدادها تحویل داده می شوند، ارائه دهنده خارجی در مورد آن به همراه شناسه گره گیرنده و شناسه آخرین رویداد تحویل شده به آن گیرنده مطلع می شود. توجه داشته باشید که ارائه دهنده خارجی ممکن است چندین بار برای شناسه رویداد یکسان مطلع شود. هیچ محدودیت خاصی برای کنترل کننده وجود ندارد، به ویژه، کنترل کننده ممکن است شناسه های رویداد خارجی را لغو ثبت کند.

اگر شی رویدادهای خارجی از بافرهای گزارش خارج شود، ارائه دهنده خارجی به همراه یک کپی از شی رویدادهای خارجی مطلع می شود.

اشاره گر به ساختار ExternalEvents در صورت شکست NULL خواهد بود، در غیر این صورت با شناسه های رویداد شروع و پایان تخصیص داده شده به پاسخ تماس پر می شود. این اشاره گر باید برای لغو ثبت مجموعه رویدادها استفاده شود.

برای جزئیات بیشتر در مورد آنچه که callback باید اجرا کند، به مستندات 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
)

API عمومی برای ثبت مجموعه ای از رویدادهای ذخیره شده خارجی.

یک پاسخ تماس از فرم FetchExternalEventsFunct ثبت کنید. این API به پلتفرم نیاز دارد که تعداد رویدادهای ثبت نام را بداند. عملکرد داخلی نیز مستلزم ثابت بودن این عدد است. از آنجایی که این API به پلتفرم اجازه نمی‌دهد شناسه‌های رویداد خاصی را ثبت کند، این امر مانع از ذخیره‌سازی مداوم رویدادها (حداقل با شناسه‌های رویداد منحصربه‌فرد) می‌شود.

هر زمان که مشترکی تلاش کند شناسه رویداد را در محدوده هر تعداد دفعه واکشی کند تا زمانی که ثبت نشود، تماس برگشتی فراخوانی می شود.

این نوع عملکرد باید زمانی استفاده شود که ارائه‌دهنده خارجی می‌خواهد هنگام تحویل رویدادها به یک مشترک مطلع شود، اما نه زمانی که شی رویدادهای خارجی خارج می‌شود. هنگامی که رویدادها تحویل داده می شوند، ارائه دهنده خارجی در مورد آن به همراه شناسه گره گیرنده و شناسه آخرین رویداد تحویل شده به آن گیرنده مطلع می شود. توجه داشته باشید که ارائه دهنده خارجی ممکن است چندین بار برای شناسه رویداد یکسان مطلع شود. هیچ محدودیت خاصی برای کنترل کننده وجود ندارد، به ویژه، کنترل کننده ممکن است شناسه های رویداد خارجی را لغو ثبت کند.

اشاره گر به ساختار ExternalEvents در صورت شکست NULL خواهد بود، در غیر این صورت با شناسه های رویداد شروع و پایان تخصیص داده شده به پاسخ تماس پر می شود. این اشاره گر باید برای لغو ثبت مجموعه رویدادها استفاده شود.

برای جزئیات بیشتر در مورد آنچه که callback باید اجرا کند، به مستندات 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
)

API عمومی برای ثبت مجموعه ای از رویدادهای ذخیره شده خارجی.

یک پاسخ تماس از فرم FetchExternalEventsFunct ثبت کنید. این API به پلتفرم نیاز دارد که تعداد رویدادهای ثبت نام را بداند. عملکرد داخلی نیز مستلزم ثابت بودن این عدد است. از آنجایی که این API به پلتفرم اجازه نمی‌دهد شناسه‌های رویداد خاصی را ثبت کند، این امر مانع از ذخیره‌سازی مداوم رویدادها (حداقل با شناسه‌های رویداد منحصربه‌فرد) می‌شود.

هر زمان که مشترکی تلاش کند شناسه رویداد را در محدوده هر تعداد دفعه واکشی کند تا زمانی که ثبت نشود، تماس برگشتی فراخوانی می شود.

این نوع تابع باید زمانی استفاده شود که ارائه‌دهنده خارجی خواهان اعلان باشد، نه زمانی که رویدادهای خارجی تحویل داده شده‌اند و نه زمانی که شی رویدادهای خارجی خارج می‌شوند.

اشاره گر به ساختار ExternalEvents در صورت شکست NULL خواهد بود، در غیر این صورت با شناسه های رویداد شروع و پایان تخصیص داده شده به پاسخ تماس پر می شود. این اشاره گر باید برای لغو ثبت مجموعه رویدادها استفاده شود.

برای جزئیات بیشتر در مورد آنچه که callback باید اجرا کند، به مستندات 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 زمان‌بندی می‌کند.

تصمیم برای برنامه ریزی فلاش به سه عامل بستگی دارد:

یک درخواست صریح برای شستشوی بافر

وضعیت بافر رویداد و مقدار داده ای که هنوز با مصرف کنندگان رویداد هماهنگ نشده است

آیا در حال حاضر یک رویداد درخواست flush درخواست در حال انتظار وجود دارد یا خیر.

درخواست صریح برای برنامه ریزی یک فلاش از طریق یک پارامتر ورودی ارسال می شود.

فلاش خودکار معمولاً زمانی برنامه‌ریزی می‌شود که بافرهای رویداد حاوی داده‌های کافی برای شروع تخلیه جدید باشند. محرک های اضافی مانند حداقل و حداکثر زمان بین بارگذاری ها نیز ممکن است بسته به استراتژی تخلیه در نظر گرفته شود.

وضعیت معلق گزارش رویداد با متغیر mUploadRequested نشان داده می شود. از آنجایی که این تابع را می توان توسط چندین رشته فراخوانی کرد، mUploadRequested باید به صورت اتمی خوانده و تنظیم شود تا از برنامه ریزی LoggingFlushHandler اضافی قبل از ارسال اعلان جلوگیری شود.

جزئیات
پارامترها
inRequestFlush
یک مقدار بولی که نشان می دهد آیا فلاش باید بدون توجه به سیاست مدیریت داخلی بافر برنامه ریزی شود یا خیر.
ارزش های بازگشتی
WEAVE_ERROR_INCORRECT_STATE
ماژول LoggingManagement به طور کامل راه اندازی نشده است.
WEAVE_NO_ERROR
در مورد موفقیت

SerializeEvents

WEAVE_ERROR SerializeEvents(
  TLVWriter & writer
)

رویدادهای Weave را از همه انواع مهم سریال کنید.

وقایع موجود در WeaveCircularTLVBuffer و حالت های مرتبط را در بافر ارائه شده سریال می کند.

این روش در نظر گرفته شده است که توسط دستگاه هایی استفاده شود که حافظه RAM را در هنگام خواب حفظ نمی کنند، و به آنها اجازه می دهد رویدادها را قبل از خواب ادامه دهند و در نتیجه از از دست رفتن رویدادها جلوگیری کنند.

SetBDXUloader

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
)

تابع Helper برای پرش از نوشتن یک رویداد مربوط به شناسه رویداد اختصاص داده شده.

جزئیات
پارامترها
[in,out] aContext
EventLoadOutContext ، با اطلاعات حالت اولیه برای بافر مقداردهی شده است. State با استفاده از این زمینه توسط BlitEvent به روز و حفظ می شود.

ThrottleLogger

void ThrottleLogger(
  void
)

ThrottleLogger سطح ثبت موثر را به سطح تولید ارتقا می دهد.

UnregisterEventCallbackForImportance

void UnregisterEventCallbackForImportance(
  ImportanceType inImportance,
  event_id_t inEventID
)

API عمومی برای لغو ثبت مجموعه ای از رویدادهای ذخیره شده خارجی.

لغو ثبت تماس برگشتی از تماس 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
)