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

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

Classe permettant de gérer les journaux d'événements en mémoire.

Résumé

Constructeurs et destructeurs

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

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échargez ou non les événements en fonction du nombre d'octets 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 des é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 journal 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 ID de fournisseur pour un niveau d'importance particulier.
IsShutdownInProgress(void)
bool
Vérifiez l'indicateur mShutdownInProgress.
IsValid(void)
bool
IsValid indique si l'instance LoggingManagement est valide.
LoadEvents(TLVReader & reader)
Charger l'événement Weave précédemment persistant.
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 des journaux
SerializeEvents(TLVWriter & writer)
Sérialisez les événements Weave de tous les types d'importance.
SetBDXUploader(LogBDXUpload *inUploader)
void
SetExchangeManager(nl::Weave::WeaveExchangeManager *inMgr)
Définissez le gestionnaire 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 effective 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 des journaux avec les ressources fournies.
DestroyLoggingManagement(void)
void
Effectuer 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 les informations avec état pour le tampon. L'état est mis à jour et conservé par BlitEvent à l'aide de ce contexte.
[in] inSchema
Schéma définissant l'importance, l'ID du 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 de l'application pour le rappel.
[in] inOptions
Des EventOptions décrivant le code temporel et d'autres balises pertinentes pour cet événement

CancelShutdownInProgress

void CancelShutdownInProgress(
  void
)

Définissez l'indicateur mShutdownInProgress sur false.

CheckShouldRunWDM

bool CheckShouldRunWDM(
  void
)

Déchargez ou non les événements en fonction du nombre d'octets 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 plus d'octets 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 renvoyées
true
Les événements doivent ê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 des événements d'importance spécifiée depuis un ID d'événement spécifié.

Avec nl::Weave::TLV::TLVWriter, un type d'importance et un ID d'événement, la fonction extrait les événements d'importance spécifiée depuis l'événement spécifié. La fonction continue de récupérer les événements jusqu'à ce qu'elle manque d'espace dans nl::Weave::TLV::TLVWriter ou dans le journal. La fonction met fin à l'écriture de l'événement à 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
Lors de l'entrée, l'ID de l'événement situé juste avant celui que nous extrayons. Une fois l'opération terminée, ID du dernier événement récupéré.
Valeurs renvoyées
WEAVE_END_OF_TLV
La fonction a atteint la fin du nombre d'entrées de journal disponibles au niveau d'importance spécifié
WEAVE_ERROR_NO_MEMORY
La fonction est tombée à court d'espace dans ioWriter. D'autres événements du journal sont disponibles.
WEAVE_ERROR_BUFFER_TOO_SMALL
La fonction est tombée à court d'espace dans ioWriter. D'autres événements du journal sont disponibles.

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 journal en mémoire.

Détails
Paramètres
[in,out] ioReader
Référence au lecteur qui sera initialisée avec l'espace de 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 contre-intuitive: 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 balayera le moins de données possible lorsque l'importance du 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 l'importance de cet événement

GetLastEventID

event_id_t GetLastEventID(
  ImportanceType inImportance
)

Extrayez le dernier ID de fournisseur pour un niveau d'importance particulier.

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

IsShutdownInProgress

bool IsShutdownInProgress(
  void
)

Vérifiez l'indicateur mShutdownInProgress.

IsValid

bool IsValid(
  void
)

IsValid indique si l'instance LoggingManagement est valide.

Détails
Valeurs renvoyées
true
L'instance est valide (initiale avec le magasin de sauvegarde approprié)
false
Sinon, procédez comme suit :

LoadEvents

WEAVE_ERROR LoadEvents(
  TLVReader & reader
)

Charger l'événement Weave précédemment persistant.

LogEvent

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

Consigner un événement par rappel, avec des options.

La fonction consigne un événement représenté sous la forme d'un EventWriterFunct et d'un contexte appData spécifique à l'application. La fonction écrit les métadonnées de l'événement et appelle inEventWriter avec une référence nl::Weave::TLV::TLVWriter et un 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 est ignorée. le système de journalisation des événements le remplacera par le tag 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 obtenu.

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

  • timestamp : lorsque 0 est défini par défaut sur l'heure actuelle au moment de l'appel,
  • "racine" section de la source d'événement (source de l'événement et ID de caractéristique) ; Si la valeur est NULL, l'appareil actuel est utilisé par défaut. l'événement est marqué comme relatif à l'appareil qui effectue l'appel ;
  • un identifiant d'événement associé pour regrouper les identifiants d'événements ; Lorsque l'ID de l'événement associé est 0, l'événement est marqué comme n'étant associé à aucun autre événement.
  • urgence ; non urgent par défaut.

Détails
Paramètres
[in] inSchema
Un schéma définissant l'importance, l'ID du 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 de l'application pour le rappel.
[in] inOptions
Options des métadonnées de l'événement. Peut être NULL.
Renvoie
event_id_t ID de l'événement si celui-ci 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 LogStorageResources. Le tableau doit fournir une ressource pour chaque niveau d'importance valide, les éléments du tableau doivent être sous forme de valeur numérique d'importance croissante (et d'importance décroissante) le premier élément du tableau correspond aux ressources allouées aux événements les plus critiques et le dernier 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 LogStorageResources pour chaque niveau d'importance.

LoggingManagement

 LoggingManagement(
  void
)

LoggingManagement.

Fourni principalement pour rendre le compilateur satisfait.

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 au format FetchExternalEventsFunct. Cette API nécessite que la plate-forme connaisse le nombre d'événements lors de l'inscription. Le fonctionnement interne nécessite é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, elle empêche le stockage persistant des événements (au moins avec des ID d'événements uniques).

Le rappel est appelé chaque fois qu'un abonné tente de récupérer des ID d'événement compris dans la plage définie, un nombre illimité de fois, 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é transmis à un abonné et que l'objet d'événements externes est évincé.

Lorsque les événements sont distribués, le fournisseur externe en est informé, ainsi que l'ID de nœud du destinataire et 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 pas de restrictions spécifiques sur le gestionnaire. En particulier, celui-ci peut annuler l'enregistrement des ID d'événements externes.

Si l'objet des événements externes est évincé des tampons de journaux, le fournisseur externe est averti avec une copie de l'objet des événements externes.

Le pointeur vers la structure ExternalEvents aura la valeur 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.

Pour en savoir plus sur ce que le rappel doit implémenter, consultez la documentation sur FetchExternalEventsFunct.

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 à la notification de livraison
[in] inEvictedCallback
Rappel d'inscription à la notification d'éviction
[in] inNumEvents
Nombre d'événements dans cet ensemble
[out] outLastEventID
Pointeur sur un event_id_t; Si l'enregistrement d'événements externes aboutit, la fonction stocke l'ID d'événement correspondant au dernier ID du bloc d'événements externes. Le paramètre peut être NULL.
Valeurs renvoyées
WEAVE_ERROR_NO_MEMORY
Si aucun autre créneau de rappel n'est disponible.
WEAVE_ERROR_INVALID_ARGUMENT
Rappel de fonction nulle ou aucun événement à enregistrer.
WEAVE_NO_ERROR
En cas de 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 au format FetchExternalEventsFunct. Cette API nécessite que la plate-forme connaisse le nombre d'événements lors de l'inscription. Le fonctionnement interne nécessite é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, elle empêche le stockage persistant des événements (au moins avec des ID d'événements uniques).

Le rappel est appelé chaque fois qu'un abonné tente de récupérer des ID d'événement compris dans la plage définie, un nombre illimité de fois, 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é transmis à un abonné, mais pas lorsque l'objet d'événements externes est évincé. Lorsque les événements sont distribués, le fournisseur externe en est informé, ainsi que l'ID de nœud du destinataire et 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 pas de restrictions spécifiques sur le gestionnaire. En particulier, celui-ci peut annuler l'enregistrement des ID d'événements externes.

Le pointeur vers la structure ExternalEvents aura la valeur 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.

Pour en savoir plus sur ce que le rappel doit implémenter, consultez la documentation sur FetchExternalEventsFunct.

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 à la notification de livraison
[in] inNumEvents
Nombre d'événements dans cet ensemble
[out] outLastEventID
Pointeur sur un event_id_t; Si l'enregistrement d'événements externes aboutit, la fonction stocke l'ID d'événement correspondant au dernier ID du bloc d'événements externes. Le paramètre peut être NULL.
Valeurs renvoyées
WEAVE_ERROR_NO_MEMORY
Si aucun autre créneau de rappel n'est disponible.
WEAVE_ERROR_INVALID_ARGUMENT
Rappel de fonction nulle ou aucun événement à enregistrer.
WEAVE_NO_ERROR
En cas de 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 au format FetchExternalEventsFunct. Cette API nécessite que la plate-forme connaisse le nombre d'événements lors de l'inscription. Le fonctionnement interne nécessite é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, elle empêche le stockage persistant des événements (au moins avec des ID d'événements uniques).

Le rappel est appelé chaque fois qu'un abonné tente de récupérer des ID d'événement compris dans la plage définie, un nombre illimité de fois, jusqu'à ce que l'enregistrement soit annulé.

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

Le pointeur vers la structure ExternalEvents aura la valeur 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.

Pour en savoir plus sur ce que le rappel doit implémenter, consultez la documentation sur FetchExternalEventsFunct.

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 sur un event_id_t; Si l'enregistrement d'événements externes aboutit, la fonction stocke l'ID d'événement correspondant au dernier ID du bloc d'événements externes. Le paramètre peut être NULL.
Valeurs renvoyées
WEAVE_ERROR_NO_MEMORY
Si aucun autre créneau de rappel n'est disponible.
WEAVE_ERROR_INVALID_ARGUMENT
Rappel de fonction nulle ou aucun événement à enregistrer.
WEAVE_NO_ERROR
En cas de réussite.

ScheduleFlushIfNeeded

WEAVE_ERROR ScheduleFlushIfNeeded(
  bool inFlushRequested
)

Planifier une tâche de déchargement des journaux

La fonction décide si un processus de déchargement de tâche doit être planifié. Si tel est le cas, 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 requête explicite pour vider le tampon

L'état du tampon des événements et la quantité de données qui n'ont pas encore été synchronisées avec les clients de l'événement

si un événement de demande de suppression de demande est déjà en attente.

La requête 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 justifier le démarrage d'un nouveau déchargement. D'autres déclencheurs, tels que les délais 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. Comme cette fonction peut être appelée par plusieurs threads, mUploadRequested doit être lu et défini de manière atomique, afin d'é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 des tampons interne.
Valeurs renvoyées
WEAVE_ERROR_INCORRECT_STATE
Le module LoggingManagement n'a pas été entièrement initialisé.
WEAVE_NO_ERROR
En cas de réussite.

SerializeEvents

WEAVE_ERROR SerializeEvents(
  TLVWriter & writer
)

Sérialisez 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 conçue pour les appareils qui ne conservent pas de RAM en veille, ce qui leur permet de conserver les événements avant de se mettre en veille et d'éviter ainsi de perdre des événements.

SetBDXUploader

void SetBDXUploader(
  LogBDXUpload *inUploader
)

SetExchangeManager

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

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

Sur certaines plates-formes, cette opération peut être effectuée indépendamment de la méthode 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 conservé par BlitEvent à l'aide de ce contexte.

ThrottleLogger

void ThrottleLogger(
  void
)

ThrottleLogger élève le niveau de journalisation effective 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 d'appeler le rappel pour un ensemble d'événements. LoggingManagement n'enverra plus ces ID d'événement aux abonnés.

L'objectif est qu'une fonction diffuse un ensemble d'événements à la fois. Si un nouvel ensemble d'événements doit être enregistré à l'aide de la même fonction, l'enregistrement du rappel doit d'abord être annulé, puis réenregistré. 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 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 à tout événement du bloc d'événements externe dont l'enregistrement doit être annulé.

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 des journaux avec les ressources fournies.

Initialisez LoggingManagement avec un tableau de LogStorageResources. Le tableau doit fournir une ressource pour chaque niveau d'importance valide, les éléments du tableau doivent correspondre à une valeur numérique d'importance croissante (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 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 LogStorageResources pour chaque niveau d'importance.

DestroyLoggingManagement

void DestroyLoggingManagement(
  void
)

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

GetInstance

LoggingManagement & GetInstance(
  void
)