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)
constructor של LoggingManagement.
LoggingManagement(void)
בנאי ברירת המחדל של LoggingManagement.

פונקציות ציבוריות

BlitEvent(EventLoadOutContext *aContext, const EventSchema & inSchema, EventWriterFunct inEventWriter, void *inAppData, const EventOptions *inOptions)
פונקציה שעוזרת לכתוב את הכותרת והנתונים של האירוע בהתאם לפרוטוקול הרישום של האירועים ביומן.
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
פונקציית העזרה לדלג על כתיבת אירוע שתואם למזהה האירוע שהוקצה.
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
)

פונקציה שעוזרת לכתוב את הכותרת והנתונים של האירוע בהתאם לפרוטוקול הרישום של האירועים ביומן.

פרטים
פרמטרים
[in,out] aContext
EventLoadOutContext, מאותחל עם מידע על מצב המאגר. המצב מתעדכן ונשמר על ידי BlitEvent על סמך ההקשר הזה.
[in] inSchema
סכימה שמגדירה חשיבות, מזהה פרופיל וסוג המבנה של האירוע הזה.
[in] inEventWriter
הקריאה החוזרת (callback) להפעלה כדי ליצור סריאליזציה של נתוני האירוע.
[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
החשיבות ההתחלתית עבור הקוראים. שימו לב שבמקרה הזה חשיבות ההתחלה די לא אינטואיטיבית: אירועים חשובים יותר משתפים את מאגרי הנתונים הזמניים עם אירועים פחות חשובים, בנוסף למאגרי הנתונים הייעודיים שלהם. כתוצאה מכך, הקורא יעביר את הנתונים הכי מעטים כשהחשיבות של ניפוי הבאגים תועבר.
החזרות
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
)

הפונקציה 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 הוא השעה הנוכחית במועד השיחה,
  • 'root' הקטע של מקור האירוע (מקור האירוע ומזהה התכונה) אם הערך הוא NULL, ברירת המחדל תהיה המכשיר הנוכחי. האירוע מסומן כקשור למכשיר שממנו מתבצעת השיחה.
  • מזהה אירוע קשור לקיבוץ מזהי אירועים. כאשר מזהה האירוע הקשור הוא 0, האירוע מסומן כלא קשור לאף אירוע אחר,
  • דחיפות; כברירת מחדל לא דחופות.

פרטים
פרמטרים
[in] inSchema
סכימה שמגדירה חשיבות, מזהה פרופיל וסוג המבנה של האירוע הזה.
[in] inEventWriter
הקריאה החוזרת (callback) להפעלה כדי לבצע סריאליזציה של נתוני האירוע
[in] inAppData
ההקשר של האפליקציה להתקשרות חזרה.
[in] inOptions
האפשרויות למטא-נתונים של האירוע. יכול להיות NULL.
החזרות
event_id_t מזהה האירוע אם האירוע נכתב ביומן. אחרת, 0.

LoggingManagement

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

constructor של 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 הציבורי לרישום קבוצת אירועים שמאוחסנים באופן חיצוני.

רושמים טופס קריאה חוזרת (callback) מסוג FetchExternalEventsFunct. ה-API הזה מחייב את הפלטפורמה לדעת את מספר האירועים ברישום. גם הפונקציה הפנימית דורשת שהמספר יהיה קבוע. ה-API הזה לא מאפשר לפלטפורמה לרשום מזהי אירועים ספציפיים, ולכן הפלטפורמה לא יכולה לשמור את האחסון של אירועים (לפחות עם מזהי אירועים ייחודיים).

תתבצע שיחה חוזרת בכל פעם שמנוי ינסה לאחזר מזהי אירועים בטווח כלשהו מספר פעמים, עד לביטול הרישום.

צריך להשתמש בווריאנט הזה של הפונקציה כאשר הספק החיצוני רוצה לקבל התראה גם כשהאירועים נשלחים למינוי וגם אם אובייקט האירועים החיצוניים מוסר.

כשהאירועים נמסרים, הספק החיצוני מקבל הודעה על כך, יחד עם מזהה הצומת של הנמען והמזהה של האירוע האחרון שנמסר לנמען הזה. שימו לב שהספק החיצוני עשוי לקבל התראות כמה פעמים לגבי אותו מזהה אירוע. אין הגבלות ספציפיות על ה-handler, באופן ספציפי, הוא יכול לבטל את הרישום של מזהי האירועים החיצוניים.

אם אובייקט האירועים החיצוניים יוסר ממאגרי הנתונים הזמניים של היומן, תישלח הודעה לספק החיצוני יחד עם עותק של אובייקט האירועים החיצוניים.

המצביע אל המבנה ExternalEvents יהיה NULL במקרה של כשל. אחרת, המערכת תאוכלס במזהים של אירועי התחלה וסיום שהוקצו לקריאה החוזרת. יש להשתמש במיקום הזה כדי לבטל את הרישום של קבוצת האירועים.

במסמכי התיעוד של FetchExternalEventsFunct מוסבר מה צריך לעשות בקריאה החוזרת.

פרטים
פרמטרים
[in] inImportance
רמת חשיבות
[in] inFetchCallback
קריאה חוזרת (callback) כדי להירשם לאחזור אירועים חיצוניים
[in] inNotifyCallback
צריך להתקשר חזרה כדי להירשם לקבלת התראה על משלוח
[in] inEvictedCallback
התקשרות חזרה כדי להירשם להודעה על פינוי
[in] inNumEvents
מספר האירועים בקבוצה הזו
[out] outLastEventID
מצביע אל event_id_t; ברישום מוצלח של אירועים חיצוניים, הפונקציה תאחסן את מזהה האירוע שתואם למזהה האירוע האחרון של בלוק האירועים החיצוני. הפרמטר יכול להיות NULL.
ערכים מוחזרים
WEAVE_ERROR_NO_MEMORY
אם אין משבצות זמן נוספות להתקשרות חזרה.
WEAVE_ERROR_INVALID_ARGUMENT
קריאה חוזרת (callback) של פונקציה ריקה או שאין אירועים לרישום.
WEAVE_NO_ERROR
הצלחה.

RegisterEventCallbackForImportance

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

ה-API הציבורי לרישום קבוצת אירועים שמאוחסנים באופן חיצוני.

רושמים טופס קריאה חוזרת (callback) מסוג FetchExternalEventsFunct. ה-API הזה מחייב את הפלטפורמה לדעת מה מספר האירועים ברישום. גם העבודה הפנימית דורשת שהמספר הזה יהיה קבוע. ה-API הזה לא מאפשר לפלטפורמה לרשום מזהי אירועים ספציפיים, ולכן הפלטפורמה לא יכולה לשמור את האחסון של אירועים (לפחות עם מזהי אירועים ייחודיים).

תתבצע שיחה חוזרת בכל פעם שמנוי ינסה לאחזר מזהי אירועים בטווח כלשהו מספר פעמים, עד לביטול הרישום.

צריך להשתמש בווריאנט הזה של הפונקציה אם הספק החיצוני רוצה לקבל התראה כשהאירועים נשלחים למנוי, אבל לא כשאובייקט האירועים החיצוניים מוסר. כשהאירועים נמסרים, הספק החיצוני מקבל הודעה על כך, יחד עם מזהה הצומת של הנמען והמזהה של האירוע האחרון שנמסר לנמען הזה. לתשומת ליבכם: הספק החיצוני עשוי לקבל התראות כמה פעמים לגבי אותו מזהה אירוע. אין הגבלות ספציפיות על ה-handler, באופן ספציפי, הוא יכול לבטל את הרישום של מזהי האירועים החיצוניים.

המצביע אל המבנה ExternalEvents יהיה NULL במקרה של כשל. אחרת, המערכת תאוכלס במזהים של אירועי התחלה וסיום שהוקצו לקריאה החוזרת. יש להשתמש במיקום הזה כדי לבטל את הרישום של קבוצת האירועים.

במסמכי התיעוד של FetchExternalEventsFunct מוסבר מה צריך לעשות במסגרת הקריאה החוזרת.

פרטים
פרמטרים
[in] inImportance
רמת חשיבות
[in] inCallback
קריאה חוזרת (callback) כדי להירשם לאחזור אירועים חיצוניים
[in] inNotifyCallback
צריך להתקשר חזרה כדי להירשם לקבלת התראה על משלוח
[in] inNumEvents
מספר האירועים בקבוצה הזו
[out] outLastEventID
מצביע אל event_id_t; ברישום מוצלח של אירועים חיצוניים, הפונקציה תאחסן את מזהה האירוע שתואם למזהה האירוע האחרון של בלוק האירועים החיצוני. הפרמטר יכול להיות NULL.
ערכים מוחזרים
WEAVE_ERROR_NO_MEMORY
אם אין משבצות זמן נוספות להתקשרות חזרה.
WEAVE_ERROR_INVALID_ARGUMENT
קריאה חוזרת (callback) של פונקציה ריקה או שאין אירועים לרישום.
WEAVE_NO_ERROR
הצלחה.

RegisterEventCallbackForImportance

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

ה-API הציבורי לרישום קבוצת אירועים שמאוחסנים באופן חיצוני.

רושמים טופס קריאה חוזרת (callback) מסוג FetchExternalEventsFunct. ה-API הזה מחייב את הפלטפורמה לדעת מה מספר האירועים ברישום. גם העבודה הפנימית דורשת שהמספר הזה יהיה קבוע. ה-API הזה לא מאפשר לפלטפורמה לרשום מזהי אירועים ספציפיים, ולכן הפלטפורמה לא יכולה לשמור את האחסון של אירועים (לפחות עם מזהי אירועים ייחודיים).

תתבצע שיחה חוזרת בכל פעם שמנוי ינסה לאחזר מזהי אירועים בטווח כלשהו מספר פעמים, עד לביטול הרישום.

כדאי להשתמש בווריאנט הזה של הפונקציה אם הספק החיצוני רצה לקבל התראה לא כשהאירועים החיצוניים נמסרו וגם לא לאחר הסרה של אובייקט האירועים החיצוניים.

המצביע אל המבנה ExternalEvents יהיה NULL במקרה של כשל. אחרת, המערכת תאוכלס במזהים של אירועי התחלה וסיום שהוקצו לקריאה החוזרת. יש להשתמש במיקום הזה כדי לבטל את הרישום של קבוצת האירועים.

במסמכי התיעוד של FetchExternalEventsFunct מוסבר מה צריך לעשות במסגרת הקריאה החוזרת.

פרטים
פרמטרים
[in] inImportance
רמת חשיבות
[in] inCallback
התקשרות חזרה כדי להירשם לאחזור אירועים חיצוניים
[in] inNumEvents
מספר האירועים בקבוצה הזו
[out] outLastEventID
מצביע אל event_id_t; ברישום מוצלח של אירועים חיצוניים, הפונקציה תאחסן את מזהה האירוע שתואם למזהה האירוע האחרון של בלוק האירועים החיצוני. הפרמטר יכול להיות NULL.
ערכים מוחזרים
WEAVE_ERROR_NO_MEMORY
אם אין משבצות זמן נוספות להתקשרות חזרה.
WEAVE_ERROR_INVALID_ARGUMENT
קריאה חוזרת (callback) של פונקציה ריקה או שאין אירועים לרישום.
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
)

ממשק ה-API הציבורי לביטול הרישום של קבוצת אירועים שאוחסנו באופן חיצוני.

ביטול הרישום של הקריאה החוזרת ימנע מ-LoggingManagement לבצע קריאה חוזרת (callback) לקבוצת אירועים מסוימת. מזהי האירועים האלה לא יישלחו יותר למנויים על ידי 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
)