nl::Weave::Profiles::DataManagement_Current::LoggingManagement

#include <src/lib/profiles/data-management/Current/LoggingManagement.h>

Klasa do zarządzania logami zdarzeń w pamięci.

Podsumowanie

Konstruktorzy i niszczyciele

LoggingManagement(nl::Weave::WeaveExchangeManager *inMgr, size_t inNumBuffers, const LogStorageResources *const inLogStorageResources)
Konstruktor LoggingManagement.
LoggingManagement(void)
Domyślny konstruktor LoggingManagement.

Funkcje publiczne

BlitEvent(EventLoadOutContext *aContext, const EventSchema & inSchema, EventWriterFunct inEventWriter, void *inAppData, const EventOptions *inOptions)
Funkcja pomocnicza do zapisywania nagłówków i danych zdarzeń zgodnie z protokołem rejestrowania zdarzeń.
CancelShutdownInProgress(void)
void
Ustaw flagę mShutdownInprogress na wartość Fałsz.
CheckShouldRunWDM(void)
bool
Zdecyduj, czy chcesz odciążać zdarzenia na podstawie liczby bajtów w buforach zdarzeń niezaplanowanych do przesyłania.
FetchEventsSince(nl::Weave::TLV::TLVWriter & ioWriter, ImportanceType inImportance, event_id_t & ioEventID)
Funkcja pobierania zdarzeń o określonym znaczeniu od momentu określonego identyfikatora zdarzenia.
GetBytesWritten(void) const
uint32_t
Uzyskaj łączną liczbę bajtów zapisanych w tym logu (we wszystkich znaczeniu zdarzeń) od momentu jego utworzenia.
GetEventReader(nl::Weave::TLV::TLVReader & ioReader, ImportanceType inImportance)
Metoda pomocnicza przydatna do badania buforów dziennika w pamięci.
GetFirstEventID(ImportanceType inImportance)
Pobierz pierwszy zapisany obecnie identyfikator zdarzenia na określonym poziomie ważności.
GetLastEventID(ImportanceType inImportance)
Pobieranie najnowszego identyfikatora określonego poziomu ważności.
IsShutdownInProgress(void)
bool
Sprawdź flagę mShutdownInprogress.
IsValid(void)
bool
IsValid zwraca informacje o tym, czy wystąpienie LoggingManagement jest prawidłowe.
LoadEvents(TLVReader & reader)
Wczytywanie zapisane wcześniej zdarzenie Weave.
LogEvent(const EventSchema & inSchema, EventWriterFunct inEventWriter, void *inAppData, const EventOptions *inOptions)
Zarejestruj zdarzenie za pomocą wywołania zwrotnego z opcjami.
MarkShutdownInProgress(void)
void
Ustaw flagę mShutdownInprogress na wartość true (prawda).
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)
Publiczny interfejs API do rejestrowania zestawu zdarzeń przechowywanych zewnętrznie.
RegisterEventCallbackForImportance(ImportanceType inImportance, FetchExternalEventsFunct inFetchCallback, NotifyExternalEventsDeliveredFunct inNotifyCallback, size_t inNumEvents, event_id_t *outLastEventID)
Publiczny interfejs API do rejestrowania zestawu zdarzeń przechowywanych zewnętrznie.
RegisterEventCallbackForImportance(ImportanceType inImportance, FetchExternalEventsFunct inFetchCallback, size_t inNumEvents, event_id_t *outLastEventID)
Publiczny interfejs API do rejestrowania zestawu zdarzeń przechowywanych zewnętrznie.
ScheduleFlushIfNeeded(bool inFlushRequested)
Zaplanuj zadanie usunięcia logów.
SerializeEvents(TLVWriter & writer)
Zserializuj zdarzenia Weave wszystkich typów ważności.
SetBDXUploader(LogBDXUpload *inUploader)
void
SetExchangeManager(nl::Weave::WeaveExchangeManager *inMgr)
Skonfiguruj WeaveExchangeManager, który ma być używany z tym podsystemem logowania.
SetLoggingEndpoint(event_id_t *inEventEndpoints, size_t inNumImportanceLevels, size_t & outLoggingPosition)
SkipEvent(EventLoadOutContext *aContext)
void
Funkcja pomocnicza pozwalająca pominąć zapisywanie zdarzenia odpowiadającego przydzielonemu identyfikatorowi zdarzenia.
ThrottleLogger(void)
void
ThrottleLogger przenosi efektywny poziom rejestrowania na poziom produkcyjny.
UnregisterEventCallbackForImportance(ImportanceType inImportance, event_id_t inEventID)
void
Publiczny interfejs API do wyrejestrowania zbioru zdarzeń przechowywanych zewnętrznie.
UnthrottleLogger(void)
void
UnthrottleLogger przywraca efektywny poziom logowania do skonfigurowanego poziomu logowania.

Publiczne funkcje statyczne

CreateLoggingManagement(nl::Weave::WeaveExchangeManager *inMgr, size_t inNumBuffers, const LogStorageResources *const inLogStorageResources)
void
Utwórz obiekt LoggingManagement i zainicjuj podsystem zarządzania logowaniem przy użyciu udostępnionych zasobów.
DestroyLoggingManagement(void)
void
Wykonaj czynności potrzebne do wyłączenia.
GetInstance(void)

Funkcje publiczne

BlitEvent

WEAVE_ERROR BlitEvent(
  EventLoadOutContext *aContext,
  const EventSchema & inSchema,
  EventWriterFunct inEventWriter,
  void *inAppData,
  const EventOptions *inOptions
)

Funkcja pomocnicza do zapisywania nagłówków i danych zdarzeń zgodnie z protokołem rejestrowania zdarzeń.

Szczegóły
Parametry
[in,out] aContext
EventLoadOutContext – zainicjowano z użyciem informacji stanowych bufora. BlitEvent aktualizuje i chroni ten stan przy użyciu tego kontekstu.
[in] inSchema
Schemat określający znaczenie, identyfikator profilu i typ struktury tego wydarzenia.
[in] inEventWriter
Wywołanie zwrotne do wywołania zserializowania danych zdarzenia.
[in] inAppData
Kontekst aplikacji wywołania zwrotnego.
[in] inOptions
Parametr EventOptions opisujący sygnaturę czasową i inne tagi związane z tym zdarzeniem.

CancelShutdownInProgress

void CancelShutdownInProgress(
  void
)

Ustaw flagę mShutdownInprogress na wartość Fałsz.

CheckShouldRunWDM

bool CheckShouldRunWDM(
  void
)

Zdecyduj, czy chcesz odciążać zdarzenia na podstawie liczby bajtów w buforach zdarzeń niezaplanowanych do przesyłania.

Działanie funkcji jest kontrolowane przez stałą WEAVE_CONFIG_EVENT_LOGGING_BYTE_THRESHOLD. Jeśli system zapisał więcej niż ta liczba bajtów od ostatniego wysłania powiadomienia WDM, funkcja wskaże, że czas aktywować mechanizm NotificationEngine.

Szczegóły
Zwracane wartości
true
Zdarzenia powinny być wyłączone
false
W innym przypadku

FetchEventsSince

WEAVE_ERROR FetchEventsSince(
  nl::Weave::TLV::TLVWriter & ioWriter,
  ImportanceType inImportance,
  event_id_t & ioEventID
)

Funkcja pobierania zdarzeń o określonym znaczeniu od momentu określonego identyfikatora zdarzenia.

Z uwzględnieniem wartości nl::Weave::TLV::TLVWriter, typu ważności i identyfikatora zdarzenia funkcja będzie pobierać zdarzenia o określonej ważności od momentu wystąpienia określonego zdarzenia. Funkcja będzie pobierać zdarzenia, dopóki nie skończy się miejsce w tabeli nl::Weave::TLV::TLVWriter lub w dzienniku. Ta funkcja zakończy zapis zdarzenia na granicy zdarzenia.

Szczegóły
Parametry
[in] ioWriter
Zapisujący używany do przechowywania zdarzeń
[in] inImportance
Znaczenie zdarzeń do pobrania
[in,out] ioEventID
W przypadku danych wejściowych identyfikator zdarzenia bezpośrednio przed tym, które pobieramy. Po zakończeniu: identyfikator ostatniego pobranego zdarzenia.
Zwracane wartości
WEAVE_END_OF_TLV
Funkcja osiągnęła koniec dostępnych wpisów logu o określonym poziomie ważności
WEAVE_ERROR_NO_MEMORY
Funkcja zabrakło miejsca w ioWriter, więcej zdarzeń w logu jest dostępnych.
WEAVE_ERROR_BUFFER_TOO_SMALL
Funkcja zabrakło miejsca w ioWriter, więcej zdarzeń w logu jest dostępnych.

GetBytesWritten

uint32_t GetBytesWritten(
  void
) const 

Uzyskaj łączną liczbę bajtów zapisanych w tym logu (we wszystkich znaczeniu zdarzeń) od momentu jego utworzenia.

Szczegóły
Zwroty
Liczba bajtów zapisanych w logu.

GetEventReader

WEAVE_ERROR GetEventReader(
  nl::Weave::TLV::TLVReader & ioReader,
  ImportanceType inImportance
)

Metoda pomocnicza przydatna do badania buforów dziennika w pamięci.

Szczegóły
Parametry
[in,out] ioReader
Odwołanie do czytnika, który zostanie zainicjowany z użyciem kopii zapasowej z logu zdarzeń
[in] inImportance
Początkowe znaczenie dla czytelnika. W tym przypadku początkowa wartość znaczenia jest nieco sprzeczna z intuicją: ważniejsze zdarzenia współdzielą bufory z mniej ważnymi zdarzeniami oprócz dedykowanych buforów. W efekcie czytelnik zapozna się z najmniejszą ilością danych podczas przekazywania wartości znaczenia debugowania.
Zwroty
WEAVE_NO_ERROR bezwarunkowo.

GetFirstEventID

event_id_t GetFirstEventID(
  ImportanceType inImportance
)

Pobierz pierwszy zapisany obecnie identyfikator zdarzenia na określonym poziomie ważności.

Szczegóły
Parametry
inImportance
Poziom ważności
Zwroty
event_id_t Identyfikator zdarzenia, który jest w pierwszej kolejności zapisany na podstawie tego zdarzenia

GetLastEventID

event_id_t GetLastEventID(
  ImportanceType inImportance
)

Pobieranie najnowszego identyfikatora określonego poziomu ważności.

Szczegóły
Parametry
inImportance
Poziom ważności
Zwroty
identyfikator ostatniego sprzedanego zdarzenia event_id_t dla tego znaczenia zdarzenia

IsShutdownInProgress

bool IsShutdownInProgress(
  void
)

Sprawdź flagę mShutdownInprogress.

IsValid

bool IsValid(
  void
)

IsValid zwraca informacje o tym, czy wystąpienie LoggingManagement jest prawidłowe.

Szczegóły
Zwracane wartości
true
Instancja jest prawidłowa (zainicjowana z odpowiednią bazą backendu)
false
W innym przypadku

LoadEvents

WEAVE_ERROR LoadEvents(
  TLVReader & reader
)

Wczytywanie zapisane wcześniej zdarzenie Weave.

LogEvent

event_id_t LogEvent(
  const EventSchema & inSchema,
  EventWriterFunct inEventWriter,
  void *inAppData,
  const EventOptions *inOptions
)

Zarejestruj zdarzenie za pomocą wywołania zwrotnego z opcjami.

Funkcja rejestruje zdarzenie reprezentowane jako EventWriterFunct i kontekst appData specyficzny dla aplikacji. Funkcja zapisuje metadane zdarzenia i wywołuje inEventWriter z odwołaniem nl::Weave::TLV::TLVWriter i kontekstem inAppData, dzięki czemu kod użytkownika może wysyłać dane zdarzenia bezpośrednio do dziennika zdarzeń. Ta forma logowania zdarzeń minimalizuje wykorzystanie pamięci, ponieważ dane zdarzeń są serializowane bezpośrednio w buforze docelowym. Dane zdarzenia MUSZĄ zawierać tagi kontekstowe do interpretacji w ramach schematu określonego przez inProfileID i inEventType. Tag pierwszego elementu zostanie zignorowany. System rejestrowania zdarzeń zastąpi go tagiem eventData.

Zdarzenie jest rejestrowane, gdy znaczenie schematu przekroczy próg logowania określony we właściwości LoggingConfiguration. Jeśli waga zdarzenia nie osiągnie obecnego progu, zostanie ono usunięte, a funkcja zwróci wynik 0 jako identyfikator zdarzenia.

Ten wariant wywołania pozwala wywołującemu ustawić dowolną kombinację wartości EventOptions:

  • sygnatura czasowa, gdy 0 przyjmuje domyślnie bieżącą godzinę w momencie połączenia,
  • Sekcja „root” źródła zdarzenia (źródło zdarzenia i identyfikator cechy). Jeśli ma wartość NULL, domyślnie jest używane bieżące urządzenie. Zdarzenie jest oznaczone jako odnoszące się do urządzenia, które wykonuje wywołanie.
  • identyfikator powiązanego zdarzenia na potrzeby grupowania identyfikatorów zdarzeń. Jeśli identyfikator powiązanego zdarzenia to 0, zdarzenie jest oznaczone jako niepowiązane z żadnymi innymi zdarzeniami.
  • pilne; domyślnie niepilne.

Szczegóły
Parametry
[in] inSchema
Schemat określający znaczenie, identyfikator profilu i typ struktury tego wydarzenia.
[in] inEventWriter
Wywołanie zwrotne do wywołania w celu zserializacji danych zdarzenia
[in] inAppData
Kontekst aplikacji wywołania zwrotnego.
[in] inOptions
Opcje metadanych zdarzenia. Może zawierać wartość NULL.
Zwroty
event_id_t Identyfikator zdarzenia, jeśli zdarzenie zostało zapisane w dzienniku. W przeciwnym razie ma wartość 0.

LoggingManagement

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

Konstruktor LoggingManagement.

Zainicjuj LoggingManagement za pomocą tablicy LogStorageResources. Tablica musi zapewniać zasób dla każdego prawidłowego poziomu ważności, elementy tablicy muszą mieć rosnącą wartość liczbową ważności (i malejąco); pierwszy element w tablicy odpowiada zasobom przydanym na potrzeby najważniejszych zdarzeń, a ostatni – najmniej ważnym zdarzeniom.

Szczegóły
Parametry
[in] inMgr
WeaveExchangeManager, który ma być używany z tym podsystemem logowania
[in] inNumBuffers
Liczba elementów w tablicy inLogStorageResources
[in] inLogStorageResources
Tablica LogStorageResources dla każdego poziomu ważności.

LoggingManagement

 LoggingManagement(
  void
)

Domyślny konstruktor LoggingManagement.

Umieszczona głównie po to, aby zadowolić kompilatora.

Szczegóły
Zwroty

MarkShutdownInProgress

void MarkShutdownInProgress(
  void
)

Ustaw flagę mShutdownInprogress na wartość true (prawda).

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
)

Publiczny interfejs API do rejestrowania zestawu zdarzeń przechowywanych zewnętrznie.

Zarejestruj wywołanie zwrotne w postaci FetchExternalEventsFunct. Ten interfejs API wymaga, aby platforma znała liczbę wydarzeń podczas rejestracji. Procesy wewnętrzne również wymagają, by ta liczba była stała. Ponieważ ten interfejs API nie zezwala platformie na rejestrowanie konkretnych identyfikatorów zdarzeń, uniemożliwia to jej przechowywanie zdarzeń (przynajmniej z unikalnymi identyfikatorami zdarzeń).

Wywołanie zwrotne będzie wykonywane za każdym razem, gdy subskrybent spróbuje pobrać identyfikatory zdarzeń z tego zakresu dowolną liczbę razy, dopóki nie zostanie wyrejestrowane.

Ten wariant funkcji powinien być używany, gdy dostawca zewnętrzny chce otrzymywać powiadomienia zarówno o dostarczeniu zdarzeń do subskrybenta, jak i o usunięciu obiektu zdarzeń zewnętrznych.

Po dostarczeniu zdarzeń dostawca zewnętrzny otrzymuje o tym powiadomienie wraz z identyfikatorem węzła odbiorcy oraz identyfikatorem ostatniego zdarzenia dostarczonego do tego adresata. Pamiętaj, że dostawca zewnętrzny może zostać kilka razy powiadomiony o tym samym identyfikatorze wydarzenia. Nie ma żadnych ograniczeń dotyczących modułu obsługi. W szczególności może on wyrejestrować zewnętrzne identyfikatory zdarzeń.

Jeśli zewnętrzny obiekt zdarzeń zostanie usunięty z buforów logów, dostawca zewnętrzny otrzyma powiadomienie wraz z kopią obiektu zdarzeń zewnętrznych.

W przypadku niepowodzenia wskaźnik do struktury ExternalEvents będzie miał wartość NULL. W przeciwnym razie do wywołania zwrotnego zostaną przypisane identyfikatory zdarzeń rozpoczęcia i zakończenia. Ten wskaźnik powinien służyć do wyrejestrowania zbioru zdarzeń.

Szczegółowe informacje o obowiązku wykonywania wywołania zwrotnego znajdziesz w dokumentacji metody FetchExternalEventsFunct.

Szczegóły
Parametry
[in] inImportance
Poziom ważności
[in] inFetchCallback
Wywołanie zwrotne umożliwiające zarejestrowanie zdarzeń zewnętrznych
[in] inNotifyCallback
Oddzwoń, aby zarejestrować się na powiadomienie o dostarczeniu
[in] inEvictedCallback
Oddzwoń, aby zarejestrować się w celu otrzymania powiadomienia o usunięciu
[in] inNumEvents
Liczba zdarzeń w tym zestawie
[out] outLastEventID
Wskaźnik do parametru event_id_t. Po pomyślnej rejestracji zdarzeń zewnętrznych funkcja zapisze identyfikator zdarzenia odpowiadający ostatniemu identyfikatorowi zdarzenia z bloku zdarzeń zewnętrznych. Ten parametr może zawierać wartość NULL.
Zwracane wartości
WEAVE_ERROR_NO_MEMORY
Jeśli nie ma więcej przedziałów na wywołania zwrotne.
WEAVE_ERROR_INVALID_ARGUMENT
Wywołanie zwrotne funkcji null lub brak zdarzeń do zarejestrowania.
WEAVE_NO_ERROR
Na sukces.

RegisterEventCallbackForImportance

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

Publiczny interfejs API do rejestrowania zestawu zdarzeń przechowywanych zewnętrznie.

Zarejestruj wywołanie zwrotne w postaci FetchExternalEventsFunct. Ten interfejs API wymaga, aby platforma znała liczbę wydarzeń podczas rejestracji. Procesy wewnętrzne również wymagają, by ta liczba była stała. Ponieważ ten interfejs API nie zezwala platformie na rejestrowanie konkretnych identyfikatorów zdarzeń, uniemożliwia to jej przechowywanie zdarzeń (przynajmniej z unikalnymi identyfikatorami zdarzeń).

Wywołanie zwrotne będzie wykonywane za każdym razem, gdy subskrybent spróbuje pobrać identyfikatory zdarzeń z tego zakresu dowolną liczbę razy, dopóki nie zostanie wyrejestrowane.

Tego wariantu funkcji należy używać, gdy dostawca zewnętrzny chce otrzymywać powiadomienia o dostarczeniu zdarzeń do subskrybenta, ale nie o usunięciu obiektu zdarzeń zewnętrznych. Po dostarczeniu zdarzeń dostawca zewnętrzny otrzymuje o tym powiadomienie wraz z identyfikatorem węzła odbiorcy oraz identyfikatorem ostatniego zdarzenia dostarczonego do tego adresata. Pamiętaj, że dostawca zewnętrzny może zostać kilka razy powiadomiony o tym samym identyfikatorze wydarzenia. Nie ma żadnych ograniczeń dotyczących modułu obsługi. W szczególności może on wyrejestrować zewnętrzne identyfikatory zdarzeń.

W przypadku niepowodzenia wskaźnik do struktury ExternalEvents będzie miał wartość NULL. W przeciwnym razie do wywołania zwrotnego zostaną przypisane identyfikatory zdarzeń rozpoczęcia i zakończenia. Ten wskaźnik powinien służyć do wyrejestrowania zbioru zdarzeń.

Szczegółowe informacje o obowiązku wykonywania wywołania zwrotnego znajdziesz w dokumentacji metody FetchExternalEventsFunct.

Szczegóły
Parametry
[in] inImportance
Poziom ważności
[in] inCallback
Wywołanie zwrotne umożliwiające zarejestrowanie zdarzeń zewnętrznych
[in] inNotifyCallback
Oddzwoń, aby zarejestrować się na powiadomienie o dostarczeniu
[in] inNumEvents
Liczba zdarzeń w tym zestawie
[out] outLastEventID
Wskaźnik do parametru event_id_t. Po pomyślnej rejestracji zdarzeń zewnętrznych funkcja zapisze identyfikator zdarzenia odpowiadający ostatniemu identyfikatorowi zdarzenia z bloku zdarzeń zewnętrznych. Ten parametr może zawierać wartość NULL.
Zwracane wartości
WEAVE_ERROR_NO_MEMORY
Jeśli nie ma więcej przedziałów na wywołania zwrotne.
WEAVE_ERROR_INVALID_ARGUMENT
Wywołanie zwrotne funkcji null lub brak zdarzeń do zarejestrowania.
WEAVE_NO_ERROR
Na sukces.

RegisterEventCallbackForImportance

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

Publiczny interfejs API do rejestrowania zestawu zdarzeń przechowywanych zewnętrznie.

Zarejestruj wywołanie zwrotne w postaci FetchExternalEventsFunct. Ten interfejs API wymaga, aby platforma znała liczbę wydarzeń podczas rejestracji. Procesy wewnętrzne również wymagają, by ta liczba była stała. Ponieważ ten interfejs API nie zezwala platformie na rejestrowanie konkretnych identyfikatorów zdarzeń, uniemożliwia to jej przechowywanie zdarzeń (przynajmniej z unikalnymi identyfikatorami zdarzeń).

Wywołanie zwrotne będzie wykonywane za każdym razem, gdy subskrybent spróbuje pobrać identyfikatory zdarzeń z tego zakresu dowolną liczbę razy, dopóki nie zostanie wyrejestrowane.

Ten wariant funkcji powinien być używany, gdy dostawca zewnętrzny nie chce otrzymywać powiadomień ani wtedy, gdy zostały dostarczone zdarzenia zewnętrzne ani gdy obiekt zdarzeń zewnętrznych jest usuwany.

W przypadku niepowodzenia wskaźnik do struktury ExternalEvents będzie miał wartość NULL. W przeciwnym razie do wywołania zwrotnego zostaną przypisane identyfikatory zdarzeń rozpoczęcia i zakończenia. Ten wskaźnik powinien służyć do wyrejestrowania zbioru zdarzeń.

Szczegółowe informacje o obowiązku wykonywania wywołania zwrotnego znajdziesz w dokumentacji metody FetchExternalEventsFunct.

Szczegóły
Parametry
[in] inImportance
Poziom ważności
[in] inCallback
Wywołanie zwrotne umożliwiające zarejestrowanie zdarzeń zewnętrznych
[in] inNumEvents
Liczba zdarzeń w tym zestawie
[out] outLastEventID
Wskaźnik do parametru event_id_t. Po pomyślnej rejestracji zdarzeń zewnętrznych funkcja zapisze identyfikator zdarzenia odpowiadający ostatniemu identyfikatorowi zdarzenia z bloku zdarzeń zewnętrznych. Ten parametr może zawierać wartość NULL.
Zwracane wartości
WEAVE_ERROR_NO_MEMORY
Jeśli nie ma więcej przedziałów na wywołania zwrotne.
WEAVE_ERROR_INVALID_ARGUMENT
Wywołanie zwrotne funkcji null lub brak zdarzeń do zarejestrowania.
WEAVE_NO_ERROR
Na sukces.

ScheduleFlushIfNeeded

WEAVE_ERROR ScheduleFlushIfNeeded(
  bool inFlushRequested
)

Zaplanuj zadanie usunięcia logów.

Funkcja decyduje, czy zaplanować proces zwolnienia zadania, a jeśli tak, planuje asynchroniczne uruchamianie LoggingFlushHandler w wątku Weave.

Decyzja o zaplanowaniu usunięcia zależy od 3 czynników:

wyraźne żądanie wyczyszczenia bufora

stan bufora zdarzeń i ilość danych, które nie zostały jeszcze zsynchronizowane z konsumentami zdarzeń

czy istnieje już oczekujące zdarzenie żądania usunięcia treści.

Jednoznaczne żądanie zaplanowania usunięcia jest przekazywane przez parametr wejściowy.

Automatyczne czyszczenie jest zwykle planowane, gdy bufory zdarzeń zawierają wystarczającą ilość danych, aby rozpocząć nowe obciążenie. W zależności od strategii przenoszenia mogą też być brane pod uwagę dodatkowe czynniki, takie jak minimalny i maksymalny czas między odciążeniami.

Stan oczekiwania w dzienniku zdarzeń jest wskazywany przez zmienną mUploadRequested. Funkcja może być wywoływana w wielu wątkach, więc funkcja mUploadRequested musi być atomowo odczytywana i ustawiona, aby uniknąć planowania nadmiarowego elementu LoggingFlushHandler przed wysłaniem powiadomienia.

Szczegóły
Parametry
inRequestFlush
Wartość logiczna wskazująca, czy należy zaplanować usuwanie niezależnie od wewnętrznych zasad zarządzania buforem.
Zwracane wartości
WEAVE_ERROR_INCORRECT_STATE
Moduł LoggingManagement nie został w pełni zainicjowany.
WEAVE_NO_ERROR
Na sukces.

SerializeEvents

WEAVE_ERROR SerializeEvents(
  TLVWriter & writer
)

Zserializuj zdarzenia Weave wszystkich typów ważności.

Serializuje zdarzenia w WeaveCircularTLVBuffer i powiązane stany w udostępnionym buforze.

Ta metoda jest przeznaczona dla urządzeń, które nie przechowują pamięci RAM podczas uśpienia, co pozwala zachować zdarzenia przed snem i tym samym zapobiega utracie danych

SetBDXUploader

void SetBDXUploader(
  LogBDXUpload *inUploader
)

SetExchangeManager

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

Skonfiguruj WeaveExchangeManager, który ma być używany z tym podsystemem logowania.

Na niektórych platformach może to być konieczne niezależnie od metody CreateLoggingManagement().

Szczegóły
Parametry
[in] inMgr
WeaveExchangeManager, który ma być używany z tym podsystemem logowania

SetLoggingEndpoint

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

SkipEvent

void SkipEvent(
  EventLoadOutContext *aContext
)

Funkcja pomocnicza pozwalająca pominąć zapisywanie zdarzenia odpowiadającego przydzielonemu identyfikatorowi zdarzenia.

Szczegóły
Parametry
[in,out] aContext
EventLoadOutContext – zainicjowano z użyciem informacji stanowych bufora. BlitEvent aktualizuje i chroni ten stan przy użyciu tego kontekstu.

ThrottleLogger

void ThrottleLogger(
  void
)

ThrottleLogger przenosi efektywny poziom rejestrowania na poziom produkcyjny.

UnregisterEventCallbackForImportance

void UnregisterEventCallbackForImportance(
  ImportanceType inImportance,
  event_id_t inEventID
)

Publiczny interfejs API do wyrejestrowania zbioru zdarzeń przechowywanych zewnętrznie.

Wyrejestrowanie wywołania zwrotnego uniemożliwi LoggingManagement wywoływanie wywołania zwrotnego dla zbioru zdarzeń. LoggingManagement nie będzie już wysyłać tych identyfikatorów zdarzeń do subskrybentów.

Intencją jest, aby jedna funkcja wyświetlała zestaw zdarzeń w danym momencie. Jeśli trzeba zarejestrować nowy zestaw zdarzeń przy użyciu tej samej funkcji, wywołanie zwrotne należy najpierw wyrejestrować, a potem zarejestrować ponownie. Oznacza to, że nie można już pobrać oryginalnego zestawu zdarzeń.

Ta funkcja działa bezwarunkowo. Jeśli wywołanie zwrotne nigdy nie było zarejestrowane lub zostało już wyrejestrowane, jest to cel błędu.

Szczegóły
Parametry
[in] inImportance
Poziom ważności
[in] inEventID
Identyfikator zdarzenia odpowiadający dowolnemu zdarzeniu w zewnętrznym bloku zdarzeń, które ma zostać wyrejestrowane.

UnthrottleLogger

void UnthrottleLogger(
  void
)

UnthrottleLogger przywraca efektywny poziom logowania do skonfigurowanego poziomu logowania.

Publiczne funkcje statyczne

CreateLoggingManagement

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

Utwórz obiekt LoggingManagement i zainicjuj podsystem zarządzania logowaniem przy użyciu udostępnionych zasobów.

Zainicjuj LoggingManagement za pomocą tablicy LogStorageResources. Tablica musi zapewniać zasób dla każdego prawidłowego poziomu ważności, elementy tablicy muszą mieć rosnącą wartość liczbową ważności (i malejąco); pierwszy element w tablicy odpowiada zasobom przydanym na potrzeby najważniejszych zdarzeń, a ostatni – najmniej ważnym zdarzeniom.

Szczegóły
Parametry
[in] inMgr
WeaveExchangeManager, który ma być używany z tym podsystemem logowania
[in] inNumBuffers
Liczba elementów w tablicy inLogStorageResources
[in] inLogStorageResources
Tablica LogStorageResources dla każdego poziomu ważności.

DestroyLoggingManagement

void DestroyLoggingManagement(
  void
)

Wykonaj czynności potrzebne do wyłączenia.

GetInstance

LoggingManagement & GetInstance(
  void
)