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

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

Une classe permettant de gérer les journaux des événements en mémoire.

Résumé

Constructeurs et destructeurs

LoggingManagement(nl::Weave::WeaveExchangeManager *inMgr, size_t inNumBuffers, const LogStorageResources *const inLogStorageResources)
LoggingManagement(void)
Constructeur par défaut de LoggingManagement.

Fonctions publiques

BlitEvent(EventLoadOutContext *aContext, const EventSchema & inSchema, EventWriterFunct inEventWriter, void *inAppData, const EventOptions *inOptions)
Fonction d'assistance permettant d'écrire des données et des en-têtes d'événements conformément au protocole de journalisation des événements.
CancelShutdownInProgress(void)
void
Définissez l'indicateur mShutdownInProgress sur "false".
CheckShouldRunWDM(void)
bool
Décidez si vous souhaitez décharger les événements en fonction du nombre d'octets contenus dans les tampons d'événements dont l'importation n'est pas planifiée.
FetchEventsSince(nl::Weave::TLV::TLVWriter & ioWriter, ImportanceType inImportance, event_id_t & ioEventID)
Fonction permettant de récupérer les événements d'importance spécifiée depuis un ID d'événement spécifié.
GetBytesWritten(void) const
uint32_t
Obtenez le nombre total d'octets écrits (pour toutes les importances d'événements) dans ce journal depuis son instanciation.
GetEventReader(nl::Weave::TLV::TLVReader & ioReader, ImportanceType inImportance)
Méthode d'assistance utile pour examiner les tampons de journaux en mémoire.
GetFirstEventID(ImportanceType inImportance)
Extrayez le premier ID d'événement actuellement stocké pour un niveau d'importance particulier.
GetLastEventID(ImportanceType inImportance)
Récupérez le dernier identifiant vendu pour un niveau d'importance particulier.
IsShutdownInProgress(void)
bool
Cochez l'indicateur mShutdownInProgress.
IsValid(void)
bool
IsValid indique si l'instance LoggingManagement est valide.
LoadEvents(TLVReader & reader)
Chargement de l'événement Weave précédemment conservé.
LogEvent(const EventSchema & inSchema, EventWriterFunct inEventWriter, void *inAppData, const EventOptions *inOptions)
Consigner un événement via un rappel, avec des options
MarkShutdownInProgress(void)
void
Définissez l'indicateur mShutdownInProgress sur "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 publique permettant d'enregistrer un ensemble d'événements stockés en externe.
RegisterEventCallbackForImportance(ImportanceType inImportance, FetchExternalEventsFunct inFetchCallback, NotifyExternalEventsDeliveredFunct inNotifyCallback, size_t inNumEvents, event_id_t *outLastEventID)
API publique permettant d'enregistrer un ensemble d'événements stockés en externe.
RegisterEventCallbackForImportance(ImportanceType inImportance, FetchExternalEventsFunct inFetchCallback, size_t inNumEvents, event_id_t *outLastEventID)
API publique permettant d'enregistrer un ensemble d'événements stockés en externe.
ScheduleFlushIfNeeded(bool inFlushRequested)
Planifier une tâche de déchargement de journal.
SerializeEvents(TLVWriter & writer)
Sérialiser les événements Weave de tous les types d'importance
SetBDXUploader(LogBDXUpload *inUploader)
void
SetExchangeManager(nl::Weave::WeaveExchangeManager *inMgr)
Définissez le WeaveExchangeManager à utiliser avec ce sous-système de journalisation.
SetLoggingEndpoint(event_id_t *inEventEndpoints, size_t inNumImportanceLevels, size_t & outLoggingPosition)
SkipEvent(EventLoadOutContext *aContext)
void
Fonction d'assistance permettant d'ignorer l'écriture d'un événement correspondant à un ID d'événement alloué.
ThrottleLogger(void)
void
ThrottleLogger élève le niveau de journalisation effectif au niveau Production.
UnregisterEventCallbackForImportance(ImportanceType inImportance, event_id_t inEventID)
void
API publique permettant d'annuler l'enregistrement d'un ensemble d'événements stockés en externe.
UnthrottleLogger(void)
void
UnthrottleLogger restaure le niveau de journalisation effectif au niveau de journalisation configuré.

Fonctions statiques publiques

CreateLoggingManagement(nl::Weave::WeaveExchangeManager *inMgr, size_t inNumBuffers, const LogStorageResources *const inLogStorageResources)
void
Créez l'objet LoggingManagement et initialisez le sous-système de gestion de la journalisation avec les ressources fournies.
DestroyLoggingManagement(void)
void
Effectuez toutes les actions nécessaires à l'arrêt.
GetInstance(void)

Fonctions publiques

BlitEvent

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

Fonction d'assistance permettant d'écrire des données et des en-têtes d'événements conformément au protocole de journalisation des événements.

Détails
Paramètres
[in,out] aContext
EventLoadOutContext, initialisé avec des informations avec état pour le tampon. L'état est mis à jour et préservé par BlitEvent à l'aide de ce contexte.
[in] inSchema
Schéma définissant l'importance, l'ID de profil et le type de structure de cet événement.
[in] inEventWriter
Rappel à invoquer pour sérialiser les données d'événement.
[in] inAppData
Contexte d'application pour le rappel.
[in] inOptions
EventOptions décrivant l'horodatage et les autres balises pertinentes pour cet événement.

CancelShutdownInProgress

void CancelShutdownInProgress(
  void
)

Définissez l'indicateur mShutdownInProgress sur "false".

CheckShouldRunWDM

bool CheckShouldRunWDM(
  void
)

Décidez si vous souhaitez décharger les événements en fonction du nombre d'octets contenus dans les tampons d'événements dont l'importation n'est pas planifiée.

Le comportement de la fonction est contrôlé par la constante WEAVE_CONFIG_EVENT_LOGGING_BYTE_THRESHOLD. Si le système a écrit un nombre d'octets supérieur à ce nombre depuis la dernière fois qu'une notification WDM a été envoyée, la fonction indique qu'il est temps de déclencher NotificationEngine.

Détails
Valeurs de retour
true
Les événements devraient être déchargés
false
Sinon, procédez comme suit :

FetchEventsSince

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

Fonction permettant de récupérer les événements d'importance spécifiée depuis un ID d'événement spécifié.

Avec un paramètre nl::Weave::TLV::TLVWriter, un type d'importance et un ID d'événement, la fonction récupère les événements d'importance spécifiée depuis l'événement spécifié. La fonction continue à récupérer les événements jusqu'à ce qu'elle manque d'espace dans nl::Weave::TLV::TLVWriter ou le journal. La fonction mettra fin à l'écriture de l'événement sur la limite de l'événement.

Détails
Paramètres
[in] ioWriter
Rédacteur à utiliser pour le stockage des événements
[in] inImportance
Importance des événements à récupérer
[in,out] ioEventID
À l'entrée, l'ID de l'événement situé juste avant celui que nous récupérons. Une fois l'opération terminée, l'ID du dernier événement récupéré.
Valeurs de retour
WEAVE_END_OF_TLV
La fonction a atteint la fin des entrées de journal disponibles au niveau d'importance spécifié
WEAVE_ERROR_NO_MEMORY
L'espace de stockage de la fonction est insuffisant dans ioWriter. D'autres événements sont disponibles dans le journal.
WEAVE_ERROR_BUFFER_TOO_SMALL
L'espace de stockage de la fonction est insuffisant dans ioWriter. D'autres événements sont disponibles dans le journal.

GetBytesWritten

uint32_t GetBytesWritten(
  void
) const 

Obtenez le nombre total d'octets écrits (pour toutes les importances d'événements) dans ce journal depuis son instanciation.

Détails
Renvoie
Nombre d'octets écrits dans le journal.

GetEventReader

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

Méthode d'assistance utile pour examiner les tampons de journaux en mémoire.

Détails
Paramètres
[in,out] ioReader
Référence au lecteur qui sera initialisé avec le stockage de sauvegarde du journal des événements
[in] inImportance
L'importance de départ pour le lecteur. Notez que dans ce cas, l'importance de départ est quelque peu paradoxale: les événements les plus importants partagent les tampons avec les événements moins importants, en plus de leurs tampons dédiés. Par conséquent, le lecteur doit parcourir le moins de données possible lorsque l'importance de débogage est transmise.
Renvoie
WEAVE_NO_ERROR sans condition.

GetFirstEventID

event_id_t GetFirstEventID(
  ImportanceType inImportance
)

Extrayez le premier ID d'événement actuellement stocké pour un niveau d'importance particulier.

Détails
Paramètres
inImportance
Niveau d'importance
Renvoie
event_id_t Premier ID d'événement actuellement stocké pour cet événement d'importance

GetLastEventID

event_id_t GetLastEventID(
  ImportanceType inImportance
)

Récupérez le dernier identifiant vendu pour un niveau d'importance particulier.

Détails
Paramètres
inImportance
Niveau d'importance
Renvoie
event_id_t le dernier ID de l'événement vendu pour cet importance de l'événement

IsShutdownInProgress

bool IsShutdownInProgress(
  void
)

Cochez l'indicateur mShutdownInProgress.

IsValid

bool IsValid(
  void
)

IsValid indique si l'instance LoggingManagement est valide.

Détails
Valeurs de retour
true
L'instance est valide (initialisée avec le magasin de sauvegarde approprié).
false
Sinon, procédez comme suit :

LoadEvents

WEAVE_ERROR LoadEvents(
  TLVReader & reader
)

Chargement de l'événement Weave précédemment conservé.

LogEvent

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

Consigner un événement via un rappel, avec des options

La fonction consigne un événement représenté par EventWriterFunct et un contexte appData spécifique à l'application. La fonction écrit les métadonnées de l'événement et appelle la fonction inEventWriter avec une référence nl::Weave::TLV::TLVWriter et le contexte inAppData, afin que le code utilisateur puisse émettre les données d'événement directement dans le journal des événements. Cette forme de journalisation des événements minimise la consommation de mémoire, car les données d'événement sont sérialisées directement dans le tampon cible. Les données d'événement DOIVENT contenir des balises de contexte à interpréter dans le schéma identifié par inProfileID et inEventType. La balise du premier élément sera ignorée, et le système de journalisation des événements la remplacera par la balise eventData.

L'événement est consigné si l'importance du schéma dépasse le seuil de journalisation spécifié dans LoggingConfiguration. Si l'importance de l'événement n'atteint pas le seuil actuel, il est supprimé et la fonction renvoie 0 comme ID d'événement.

Cette variante de l'appel permet à l'appelant de définir n'importe quelle combinaison de EventOptions:

  • l'horodatage où 0 est défini par défaut sur l'heure actuelle au moment de l'appel,
  • Section "root" de la source de l'événement (source de l'événement et ID de trait) ; si la valeur est NULL, elle est définie par défaut sur l'appareil actuel. L'événement est marqué comme lié à l'appareil qui effectue l'appel.
  • Un ID d'événement associé permettant de regrouper les ID d'événement. Lorsque l'ID d'événement associé est 0, l'événement est marqué comme n'étant lié à aucun autre événement.
  • urgence ; par défaut, non urgent.

Détails
Paramètres
[in] inSchema
Schéma définissant l'importance, l'ID de profil et le type de structure de cet événement.
[in] inEventWriter
Rappel à invoquer pour sérialiser réellement les données d'événement
[in] inAppData
Contexte d'application pour le rappel.
[in] inOptions
Options pour les métadonnées de l'événement. Peut être NULL.
Renvoie
event_id_t L'ID de l'événement si l'événement a été écrit dans le journal (0 dans le cas contraire).

LoggingManagement

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

LoggingManagement.

Initialisez LoggingManagement avec un tableau de ressources LogStorageResources. Le tableau doit fournir une ressource pour chaque niveau d'importance valide. Les éléments du tableau doivent présenter une valeur numérique croissante d'importance (et une importance décroissante). Le premier élément du tableau correspond aux ressources allouées aux événements les plus critiques et le dernier élément aux événements les moins importants.

Détails
Paramètres
[in] inMgr
WeaveExchangeManager à utiliser avec ce sous-système de journalisation
[in] inNumBuffers
Nombre d'éléments dans le tableau inLogStorageResources
[in] inLogStorageResources
Tableau de ressources LogStorageResources pour chaque niveau d'importance.

LoggingManagement

 LoggingManagement(
  void
)

Constructeur par défaut de LoggingManagement.

Fourni principalement pour satisfaire le compilateur.

Détails
Renvoie

MarkShutdownInProgress

void MarkShutdownInProgress(
  void
)

Définissez l'indicateur mShutdownInProgress sur "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 publique permettant d'enregistrer un ensemble d'événements stockés en externe.

Enregistrez un rappel du formulaire FetchExternalEventsFunct. Cette API nécessite que la plate-forme connaisse le nombre d'événements lors de l'enregistrement. Le fonctionnement interne exige également que ce nombre soit constant. Étant donné que cette API ne permet pas à la plate-forme d'enregistrer des ID d'événement spécifiques, cela l'empêche de stocker les événements de manière persistante (au moins avec des ID d'événement uniques).

Le rappel est appelé chaque fois qu'un abonné tente de récupérer les ID d'événements compris dans la plage autant de fois que nécessaire, jusqu'à ce que l'enregistrement soit annulé.

Cette variante de la fonction doit être utilisée lorsque le fournisseur externe souhaite être averti à la fois lorsque les événements ont été distribués à un abonné et si l'objet d'événements externe est évincé.

Lorsque les événements sont diffusés, le fournisseur externe en est informé, accompagné de l'ID de nœud du destinataire et de l'ID du dernier événement envoyé à ce destinataire. Notez que le fournisseur externe peut recevoir plusieurs notifications pour le même ID d'événement. Il n'existe aucune restriction spécifique concernant le gestionnaire. Il peut par exemple annuler l'enregistrement des ID d'événements externes.

Si l'objet d'événements externes est évincé des tampons de journal, le fournisseur externe en est informé et reçoit une copie de cet objet.

Le pointeur vers la struct ExternalEvents sera NULL en cas d'échec. Sinon, il sera renseigné avec les ID d'événement de début et de fin attribués au rappel. Utilisez ce pointeur pour annuler l'enregistrement de l'ensemble d'événements.

Consultez la documentation sur FetchExternalEventsFunct pour en savoir plus sur la mise en œuvre du rappel.

Détails
Paramètres
[in] inImportance
Niveau d'importance
[in] inFetchCallback
Rappel d'enregistrement pour récupérer les événements externes
[in] inNotifyCallback
Rappel d'inscription aux notifications de livraison
[in] inEvictedCallback
Rappel d'inscription à la notification d'éviction
[in] inNumEvents
Nombre d'événements dans cet ensemble
[out] outLastEventID
Pointeur vers un event_id_t ; lors de l'enregistrement réussi d'événements externes, la fonction stocke l'ID d'événement correspondant au dernier ID d'événement du bloc d'événements externe. Le paramètre peut être NULL.
Valeurs de retour
WEAVE_ERROR_NO_MEMORY
Si aucun autre emplacement de rappel n'est disponible.
WEAVE_ERROR_INVALID_ARGUMENT
Rappel de fonction nul ou aucun événement à enregistrer.
WEAVE_NO_ERROR
Pour la réussite.

RegisterEventCallbackForImportance

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

API publique permettant d'enregistrer un ensemble d'événements stockés en externe.

Enregistrez un rappel du formulaire FetchExternalEventsFunct. Cette API nécessite que la plate-forme connaisse le nombre d'événements lors de l'enregistrement. Le fonctionnement interne exige également que ce nombre soit constant. Étant donné que cette API ne permet pas à la plate-forme d'enregistrer des ID d'événement spécifiques, cela l'empêche de stocker les événements de manière persistante (au moins avec des ID d'événement uniques).

Le rappel est appelé chaque fois qu'un abonné tente de récupérer les ID d'événements compris dans la plage autant de fois que nécessaire, jusqu'à ce que l'enregistrement soit annulé.

Cette variante de la fonction doit être utilisée lorsque le fournisseur externe souhaite être averti lorsque les événements ont été distribués à un abonné, mais pas lorsque l'objet d'événements externe est évincé. Lorsque les événements sont diffusés, le fournisseur externe en est informé, accompagné de l'ID de nœud du destinataire et de l'ID du dernier événement envoyé à ce destinataire. Notez que le fournisseur externe peut recevoir plusieurs notifications pour le même ID d'événement. Il n'existe aucune restriction spécifique concernant le gestionnaire. Il peut par exemple annuler l'enregistrement des ID d'événements externes.

Le pointeur vers la struct ExternalEvents sera NULL en cas d'échec. Sinon, il sera renseigné avec les ID d'événement de début et de fin attribués au rappel. Utilisez ce pointeur pour annuler l'enregistrement de l'ensemble d'événements.

Consultez la documentation sur FetchExternalEventsFunct pour en savoir plus sur la mise en œuvre du rappel.

Détails
Paramètres
[in] inImportance
Niveau d'importance
[in] inCallback
Rappel d'enregistrement pour récupérer les événements externes
[in] inNotifyCallback
Rappel d'inscription aux notifications de livraison
[in] inNumEvents
Nombre d'événements dans cet ensemble
[out] outLastEventID
Pointeur vers un event_id_t ; lors de l'enregistrement réussi d'événements externes, la fonction stocke l'ID d'événement correspondant au dernier ID d'événement du bloc d'événements externe. Le paramètre peut être NULL.
Valeurs de retour
WEAVE_ERROR_NO_MEMORY
Si aucun autre emplacement de rappel n'est disponible.
WEAVE_ERROR_INVALID_ARGUMENT
Rappel de fonction nul ou aucun événement à enregistrer.
WEAVE_NO_ERROR
Pour la réussite.

RegisterEventCallbackForImportance

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

API publique permettant d'enregistrer un ensemble d'événements stockés en externe.

Enregistrez un rappel du formulaire FetchExternalEventsFunct. Cette API nécessite que la plate-forme connaisse le nombre d'événements lors de l'enregistrement. Le fonctionnement interne exige également que ce nombre soit constant. Étant donné que cette API ne permet pas à la plate-forme d'enregistrer des ID d'événement spécifiques, cela l'empêche de stocker les événements de manière persistante (au moins avec des ID d'événement uniques).

Le rappel est appelé chaque fois qu'un abonné tente de récupérer les ID d'événements compris dans la plage autant de fois que nécessaire, jusqu'à ce que l'enregistrement soit annulé.

Cette variante de la fonction doit être utilisée lorsque le fournisseur externe souhaite envoyer une notification lorsque les événements externes ont été diffusés ni lorsque l'objet d'événements externes est évincé.

Le pointeur vers la struct ExternalEvents sera NULL en cas d'échec. Sinon, il sera renseigné avec les ID d'événement de début et de fin attribués au rappel. Utilisez ce pointeur pour annuler l'enregistrement de l'ensemble d'événements.

Consultez la documentation sur FetchExternalEventsFunct pour en savoir plus sur la mise en œuvre du rappel.

Détails
Paramètres
[in] inImportance
Niveau d'importance
[in] inCallback
Rappel d'enregistrement pour récupérer les événements externes
[in] inNumEvents
Nombre d'événements dans cet ensemble
[out] outLastEventID
Pointeur vers un event_id_t ; lors de l'enregistrement réussi d'événements externes, la fonction stocke l'ID d'événement correspondant au dernier ID d'événement du bloc d'événements externe. Le paramètre peut être NULL.
Valeurs de retour
WEAVE_ERROR_NO_MEMORY
Si aucun autre emplacement de rappel n'est disponible.
WEAVE_ERROR_INVALID_ARGUMENT
Rappel de fonction nul ou aucun événement à enregistrer.
WEAVE_NO_ERROR
Pour la réussite.

ScheduleFlushIfNeeded

WEAVE_ERROR ScheduleFlushIfNeeded(
  bool inFlushRequested
)

Planifier une tâche de déchargement de journal.

La fonction décide si un processus de déchargement des tâches doit être programmé et, le cas échéant, elle planifie l'exécution asynchrone de LoggingFlushHandler sur le thread Weave.

La décision de planifier un vidage dépend de trois facteurs:

une demande explicite de vidage du tampon.

L'état du tampon d'événements et la quantité de données non encore synchronisées avec les consommateurs de l'événement

s'il existe déjà un événement de demande de suppression en attente.

La demande explicite de planification d'un vidage est transmise via un paramètre d'entrée.

Le vidage automatique est généralement planifié lorsque les tampons d'événements contiennent suffisamment de données pour mériter le démarrage d'un nouveau déchargement. D'autres déclencheurs, tels que le temps minimal et maximal entre les déchargements, peuvent également être pris en compte en fonction de la stratégie de déchargement.

L'état "en attente" du journal des événements est indiqué par la variable mUploadRequested. Étant donné que cette fonction peut être appelée par plusieurs threads, mUploadRequested doit être lu et défini de manière atomique, pour éviter de programmer une LoggingFlushHandler redondante avant l'envoi de la notification.

Détails
Paramètres
inRequestFlush
Valeur booléenne indiquant si le vidage doit être planifié quelle que soit la règle de gestion de la mémoire tampon interne.
Valeurs de retour
WEAVE_ERROR_INCORRECT_STATE
Le module LoggingManagement n'a pas été entièrement initialisé.
WEAVE_NO_ERROR
Pour la réussite.

SerializeEvents

WEAVE_ERROR SerializeEvents(
  TLVWriter & writer
)

Sérialiser les événements Weave de tous les types d'importance

Sérialise les événements dans WeaveCircularTLVBuffer et les états associés dans le tampon fourni.

Cette méthode est destinée aux appareils qui ne conservent pas de RAM pendant la mise en veille, ce qui leur permet de conserver les événements avant de passer en mode veille et ainsi d'éviter toute perte d'événements

SetBDXUploader

void SetBDXUploader(
  LogBDXUpload *inUploader
)

SetExchangeManager

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

Définissez le WeaveExchangeManager à utiliser avec ce sous-système de journalisation.

Sur certaines plates-formes, cette opération peut être effectuée séparément de CreateLoggingManagement() ci-dessus.

Détails
Paramètres
[in] inMgr
WeaveExchangeManager à utiliser avec ce sous-système de journalisation

SetLoggingEndpoint

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

SkipEvent

void SkipEvent(
  EventLoadOutContext *aContext
)

Fonction d'assistance permettant d'ignorer l'écriture d'un événement correspondant à un ID d'événement alloué.

Détails
Paramètres
[in,out] aContext
EventLoadOutContext, initialisé avec des informations avec état pour le tampon. L'état est mis à jour et préservé par BlitEvent à l'aide de ce contexte.

ThrottleLogger

void ThrottleLogger(
  void
)

ThrottleLogger élève le niveau de journalisation effectif au niveau Production.

UnregisterEventCallbackForImportance

void UnregisterEventCallbackForImportance(
  ImportanceType inImportance,
  event_id_t inEventID
)

API publique permettant d'annuler l'enregistrement d'un ensemble d'événements stockés en externe.

L'annulation de l'enregistrement du rappel empêche LoggingManagement de l'appeler pour un ensemble d'événements. LoggingManagement n'enverra plus ces ID d'événement aux abonnés.

L'intent est de faire en sorte qu'une fonction diffuse un ensemble d'événements à la fois. Si vous devez enregistrer un nouvel ensemble d'événements à l'aide de la même fonction, vous devez d'abord annuler l'enregistrement du rappel, puis le réenregistrer. Cela signifie que l'ensemble d'événements d'origine ne peut plus être récupéré.

Cette fonction réussit sans condition. Si le rappel n'a jamais été enregistré ou s'il a déjà été annulé, il s'agit d'une opération no-op.

Détails
Paramètres
[in] inImportance
Niveau d'importance
[in] inEventID
ID d'événement correspondant à l'un des événements du bloc d'événements externe à annuler l'enregistrement.

UnthrottleLogger

void UnthrottleLogger(
  void
)

UnthrottleLogger restaure le niveau de journalisation effectif au niveau de journalisation configuré.

Fonctions statiques publiques

CreateLoggingManagement

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

Créez l'objet LoggingManagement et initialisez le sous-système de gestion de la journalisation avec les ressources fournies.

Initialisez LoggingManagement avec un tableau de ressources LogStorageResources. Le tableau doit fournir une ressource pour chaque niveau d'importance valide. Les éléments du tableau doivent présenter une valeur numérique croissante d'importance (et une importance décroissante). Le premier élément du tableau correspond aux ressources allouées aux événements les plus critiques et le dernier élément aux événements les moins importants.

Détails
Paramètres
[in] inMgr
WeaveExchangeManager à utiliser avec ce sous-système de journalisation
[in] inNumBuffers
Nombre d'éléments dans le tableau inLogStorageResources
[in] inLogStorageResources
Tableau de ressources LogStorageResources pour chaque niveau d'importance.

DestroyLoggingManagement

void DestroyLoggingManagement(
  void
)

Effectuez toutes les actions nécessaires à l'arrêt.

GetInstance

LoggingManagement & GetInstance(
  void
)