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

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

Una classe per la gestione dei log eventi in memoria.

Riepilogo

Costruttori e distruttori

LoggingManagement(nl::Weave::WeaveExchangeManager *inMgr, size_t inNumBuffers, const LogStorageResources *const inLogStorageResources)
Costruttore LoggingManagement.
LoggingManagement(void)
Costruttore predefinito LoggingManagement.

Funzioni pubbliche

BlitEvent(EventLoadOutContext *aContext, const EventSchema & inSchema, EventWriterFunct inEventWriter, void *inAppData, const EventOptions *inOptions)
Funzione di supporto per la scrittura dell'intestazione e dei dati degli eventi in base al protocollo di logging degli eventi.
CancelShutdownInProgress(void)
void
Imposta il flag mShutdownInProgress su false.
CheckShouldRunWDM(void)
bool
Decidi se eseguire l'offload degli eventi in base al numero di byte nei buffer di eventi di cui il caricamento non è pianificato.
FetchEventsSince(nl::Weave::TLV::TLVWriter & ioWriter, ImportanceType inImportance, event_id_t & ioEventID)
Una funzione per recuperare eventi di importanza specificata a partire da un ID evento specificato.
GetBytesWritten(void) const
uint32_t
Ottieni il numero totale di byte scritti (per tutte le priorità degli eventi) in questo log dalla sua istanza.
GetEventReader(nl::Weave::TLV::TLVReader & ioReader, ImportanceType inImportance)
Metodo di supporto utile per esaminare i buffer dei log in memoria.
GetFirstEventID(ImportanceType inImportance)
Recupera il primo ID evento attualmente memorizzato per un determinato livello di importanza.
GetLastEventID(ImportanceType inImportance)
Recupera l'ID venditore più recente per un determinato livello di importanza.
IsShutdownInProgress(void)
bool
Seleziona il flag mShutdownInProgress.
IsValid(void)
bool
IsValid restituisce se l'istanza LoggingManagement è valida.
LoadEvents(TLVReader & reader)
Carica l'evento Weave persistente in precedenza.
LogEvent(const EventSchema & inSchema, EventWriterFunct inEventWriter, void *inAppData, const EventOptions *inOptions)
Registra un evento tramite callback, con le opzioni disponibili.
MarkShutdownInProgress(void)
void
Imposta il flag mShutdownInProgress su 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)
L'API pubblica per la registrazione di un insieme di eventi memorizzati esternamente.
RegisterEventCallbackForImportance(ImportanceType inImportance, FetchExternalEventsFunct inFetchCallback, NotifyExternalEventsDeliveredFunct inNotifyCallback, size_t inNumEvents, event_id_t *outLastEventID)
L'API pubblica per la registrazione di un insieme di eventi memorizzati esternamente.
RegisterEventCallbackForImportance(ImportanceType inImportance, FetchExternalEventsFunct inFetchCallback, size_t inNumEvents, event_id_t *outLastEventID)
L'API pubblica per la registrazione di un insieme di eventi memorizzati esternamente.
ScheduleFlushIfNeeded(bool inFlushRequested)
Pianifica un'attività di offload dei log.
SerializeEvents(TLVWriter & writer)
Serializza gli eventi Weave di tutti i tipi di importanza.
SetBDXUploader(LogBDXUpload *inUploader)
void
SetExchangeManager(nl::Weave::WeaveExchangeManager *inMgr)
Imposta WeaveExchangeManager da utilizzare con questo sottosistema di logging.
SetLoggingEndpoint(event_id_t *inEventEndpoints, size_t inNumImportanceLevels, size_t & outLoggingPosition)
SkipEvent(EventLoadOutContext *aContext)
void
Funzione di supporto per saltare la scrittura di un evento corrispondente a un ID evento allocato.
ThrottleLogger(void)
void
ThrottleLogger eleva il livello di logging effettivo al livello di produzione.
UnregisterEventCallbackForImportance(ImportanceType inImportance, event_id_t inEventID)
void
L'API pubblica per annullare la registrazione di un insieme di eventi archiviati esternamente.
UnthrottleLogger(void)
void
UnthrottleLogger ripristina il livello di logging effettivo al livello di logging configurato.

Funzioni statiche pubbliche

CreateLoggingManagement(nl::Weave::WeaveExchangeManager *inMgr, size_t inNumBuffers, const LogStorageResources *const inLogStorageResources)
void
Crea l'oggetto LoggingManagement e inizializza il sottosistema di gestione del logging con le risorse fornite.
DestroyLoggingManagement(void)
void
Esegui le azioni necessarie alla chiusura.
GetInstance(void)

Funzioni pubbliche

BlitEvent

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

Funzione di supporto per la scrittura dell'intestazione e dei dati degli eventi in base al protocollo di logging degli eventi.

Dettagli
Parametri
[in,out] aContext
EventLoadOutContext, inizializzato con informazioni stateful per il buffer. Lo stato viene aggiornato e conservato da BlitEvent utilizzando questo contesto.
[in] inSchema
Uno schema che definisce l'importanza, l'ID profilo e il tipo di struttura di questo evento.
[in] inEventWriter
Il callback da richiamare per serializzare i dati dell'evento.
[in] inAppData
Contesto dell'applicazione per il callback.
[in] inOptions
EventOptions, che descrivono il timestamp e altri tag relativi a questo evento.

CancelShutdownInProgress

void CancelShutdownInProgress(
  void
)

Imposta il flag mShutdownInProgress su false.

CheckShouldRunWDM

bool CheckShouldRunWDM(
  void
)

Decidi se eseguire l'offload degli eventi in base al numero di byte nei buffer di eventi di cui il caricamento non è pianificato.

Il comportamento della funzione viene controllato tramite la costante WEAVE_CONFIG_EVENT_LOGGING_BYTE_THRESHOLD. Se il sistema ha scritto un numero di byte superiore a quel numero dall'ultima volta in cui è stata inviata una notifica WDM, la funzione indicherà che è ora di attivare NotificationEngine.

Dettagli
Valori restituiti
true
L'offload degli eventi dovrebbe essere eseguito
false
In caso contrario

FetchEventsSince

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

Una funzione per recuperare eventi di importanza specificata a partire da un ID evento specificato.

Dati nl::Weave::TLV::TLVWriter, un tipo di importanza e un ID evento, la funzione recupererà gli eventi di importanza specificata a partire dall'evento specificato. La funzione continuerà a recuperare eventi finché non esaurisce lo spazio in nl::Weave::TLV::TLVWriter o nel log. La funzione termina la scrittura dell'evento al limite dell'evento.

Dettagli
Parametri
[in] ioWriter
L'autore da utilizzare per l'archiviazione degli eventi
[in] inImportance
L'importanza degli eventi da recuperare
[in,out] ioEventID
Al momento dell'input, l'ID dell'evento immediatamente precedente a quello che stiamo recuperando. Al completamento, l'ID dell'ultimo evento recuperato.
Valori restituiti
WEAVE_END_OF_TLV
La funzione ha raggiunto la fine delle voci di log disponibili al livello di importanza specificato
WEAVE_ERROR_NO_MEMORY
La funzione ha esaurito lo spazio in ioWriter. Sono disponibili altri eventi nel log.
WEAVE_ERROR_BUFFER_TOO_SMALL
La funzione ha esaurito lo spazio in ioWriter. Sono disponibili altri eventi nel log.

GetBytesWritten

uint32_t GetBytesWritten(
  void
) const 

Ottieni il numero totale di byte scritti (per tutte le priorità degli eventi) in questo log dalla sua istanza.

Dettagli
Restituisce
Il numero di byte scritti nel log.

GetEventReader

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

Metodo di supporto utile per esaminare i buffer dei log in memoria.

Dettagli
Parametri
[in,out] ioReader
Un riferimento al lettore che verrà inizializzato con lo spazio di archiviazione di supporto dal log eventi
[in] inImportance
L'importanza iniziale per il lettore. Tieni presente che in questo caso l'importanza iniziale è in qualche modo controintuitiva: gli eventi più importanti condividono i buffer con eventi meno importanti, oltre ai loro buffer dedicati. Di conseguenza, il lettore attraverserà la quantità minore di dati quando viene trasmessa l'importanza del debug.
Restituisce
WEAVE_NO_ERROR Incondizionatamente.

GetFirstEventID

event_id_t GetFirstEventID(
  ImportanceType inImportance
)

Recupera il primo ID evento attualmente memorizzato per un determinato livello di importanza.

Dettagli
Parametri
inImportance
Livello di importanza
Restituisce
event_id_t Primo ID evento attualmente memorizzato per quell'importanza dell'evento

GetLastEventID

event_id_t GetLastEventID(
  ImportanceType inImportance
)

Recupera l'ID venditore più recente per un determinato livello di importanza.

Dettagli
Parametri
inImportance
Livello di importanza
Restituisce
event_id_t ID evento fornito più di recente per quell'importanza dell'evento

IsShutdownInProgress

bool IsShutdownInProgress(
  void
)

Seleziona il flag mShutdownInProgress.

IsValid

bool IsValid(
  void
)

IsValid restituisce se l'istanza LoggingManagement è valida.

Dettagli
Valori restituiti
true
L'istanza è valida (inizializzata con l'archivio di backup appropriato)
false
In caso contrario

LoadEvents

WEAVE_ERROR LoadEvents(
  TLVReader & reader
)

Carica l'evento Weave persistente in precedenza.

LogEvent

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

Registra un evento tramite callback, con le opzioni disponibili.

La funzione registra un evento rappresentato come EventWriterFunct e un contesto appData specifico per l'app. La funzione scrive i metadati dell'evento e chiama inEventWriter con un riferimento nl::Weave::TLV::TLVWriter e un contesto inAppData, in modo che il codice utente possa emettere i dati dell'evento direttamente nel log eventi. Questa forma di logging degli eventi riduce al minimo il consumo di memoria, poiché i dati degli eventi vengono serializzati direttamente nel buffer di destinazione. I dati sugli eventi DEVONO contenere tag di contesto per essere interpretati all'interno dello schema identificato da inProfileID e inEventType. Il tag del primo elemento verrà ignorato; il sistema di logging degli eventi lo sostituirà con il tag eventData.

L'evento viene registrato se l'importanza dello schema supera la soglia di logging specificata in LoggingConfiguration. Se l'importanza dell'evento non soddisfa la soglia attuale, viene eliminato e la funzione restituisce 0 come ID evento risultante.

Questa variante della chiamata consente al chiamante di impostare qualsiasi combinazione di EventOptions:

  • timestamp, quando 0 viene impostato in modo predefinito sull'ora corrente al momento della chiamata,
  • sezione "root" dell'origine dell'evento (origine evento e ID trait); se NULL, per impostazione predefinita viene utilizzato il dispositivo corrente. L'evento è contrassegnato come relativo al dispositivo che effettua la chiamata.
  • un ID evento correlato per raggruppare gli ID evento; se l'ID evento correlato è 0, l'evento viene contrassegnato come non correlato ad altri eventi.
  • urgenza; non urgente per impostazione predefinita.

Dettagli
Parametri
[in] inSchema
Uno schema che definisce l'importanza, l'ID profilo e il tipo di struttura di questo evento.
[in] inEventWriter
Il callback da richiamare per serializzare effettivamente i dati dell'evento
[in] inAppData
Contesto dell'applicazione per il callback.
[in] inOptions
Le opzioni per i metadati dell'evento. Può essere NULL.
Restituisce
event_id_t L'ID evento se l'evento è stato scritto nel log, altrimenti 0.

LoggingManagement

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

Costruttore LoggingManagement.

Inizializza LoggingManagement con un array di LogStorageResources. L'array deve fornire una risorsa per ogni livello di importanza valido, il cui valore numerico deve essere crescente (e in ordine decrescente); il primo elemento dell'array corrisponde alle risorse allocate per gli eventi più critici e l'ultimo elemento corrisponde agli eventi meno importanti.

Dettagli
Parametri
[in] inMgr
WeaveExchangeManager da utilizzare con questo sottosistema di logging
[in] inNumBuffers
Numero di elementi nell'array inLogStorageResources
[in] inLogStorageResources
Un array di LogStorageResources per ogni livello di importanza.

LoggingManagement

 LoggingManagement(
  void
)

Costruttore predefinito LoggingManagement.

Fornito principalmente per soddisfare le esigenze del compilatore.

Dettagli
Restituisce

MarkShutdownInProgress

void MarkShutdownInProgress(
  void
)

Imposta il flag mShutdownInProgress su 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
)

L'API pubblica per la registrazione di un insieme di eventi memorizzati esternamente.

Registra un callback nel formato FetchExternalEventsFunct. Questa API richiede alla piattaforma di conoscere il numero di eventi al momento della registrazione. Anche il funzionamento interno richiede che questo numero sia costante. Poiché questa API non consente alla piattaforma di registrare ID evento specifici, ciò impedisce alla piattaforma di memorizzare in modo permanente gli eventi (almeno con ID evento univoci).

Il callback viene chiamato ogni volta che un iscritto tenta di recuperare gli ID evento nell'intervallo per un numero qualsiasi di volte fino all'annullamento della registrazione.

Questa variante della funzione deve essere utilizzata quando il provider esterno vuole ricevere una notifica sia quando gli eventi sono stati inviati a un sottoscrittore sia se l'oggetto eventi esterni è stato rimosso.

Quando gli eventi vengono recapitati, il provider esterno riceve una notifica al riguardo, insieme all'ID nodo del destinatario e all'ID dell'ultimo evento consegnato a quel destinatario. Tieni presente che il provider esterno potrebbe ricevere più volte una notifica per lo stesso ID evento. Non esistono limitazioni specifiche per il gestore, in particolare il gestore può annullare la registrazione degli ID evento esterni.

Se l'oggetto eventi esterni viene rimosso dai buffer log, il provider esterno riceve una notifica insieme a una copia dell'oggetto eventi esterni.

In caso di errore, il puntatore allo struct ExternalEvents sarà NULL, altrimenti verrà completato con gli ID evento di inizio e fine assegnati al callback. Questo puntatore deve essere utilizzato per annullare la registrazione dell'insieme di eventi.

Consulta la documentazione per FetchExternalEventsFunct per i dettagli sull'implementazione del callback.

Dettagli
Parametri
[in] inImportance
Livello di importanza
[in] inFetchCallback
Callback per la registrazione per recuperare gli eventi esterni
[in] inNotifyCallback
Richiama per registrarsi per la notifica di consegna
[in] inEvictedCallback
Richiama per registrarsi per la notifica di rimozione
[in] inNumEvents
Numero di eventi in questo insieme
[out] outLastEventID
Puntatore a un event_id_t; in caso di registrazione di eventi esterni, la funzione memorizzerà l'ID evento corrispondente all'ultimo ID evento del blocco eventi esterno. Il parametro potrebbe essere NULL.
Valori restituiti
WEAVE_ERROR_NO_MEMORY
Se non sono disponibili altri intervalli di callback.
WEAVE_ERROR_INVALID_ARGUMENT
Callback di funzione null o nessun evento da registrare.
WEAVE_NO_ERROR
In caso di successo.

RegisterEventCallbackForImportance

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

L'API pubblica per la registrazione di un insieme di eventi memorizzati esternamente.

Registra un callback nel formato FetchExternalEventsFunct. Questa API richiede alla piattaforma di conoscere il numero di eventi al momento della registrazione. Anche il funzionamento interno richiede che questo numero sia costante. Poiché questa API non consente alla piattaforma di registrare ID evento specifici, ciò impedisce alla piattaforma di memorizzare in modo permanente gli eventi (almeno con ID evento univoci).

Il callback viene chiamato ogni volta che un iscritto tenta di recuperare gli ID evento nell'intervallo per un numero qualsiasi di volte fino all'annullamento della registrazione.

Questa variante della funzione deve essere utilizzata quando il provider esterno vuole ricevere una notifica quando gli eventi sono stati inviati a un sottoscrittore, ma non quando l'oggetto eventi esterni viene rimosso. Quando gli eventi vengono recapitati, il provider esterno riceve una notifica al riguardo, insieme all'ID nodo del destinatario e all'ID dell'ultimo evento consegnato a quel destinatario. Tieni presente che il provider esterno potrebbe ricevere più volte una notifica per lo stesso ID evento. Non esistono limitazioni specifiche per il gestore, in particolare il gestore può annullare la registrazione degli ID evento esterni.

In caso di errore, il puntatore allo struct ExternalEvents sarà NULL, altrimenti verrà completato con gli ID evento di inizio e fine assegnati al callback. Questo puntatore deve essere utilizzato per annullare la registrazione dell'insieme di eventi.

Consulta la documentazione per FetchExternalEventsFunct per i dettagli sull'implementazione del callback.

Dettagli
Parametri
[in] inImportance
Livello di importanza
[in] inCallback
Callback per la registrazione per recuperare gli eventi esterni
[in] inNotifyCallback
Richiama per registrarsi per la notifica di consegna
[in] inNumEvents
Numero di eventi in questo insieme
[out] outLastEventID
Puntatore a un event_id_t; in caso di registrazione di eventi esterni, la funzione memorizzerà l'ID evento corrispondente all'ultimo ID evento del blocco eventi esterno. Il parametro potrebbe essere NULL.
Valori restituiti
WEAVE_ERROR_NO_MEMORY
Se non sono disponibili altri intervalli di callback.
WEAVE_ERROR_INVALID_ARGUMENT
Callback di funzione null o nessun evento da registrare.
WEAVE_NO_ERROR
In caso di successo.

RegisterEventCallbackForImportance

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

L'API pubblica per la registrazione di un insieme di eventi memorizzati esternamente.

Registra un callback nel formato FetchExternalEventsFunct. Questa API richiede alla piattaforma di conoscere il numero di eventi al momento della registrazione. Anche il funzionamento interno richiede che questo numero sia costante. Poiché questa API non consente alla piattaforma di registrare ID evento specifici, ciò impedisce alla piattaforma di memorizzare in modo permanente gli eventi (almeno con ID evento univoci).

Il callback viene chiamato ogni volta che un iscritto tenta di recuperare gli ID evento nell'intervallo per un numero qualsiasi di volte fino all'annullamento della registrazione.

Questa variante della funzione deve essere utilizzata quando il provider esterno vuole una notifica né quando sono stati consegnati gli eventi esterni, né quando l'oggetto eventi esterni viene rimosso.

In caso di errore, il puntatore allo struct ExternalEvents sarà NULL, altrimenti verrà completato con gli ID evento di inizio e fine assegnati al callback. Questo puntatore deve essere utilizzato per annullare la registrazione dell'insieme di eventi.

Consulta la documentazione per FetchExternalEventsFunct per i dettagli sull'implementazione del callback.

Dettagli
Parametri
[in] inImportance
Livello di importanza
[in] inCallback
Callback per la registrazione per recuperare gli eventi esterni
[in] inNumEvents
Numero di eventi in questo insieme
[out] outLastEventID
Puntatore a un event_id_t; in caso di registrazione di eventi esterni, la funzione memorizzerà l'ID evento corrispondente all'ultimo ID evento del blocco eventi esterno. Il parametro potrebbe essere NULL.
Valori restituiti
WEAVE_ERROR_NO_MEMORY
Se non sono disponibili altri intervalli di callback.
WEAVE_ERROR_INVALID_ARGUMENT
Callback di funzione null o nessun evento da registrare.
WEAVE_NO_ERROR
In caso di successo.

ScheduleFlushIfNeeded

WEAVE_ERROR ScheduleFlushIfNeeded(
  bool inFlushRequested
)

Pianifica un'attività di offload dei log.

La funzione stabilisce se pianificare un processo di trasferimento dell'attività e, in questo caso, pianifica l'esecuzione asincrona di LoggingFlushHandler sul thread Weave.

La decisione di pianificare un lavaggio dipende da tre fattori:

una richiesta esplicita di svuotare il buffer

lo stato del buffer dell'evento e la quantità di dati non ancora sincronizzati con i consumer dell'evento

se è presente un evento di richiesta di svuotamento già in attesa.

La richiesta esplicita di pianificare uno svuotamento viene trasmessa tramite un parametro di input.

Lo svuotamento automatico viene in genere pianificato quando i buffer degli eventi contengono dati sufficienti a meritare l'avvio di un nuovo trasferimento. A seconda della strategia di trasferimento, possono essere presi in considerazione anche altri fattori, come il tempo minimo e massimo tra un trasferimento e l'altro.

Lo stato In attesa del log eventi è indicato dalla variabile mUploadRequested. Poiché questa funzione può essere chiamata da più thread, mUploadRequested deve essere letto e impostato a livello atomico, per evitare la pianificazione di una LoggingFlushHandler ridondante prima che la notifica venga inviata.

Dettagli
Parametri
inRequestFlush
Un valore booleano che indica se lo svuotamento deve essere pianificato a prescindere dal criterio di gestione del buffer interno.
Valori restituiti
WEAVE_ERROR_INCORRECT_STATE
Il modulo LoggingManagement non è stato inizializzato completamente.
WEAVE_NO_ERROR
In caso di successo.

SerializeEvents

WEAVE_ERROR SerializeEvents(
  TLVWriter & writer
)

Serializza gli eventi Weave di tutti i tipi di importanza.

Serializza gli eventi in WeaveCircularTLVBuffer e gli stati associati nel buffer fornito.

Questo metodo è stato pensato per essere utilizzato da dispositivi che non conservano la RAM durante la fase di sonno, consentendo loro di persistere gli eventi prima di andare a dormire e quindi di prevenire la perdita di eventi

SetBDXUploader

void SetBDXUploader(
  LogBDXUpload *inUploader
)

SetExchangeManager

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

Imposta WeaveExchangeManager da utilizzare con questo sottosistema di logging.

Su alcune piattaforme, questa operazione potrebbe dover essere eseguita separatamente rispetto a CreateLoggingManagement() sopra.

Dettagli
Parametri
[in] inMgr
WeaveExchangeManager da utilizzare con questo sottosistema di logging

SetLoggingEndpoint

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

SkipEvent

void SkipEvent(
  EventLoadOutContext *aContext
)

Funzione di supporto per saltare la scrittura di un evento corrispondente a un ID evento allocato.

Dettagli
Parametri
[in,out] aContext
EventLoadOutContext, inizializzato con informazioni stateful per il buffer. Lo stato viene aggiornato e conservato da BlitEvent utilizzando questo contesto.

ThrottleLogger

void ThrottleLogger(
  void
)

ThrottleLogger eleva il livello di logging effettivo al livello di produzione.

UnregisterEventCallbackForImportance

void UnregisterEventCallbackForImportance(
  ImportanceType inImportance,
  event_id_t inEventID
)

L'API pubblica per annullare la registrazione di un insieme di eventi archiviati esternamente.

Se annulli la registrazione del callback, LoggingManagement non potrà chiamare il callback per un insieme di eventi. LoggingManagement non invierà più questi ID evento agli abbonati.

Lo scopo è fare in modo che una funzione offra un insieme di eventi alla volta. Se è necessario registrare un nuovo insieme di eventi utilizzando la stessa funzione, devi prima annullare la registrazione del callback e poi registrarlo di nuovo. Ciò significa che non è più possibile recuperare l'insieme originale di eventi.

Questa funzione ha esito positivo senza condizioni. Se il callback non è mai stato registrato o è già stato annullato, non è possibile eseguire alcuna operazione.

Dettagli
Parametri
[in] inImportance
Livello di importanza
[in] inEventID
Un ID evento corrispondente a uno qualsiasi degli eventi nel blocco di eventi esterno di cui vuoi annullare la registrazione.

UnthrottleLogger

void UnthrottleLogger(
  void
)

UnthrottleLogger ripristina il livello di logging effettivo al livello di logging configurato.

Funzioni statiche pubbliche

CreateLoggingManagement

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

Crea l'oggetto LoggingManagement e inizializza il sottosistema di gestione del logging con le risorse fornite.

Inizializza LoggingManagement con un array di LogStorageResources. L'array deve fornire una risorsa per ogni livello di importanza valido, il cui valore numerico deve essere crescente (e in ordine decrescente); il primo elemento dell'array corrisponde alle risorse allocate per gli eventi più critici e l'ultimo elemento corrisponde agli eventi meno importanti.

Dettagli
Parametri
[in] inMgr
WeaveExchangeManager da utilizzare con questo sottosistema di logging
[in] inNumBuffers
Numero di elementi nell'array inLogStorageResources
[in] inLogStorageResources
Un array di LogStorageResources per ogni livello di importanza.

DestroyLoggingManagement

void DestroyLoggingManagement(
  void
)

Esegui le azioni necessarie alla chiusura.

GetInstance

LoggingManagement & GetInstance(
  void
)