294702d3f1
Cut down on boilerplate by using the (no longer that) new helper macros. We don't care about breaking ABI in private libraries, so use G_DECLARE_FINAL_TYPE even where the class struct used to be exposed in the header, except for types we inherit from ourselves (obviously) or where the class exposes any vfuncs (where changes could affect inheritance in extensions).
76 lines
2.9 KiB
C
76 lines
2.9 KiB
C
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
|
|
#ifndef __SHELL_PERF_LOG_H__
|
|
#define __SHELL_PERF_LOG_H__
|
|
|
|
#include <glib-object.h>
|
|
#include <gio/gio.h>
|
|
|
|
G_BEGIN_DECLS
|
|
|
|
#define SHELL_TYPE_PERF_LOG (shell_perf_log_get_type ())
|
|
G_DECLARE_FINAL_TYPE (ShellPerfLog, shell_perf_log, SHELL, PERF_LOG, GObject)
|
|
|
|
ShellPerfLog *shell_perf_log_get_default (void);
|
|
|
|
void shell_perf_log_set_enabled (ShellPerfLog *perf_log,
|
|
gboolean enabled);
|
|
|
|
void shell_perf_log_define_event (ShellPerfLog *perf_log,
|
|
const char *name,
|
|
const char *description,
|
|
const char *signature);
|
|
void shell_perf_log_event (ShellPerfLog *perf_log,
|
|
const char *name);
|
|
void shell_perf_log_event_i (ShellPerfLog *perf_log,
|
|
const char *name,
|
|
gint32 arg);
|
|
void shell_perf_log_event_x (ShellPerfLog *perf_log,
|
|
const char *name,
|
|
gint64 arg);
|
|
void shell_perf_log_event_s (ShellPerfLog *perf_log,
|
|
const char *name,
|
|
const char *arg);
|
|
|
|
void shell_perf_log_define_statistic (ShellPerfLog *perf_log,
|
|
const char *name,
|
|
const char *description,
|
|
const char *signature);
|
|
|
|
void shell_perf_log_update_statistic_i (ShellPerfLog *perf_log,
|
|
const char *name,
|
|
int value);
|
|
void shell_perf_log_update_statistic_x (ShellPerfLog *perf_log,
|
|
const char *name,
|
|
gint64 value);
|
|
|
|
typedef void (*ShellPerfStatisticsCallback) (ShellPerfLog *perf_log,
|
|
gpointer data);
|
|
|
|
void shell_perf_log_add_statistics_callback (ShellPerfLog *perf_log,
|
|
ShellPerfStatisticsCallback callback,
|
|
gpointer user_data,
|
|
GDestroyNotify notify);
|
|
|
|
void shell_perf_log_collect_statistics (ShellPerfLog *perf_log);
|
|
|
|
typedef void (*ShellPerfReplayFunction) (gint64 time,
|
|
const char *name,
|
|
const char *signature,
|
|
GValue *arg,
|
|
gpointer user_data);
|
|
|
|
void shell_perf_log_replay (ShellPerfLog *perf_log,
|
|
ShellPerfReplayFunction replay_function,
|
|
gpointer user_data);
|
|
|
|
gboolean shell_perf_log_dump_events (ShellPerfLog *perf_log,
|
|
GOutputStream *out,
|
|
GError **error);
|
|
gboolean shell_perf_log_dump_log (ShellPerfLog *perf_log,
|
|
GOutputStream *out,
|
|
GError **error);
|
|
|
|
G_END_DECLS
|
|
|
|
#endif /* __SHELL_PERF_LOG_H__ */
|