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

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

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

Podsumowanie

Konstruktory 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 zdarzenia zgodnie z protokołem logowania zdarzeń.
CancelShutdownInProgress(void)
void
Ustaw flagę mDisabledownInProgress na wartość false (fałsz).
CheckShouldRunWDM(void)
bool
Zdecyduj, czy chcesz odciążyć zdarzenia na podstawie liczby bajtów w buforach zdarzeń, które nie zostały zaplanowane do przesłania.
FetchEventsSince(nl::Weave::TLV::TLVWriter & ioWriter, ImportanceType inImportance, event_id_t & ioEventID)
Funkcja pobierania zdarzeń o określonej ważności od określonego identyfikatora zdarzenia.
GetBytesWritten(void) const
uint32_t
Uzyskaj łączną liczbę bajtów zapisanych w tym logu (niezależnie od znaczenia zdarzeń) od jego utworzenia.
GetEventReader(nl::Weave::TLV::TLVReader & ioReader, ImportanceType inImportance)
Metoda pomocnicza przydatna podczas badania buforów logów w pamięci.
GetFirstEventID(ImportanceType inImportance)
Pobierz pierwszy zapisany obecnie identyfikator zdarzenia dla określonego poziomu ważności.
GetLastEventID(ImportanceType inImportance)
Pobierz najnowszy dostarczony identyfikator dla określonego poziomu ważności.
IsShutdownInProgress(void)
bool
Zaznacz flagę mOffdownInProgress.
IsValid(void)
bool
IsValid zwraca, czy instancja LoggingManagement jest prawidłowa.
LoadEvents(TLVReader & reader)
Wczytywanie wcześniej utrwalonego zdarzenia Weave.
LogEvent(const EventSchema & inSchema, EventWriterFunct inEventWriter, void *inAppData, const EventOptions *inOptions)
Zarejestruj zdarzenie przy użyciu wywołania zwrotnego i opcji.
MarkShutdownInProgress(void)
void
Ustaw flagę mDisabledownInProgress 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 zbioru zdarzeń przechowywanych zewnętrznie.
RegisterEventCallbackForImportance(ImportanceType inImportance, FetchExternalEventsFunct inFetchCallback, NotifyExternalEventsDeliveredFunct inNotifyCallback, size_t inNumEvents, event_id_t *outLastEventID)
Publiczny interfejs API do rejestrowania zbioru zdarzeń przechowywanych zewnętrznie.
RegisterEventCallbackForImportance(ImportanceType inImportance, FetchExternalEventsFunct inFetchCallback, size_t inNumEvents, event_id_t *outLastEventID)
Publiczny interfejs API do rejestrowania zbioru zdarzeń przechowywanych zewnętrznie.
ScheduleFlushIfNeeded(bool inFlushRequested)
Zaplanuj zadanie odciążania logów.
SerializeEvents(TLVWriter & writer)
Zserializuj zdarzenia Weave o wszystkich typach ważności.
SetBDXUploader(LogBDXUpload *inUploader)
void
SetExchangeManager(nl::Weave::WeaveExchangeManager *inMgr)
Skonfiguruj obiekt WeaveExchangeManager, który będzie 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 powiązanego z przydzielonym identyfikatorem zdarzenia.
ThrottleLogger(void)
void
ThrottleLogger podnosi efektywny poziom rejestrowania do poziomu produkcyjnego.
UnregisterEventCallbackForImportance(ImportanceType inImportance, event_id_t inEventID)
void
Publiczny interfejs API do wyrejestrowania zestawu zdarzeń przechowywanych zewnętrznie.
UnthrottleLogger(void)
void
UnthrottleLogger przywraca efektywny poziom rejestrowania do skonfigurowanego poziomu rejestrowania.

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 wszystkie potrzebne do wyłączenia usługi.
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 zdarzenia zgodnie z protokołem logowania zdarzeń.

Szczegóły
Parametry
[in,out] aContext
EventLoadOutContext, zainicjowany z użyciem informacji stanowych o buforze. Stan jest aktualizowany i utrzymywany przez BlitEvent na podstawie tego kontekstu.
[in] inSchema
Schemat określający ważność, identyfikator profilu i typ struktury tego zdarzenia.
[in] inEventWriter
Wywołanie zwrotne do zserializacji danych zdarzenia.
[in] inAppData
Kontekst aplikacji dla wywołania zwrotnego.
[in] inOptions
EventOptions opisujący sygnaturę czasową i inne tagi powiązane z danym zdarzeniem.

CancelShutdownInProgress

void CancelShutdownInProgress(
  void
)

Ustaw flagę mDisabledownInProgress na wartość false (fałsz).

CheckShouldRunWDM

bool CheckShouldRunWDM(
  void
)

Zdecyduj, czy chcesz odciążyć zdarzenia na podstawie liczby bajtów w buforach zdarzeń, które nie zostały zaplanowane do przesłania.

Działaniem tej funkcji jest kontrolowane za pomocą stałej WEAVE_CONFIG_EVENT_LOGGING_BYTE_THRESHOLD. Jeśli od czasu ostatniego wysłania powiadomienia WDM system zapisał więcej bajtów, funkcja wskaże, że nadszedł czas na aktywowanie funkcji 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ślonej ważności od 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ślonym znaczeniu od danego zdarzenia. Funkcja będzie pobierać zdarzenia, dopóki nie skończy się miejsce w nl::Weave::TLV::TLVWriter lub w dzienniku. Funkcja zakończy zapisywanie zdarzenia na jego granicy.

Szczegóły
Parametry
[in] ioWriter
Zapisujący, który ma być używany do przechowywania wydarzeń
[in] inImportance
Znaczenie zdarzeń, aby były pobierane
[in,out] ioEventID
Dane wejściowe to identyfikator zdarzenia bezpośrednio przed tym, które pobieramy. W momencie zakończenia identyfikator ostatniego pobranego zdarzenia.
Zwracane wartości
WEAVE_END_OF_TLV
Funkcja osiągnęła koniec dostępnych wpisów logu na określonym poziomie ważności
WEAVE_ERROR_NO_MEMORY
W funkcji ioWriter skończyło się miejsce. Dostępnych jest więcej zdarzeń w logu.
WEAVE_ERROR_BUFFER_TOO_SMALL
W funkcji ioWriter skończyło się miejsce. Dostępnych jest więcej zdarzeń w logu.

GetBytesWritten

uint32_t GetBytesWritten(
  void
) const 

Uzyskaj łączną liczbę bajtów zapisanych w tym logu (niezależnie od znaczenia zdarzeń) od 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 przy badaniu buforów dziennika w pamięci.

Szczegóły
Parametry
[in,out] ioReader
Odwołanie do czytnika, który zostanie zainicjowany przy użyciu pamięci zapasowej z logu zdarzeń
[in] inImportance
Początkowe znaczenie dla czytelnika. Zwróć uwagę, że w tym przypadku znaczenie początkowe jest nieco sprzeczne z intuicją: ważniejsze wydarzenia współdzielą bufory z mniej ważnymi zdarzeniami oraz ich własnymi buforami. W efekcie, gdy zostanie przekazane znaczenie debugowania, czytelnik będzie przeglądać najmniejszą ilość danych.
Zwroty
WEAVE_NO_ERROR Bezwarunkowo.

GetFirstEventID

event_id_t GetFirstEventID(
  ImportanceType inImportance
)

Pobierz pierwszy zapisany obecnie identyfikator zdarzenia dla określonego poziomu ważności.

Szczegóły
Parametry
inImportance
Poziom ważności
Zwroty
event_id_t – aktualnie zapisany identyfikator zdarzenia o znaczeniu tego zdarzenia

GetLastEventID

event_id_t GetLastEventID(
  ImportanceType inImportance
)

Pobierz najnowszy dostarczony identyfikator dla określonego poziomu ważności.

Szczegóły
Parametry
inImportance
Poziom ważności
Zwroty
Ostatni identyfikator zdarzenia event_id_t związany z tym zdarzeniem

IsShutdownInProgress

bool IsShutdownInProgress(
  void
)

Zaznacz flagę mOffdownInProgress.

IsValid

bool IsValid(
  void
)

IsValid zwraca, czy instancja LoggingManagement jest prawidłowa.

Szczegóły
Zwracane wartości
true
Instancja jest prawidłowa (zainicjowana za pomocą odpowiedniego magazynu kopii zapasowych)
false
W innym przypadku

LoadEvents

WEAVE_ERROR LoadEvents(
  TLVReader & reader
)

Wczytywanie wcześniej utrwalonego zdarzenia Weave.

LogEvent

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

Zarejestruj zdarzenie przy użyciu wywołania zwrotnego i opcji.

Funkcja rejestruje zdarzenie reprezentowane jako EventWriterFunct i kontekst appData danej aplikacji. Funkcja zapisuje metadane zdarzenia i wywołuje inEventWriter z odwołaniem nl::Weave::TLV::TLVWriter i kontekstem inAppData, tak aby kod użytkownika mógł emitować dane zdarzenia bezpośrednio do dziennika zdarzeń. Ta forma rejestrowania zdarzeń minimalizuje wykorzystanie pamięci, ponieważ dane zdarzeń są serializowane bezpośrednio w buforze docelowym. Dane zdarzenia MUSZĄ zawierać tagi kontekstu, które można zinterpretować w ramach schematu określonego przez inProfileID i inEventType. Tag pierwszego elementu zostanie zignorowany. system logowania zdarzeń zastąpi go tagiem eventData.

Zdarzenie jest logowane, jeśli ważność schematu przekracza próg logowania określony w LoggingConfiguration. Jeśli znaczenie zdarzenia nie osiąga aktualnego progu, jest ono pomijane, a funkcja zwraca 0 jako otrzymany identyfikator zdarzenia.

Ten wariant wywołania umożliwia obiektowi wywołującemu ustawienie dowolnej kombinacji wartości EventOptions:

  • timestamp, gdy 0 przyjmuje domyślnie aktualną godzinę w momencie połączenia,
  • „root” sekcji źródła zdarzeń (źródła zdarzeń i identyfikator cechy); Jeśli zawiera wartość NULL, domyślnie jest używane bieżące urządzenie. wydarzenie zostanie oznaczone jako powiązane z urządzeniem, z którego nawiązuje połączenie;
  • identyfikator powiązanego zdarzenia służący do grupowania identyfikatorów zdarzeń; jeśli identyfikator powiązanego zdarzenia ma wartość 0, wydarzenie jest oznaczone jako niepowiązane z żadnymi innymi zdarzeniami.
  • pilność; domyślnie nie są pilne.

Szczegóły
Parametry
[in] inSchema
Schemat określający ważność, identyfikator profilu i typ struktury tego zdarzenia.
[in] inEventWriter
Wywołanie zwrotne do zserializacji danych zdarzenia
[in] inAppData
Kontekst aplikacji dla wywołania zwrotnego.
[in] inOptions
Opcje metadanych zdarzenia. Może mieć 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 funkcję LoggingManagement za pomocą tablicy LogStorageResources. Tablica musi zapewniać zasób dla każdego prawidłowego poziomu ważności, jej elementy muszą mieć rosnącą wartość liczbową o znaczeniu (i malejąco). pierwszy element tablicy odpowiada zasobom przydzielonym na potrzeby najważniejszych zdarzeń, a ostatni – najmniej ważnym.

Szczegóły
Parametry
[in] inMgr
WeaveExchangeManager do użycia 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.

Ma to na celu zapewnienie zadowolenia kompilatora.

Szczegóły
Zwroty

MarkShutdownInProgress

void MarkShutdownInProgress(
  void
)

Ustaw flagę mDisabledownInProgress 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 zbioru zdarzeń przechowywanych zewnętrznie.

Zarejestruj wywołanie zwrotne formularza FetchExternalEventsFunct. Ten interfejs API wymaga, aby platforma znała liczbę zdarzeń podczas rejestracji. Wewnętrzne mechanizmy wymagają też, aby ta liczba była stała. Ponieważ ten interfejs API nie umożliwia platformie rejestrowania określonych identyfikatorów zdarzeń, uniemożliwia to jej przechowywanie danych o zdarzeniach (przynajmniej z unikalnymi identyfikatorami zdarzeń).

Wywołanie zwrotne będzie wywoływane za każdym razem, gdy subskrybent spróbuje pobrać identyfikatory zdarzeń w danym zakresie dowolną liczbę razy, dopóki nie zostanie wyrejestrowany.

Tego wariantu funkcji należy używać, 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 otrzyma o tym powiadomienie wraz z identyfikatorem węzła odbiorcy oraz identyfikatorem ostatniego zdarzenia dostarczonego do tego odbiorcy. Pamiętaj, że dostawca zewnętrzny może zostać kilka razy powiadomiony o tym samym identyfikatorze wydarzenia. Nie ma konkretnych ograniczeń dotyczących modułu obsługi, w szczególności może on wyrejestrować zewnętrzne identyfikatory zdarzeń.

Jeśli obiekt zdarzeń zewnętrznych zostanie usunięty z buforów dziennika, 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 zostanie uzupełniony identyfikatorami zdarzeń rozpoczęcia i zakończenia przypisanych do wywołania zwrotnego. Ten wskaźnik powinien służyć do wyrejestrowania zbioru zdarzeń.

Szczegółowe informacje o tym, co musi zaimplementować wywołanie zwrotne, znajdziesz w dokumentacji obiektu FetchExternalEventsFunct.

Szczegóły
Parametry
[in] inImportance
Poziom ważności
[in] inFetchCallback
Wywołanie zwrotne rejestracji w celu pobrania zdarzeń zewnętrznych
[in] inNotifyCallback
Oddzwoń, aby zarejestrować się na powiadomienie o dostarczeniu
[in] inEvictedCallback
Oddzwanianie do rejestracji w celu otrzymania powiadomienia o usunięciu
[in] inNumEvents
Liczba zdarzeń w tym zestawie
[out] outLastEventID
Wskaźnik na potrzeby parametru event_id_t; Po udanej rejestracji zdarzeń zewnętrznych funkcja zapisze identyfikator zdarzenia odpowiadający ostatniemu identyfikatorowi zdarzenia zewnętrznego bloku zdarzeń. Parametr może mieć wartość NULL.
Zwracane wartości
WEAVE_ERROR_NO_MEMORY
Jeśli nie ma więcej dostępnych terminów wywołania zwrotnego.
WEAVE_ERROR_INVALID_ARGUMENT
Wywołanie zwrotne funkcji o wartości null lub brak zdarzeń do zarejestrowania.
WEAVE_NO_ERROR
Powodzenie.

RegisterEventCallbackForImportance

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

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

Zarejestruj wywołanie zwrotne formularza FetchExternalEventsFunct. Ten interfejs API wymaga, aby platforma znała liczbę zdarzeń podczas rejestracji. Wewnętrzne mechanizmy wymagają też, aby ta liczba była stała. Ponieważ ten interfejs API nie umożliwia platformie rejestrowania określonych identyfikatorów zdarzeń, uniemożliwia to jej przechowywanie danych o zdarzeniach (przynajmniej z unikalnymi identyfikatorami zdarzeń).

Wywołanie zwrotne będzie wywoływane za każdym razem, gdy subskrybent spróbuje pobrać identyfikatory zdarzeń w danym zakresie dowolną liczbę razy, dopóki nie zostanie wyrejestrowany.

Tego wariantu funkcji należy używać, gdy dostawca zewnętrzny chce otrzymywać powiadomienia, gdy zdarzenia zostaną dostarczone do subskrybenta, ale nie wtedy, gdy obiekt zdarzeń zewnętrznych zostanie wykluczony. Po dostarczeniu zdarzeń dostawca zewnętrzny otrzyma o tym powiadomienie wraz z identyfikatorem węzła odbiorcy oraz identyfikatorem ostatniego zdarzenia dostarczonego do tego odbiorcy. Pamiętaj, że dostawca zewnętrzny może zostać kilka razy powiadomiony o tym samym identyfikatorze wydarzenia. Nie ma konkretnych 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 zostanie uzupełniony identyfikatorami zdarzeń rozpoczęcia i zakończenia przypisanych do wywołania zwrotnego. Ten wskaźnik powinien służyć do wyrejestrowania zbioru zdarzeń.

Szczegółowe informacje o tym, co musi zaimplementować wywołanie zwrotne, znajdziesz w dokumentacji obiektu FetchExternalEventsFunct.

Szczegóły
Parametry
[in] inImportance
Poziom ważności
[in] inCallback
Wywołanie zwrotne rejestracji w celu pobrania zdarzeń zewnętrznych
[in] inNotifyCallback
Oddzwoń, aby zarejestrować się na powiadomienie o dostarczeniu
[in] inNumEvents
Liczba zdarzeń w tym zestawie
[out] outLastEventID
Wskaźnik na potrzeby parametru event_id_t; Po udanej rejestracji zdarzeń zewnętrznych funkcja zapisze identyfikator zdarzenia odpowiadający ostatniemu identyfikatorowi zdarzenia zewnętrznego bloku zdarzeń. Parametr może mieć wartość NULL.
Zwracane wartości
WEAVE_ERROR_NO_MEMORY
Jeśli nie ma więcej dostępnych terminów wywołania zwrotnego.
WEAVE_ERROR_INVALID_ARGUMENT
Wywołanie zwrotne funkcji o wartości null lub brak zdarzeń do zarejestrowania.
WEAVE_NO_ERROR
Powodzenie.

RegisterEventCallbackForImportance

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

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

Zarejestruj wywołanie zwrotne formularza FetchExternalEventsFunct. Ten interfejs API wymaga, aby platforma znała liczbę zdarzeń podczas rejestracji. Wewnętrzne mechanizmy wymagają też, aby ta liczba była stała. Ponieważ ten interfejs API nie umożliwia platformie rejestrowania określonych identyfikatorów zdarzeń, uniemożliwia to jej przechowywanie danych o zdarzeniach (przynajmniej z unikalnymi identyfikatorami zdarzeń).

Wywołanie zwrotne będzie wywoływane za każdym razem, gdy subskrybent spróbuje pobrać identyfikatory zdarzeń w danym zakresie dowolną liczbę razy, dopóki nie zostanie wyrejestrowany.

Tego wariantu funkcji należy używać, gdy dostawca zewnętrzny chce otrzymywać powiadomienia ani po dostarczeniu zdarzeń zewnętrznych, ani gdy obiekt zdarzeń zewnętrznych jest usuwany.

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

Szczegółowe informacje o tym, co musi zaimplementować wywołanie zwrotne, znajdziesz w dokumentacji obiektu FetchExternalEventsFunct.

Szczegóły
Parametry
[in] inImportance
Poziom ważności
[in] inCallback
Wywołanie zwrotne rejestracji w celu pobrania zdarzeń zewnętrznych
[in] inNumEvents
Liczba zdarzeń w tym zestawie
[out] outLastEventID
Wskaźnik na potrzeby parametru event_id_t; Po udanej rejestracji zdarzeń zewnętrznych funkcja zapisze identyfikator zdarzenia odpowiadający ostatniemu identyfikatorowi zdarzenia zewnętrznego bloku zdarzeń. Parametr może mieć wartość NULL.
Zwracane wartości
WEAVE_ERROR_NO_MEMORY
Jeśli nie ma więcej dostępnych terminów wywołania zwrotnego.
WEAVE_ERROR_INVALID_ARGUMENT
Wywołanie zwrotne funkcji o wartości null lub brak zdarzeń do zarejestrowania.
WEAVE_NO_ERROR
Powodzenie.

ScheduleFlushIfNeeded

WEAVE_ERROR ScheduleFlushIfNeeded(
  bool inFlushRequested
)

Zaplanuj zadanie odciążania logów.

Ta funkcja decyduje, czy zaplanować proces odciążania zadania, a jeśli tak, planuje asynchroniczne uruchamianie zadania LoggingFlushHandler w wątku Weave.

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

wyraźne żądanie usunięcia bufora

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

sprawdzać, czy istnieje zdarzenie żądania usunięcia już oczekującego żądania usunięcia.

Bezpośrednie żądanie zaplanowania usunięcia jest przekazywane za pomocą parametru wejściowego.

Automatyczne usuwanie jest zwykle zaplanowane, gdy bufory zdarzeń zawierają wystarczającą ilość danych, by rozpocząć nowe odciążanie. W zależności od strategii odciążania mogą być też brane pod uwagę dodatkowe aktywatory, takie jak minimalny i maksymalny czas między odciążeniami.

Oczekujący stan dziennika zdarzeń jest wskazywany przez zmienną mUploadRequested. Ponieważ ta funkcja może być wywoływana przez wiele wątków, funkcja mUploadRequested musi być odczytywana i ustawiona w sposób atomowy, aby uniknąć planowania zbędnych LoggingFlushHandler przed wysłaniem powiadomienia.

Szczegóły
Parametry
inRequestFlush
Wartość logiczna wskazująca, czy opróżnienie powinno zostać zaplanowane, niezależnie od wewnętrznej zasady zarządzania buforem.
Zwracane wartości
WEAVE_ERROR_INCORRECT_STATE
Moduł LoggingManagement nie został w pełni zainicjowany.
WEAVE_NO_ERROR
Powodzenie.

SerializeEvents

WEAVE_ERROR SerializeEvents(
  TLVWriter & writer
)

Zserializuj zdarzenia Weave o wszystkich typach ważności.

Serializuje zdarzenia z WeaveCircularTLVBuffer i powiązane stany w podanym buforze.

Ta metoda jest przeznaczona dla urządzeń, które nie zachowują pamięci RAM podczas snu, ponieważ pozwalają na zapisywanie zdarzeń przed snem, a tym samym zapobieganie ich utracie.

SetBDXUploader

void SetBDXUploader(
  LogBDXUpload *inUploader
)

SetExchangeManager

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

Ustaw WeaveExchangeManager do użycia z tym podsystemem logowania.

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

Szczegóły
Parametry
[in] inMgr
WeaveExchangeManager do użycia 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 powiązanego z przydzielonym identyfikatorem zdarzenia.

Szczegóły
Parametry
[in,out] aContext
EventLoadOutContext, zainicjowany z użyciem informacji stanowych o buforze. Stan jest aktualizowany i utrzymywany przez BlitEvent na podstawie tego kontekstu.

ThrottleLogger

void ThrottleLogger(
  void
)

ThrottleLogger podnosi efektywny poziom rejestrowania do poziomu produkcyjnego.

UnregisterEventCallbackForImportance

void UnregisterEventCallbackForImportance(
  ImportanceType inImportance,
  event_id_t inEventID
)

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

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

Jedna funkcja ma za zadanie obsługiwać zbiór zdarzeń naraz. Jeśli za pomocą tej samej funkcji trzeba zarejestrować nowy zbiór zdarzeń, wywołanie zwrotne powinno zostać najpierw wyrejestrowane, a potem rejestrowane ponownie. Oznacza to, że nie można pobrać oryginalnego zestawu zdarzeń.

Funkcja działa bezwarunkowo. Jeśli wywołanie zwrotne nie zostało zarejestrowane lub zostało już wyrejestrowane, jest to stan no op.

Szczegóły
Parametry
[in] inImportance
Poziom ważności
[in] inEventID
Identyfikator zdarzenia odpowiadający dowolnemu zdarzeniu w zewnętrznym bloku zdarzeń do wyrejestrowania.

UnthrottleLogger

void UnthrottleLogger(
  void
)

UnthrottleLogger przywraca efektywny poziom rejestrowania do skonfigurowanego poziomu rejestrowania.

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 funkcję LoggingManagement za pomocą tablicy LogStorageResources. Tablica musi zapewniać zasób dla każdego prawidłowego poziomu ważności, jej elementy muszą mieć rosnącą wartość liczbową o znaczeniu (i malejąco). pierwszy element tablicy odpowiada zasobom przydzielonym na potrzeby najważniejszych zdarzeń, a ostatni – najmniej ważnym.

Szczegóły
Parametry
[in] inMgr
WeaveExchangeManager do użycia 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 wszystkie potrzebne do wyłączenia usługi.

Pobieranie instancji

LoggingManagement & GetInstance(
  void
)