Loading...
Searching...
No Matches
qlog.h
Go to the documentation of this file.
1
17
18#ifndef IMQUIC_QLOG_H
19#define IMQUIC_QLOG_H
20
21#include <glib.h>
22
25gboolean imquic_qlog_is_supported(void);
26
27#ifdef HAVE_QLOG
28#include <jansson.h>
29
30#include "refcount.h"
31
35
36typedef struct imquic_qlog {
38 char *id;
40 gboolean sequential;
42 gboolean is_server;
46 json_t *root;
48 json_t *common;
50 json_t *events;
52 char *filename;
54 FILE *file;
58 volatile gint destroyed;
62
81imquic_qlog *imquic_qlog_create(char *id, char *cid,
82 char *folder, gboolean sequential, gboolean is_server,
83 gboolean http3, gboolean roq, gboolean roq_packets,
84 gboolean moq, gboolean moq_messages, gboolean moq_objects);
96
100
104json_t *imquic_qlog_event_prepare(const char *name);
108json_t *imquic_qlog_event_add_data(json_t *event);
114void imquic_qlog_event_add_raw(json_t *parent, const char *name, uint8_t *bytes, size_t length);
118void imquic_qlog_append_event(imquic_qlog *qlog, json_t *event);
120
121#endif
122
123#endif
GMutex imquic_mutex
imquic mutex implementation
Definition mutex.h:18
int imquic_qlog_save_to_file(imquic_qlog *qlog)
Save the current status of the QLOG structure to JSON.
Definition qlog.c:158
void imquic_qlog_append_event(imquic_qlog *qlog, json_t *event)
Helper to add a complete event object to an existing QLOG instance.
Definition qlog.c:236
json_t * imquic_qlog_event_add_data(json_t *event)
Helper to add a data object to an event and return a pointer to it.
Definition qlog.c:210
json_t * imquic_qlog_event_prepare(const char *name)
Helper to create a new QLOG event by name.
Definition qlog.c:202
void imquic_qlog_event_add_raw(json_t *parent, const char *name, uint8_t *bytes, size_t length)
Helper to add/append a raw object to the specified object or array.
Definition qlog.c:218
void imquic_qlog_destroy(imquic_qlog *qlog)
Helper method to destroy an existing QLOG instance.
Definition qlog.c:147
imquic_qlog * imquic_qlog_create(char *id, char *cid, char *folder, gboolean sequential, gboolean is_server, gboolean http3, gboolean roq, gboolean roq_packets, gboolean moq, gboolean moq_messages, gboolean moq_objects)
Helper method to initialize a new QLOG instance.
Definition qlog.c:53
gboolean imquic_qlog_is_supported(void)
Helper method to check if QLOG is supported at runtime.
Definition qlog.c:30
Reference counter mechanism.
QLOG instance.
Definition qlog.h:36
gboolean is_server
Whether this is for a client or server connection.
Definition qlog.h:42
json_t * root
Jansson JSON instance.
Definition qlog.h:46
FILE * file
File to save the JSON file to.
Definition qlog.h:54
gboolean roq_packets
Definition qlog.h:44
imquic_mutex mutex
Mutex.
Definition qlog.h:56
gboolean moq_messages
Definition qlog.h:44
imquic_refcount ref
Reference counter.
Definition qlog.h:60
gboolean http3
Whether HTTP/3 and/or RoQ and/or MoQT events should be saved.
Definition qlog.h:44
volatile gint destroyed
Whether this instance has been destroyed (reference counting)
Definition qlog.h:58
char * filename
Path to where the JSON file should be saved.
Definition qlog.h:52
gboolean moq_objects
Definition qlog.h:44
json_t * common
Reference to the common fields entry.
Definition qlog.h:48
gboolean sequential
Whether sequential JSON will be used, instead of regular JSON.
Definition qlog.h:40
char * id
Instance ID.
Definition qlog.h:38
gboolean roq
Definition qlog.h:44
gboolean moq
Definition qlog.h:44
json_t * events
Reference to the events array.
Definition qlog.h:50
Definition refcount.h:77