diff options
author | Emmanuele Bassi <ebassi@gnome.org> | 2017-09-19 17:31:27 +0100 |
---|---|---|
committer | P. F. Chimento <philip.chimento@gmail.com> | 2018-01-10 10:28:35 -0800 |
commit | 9febff20c71f7112a3652cba81d41b260c178716 (patch) | |
tree | 0dbd26c56b7d0539c6d0559268f4a4bbf36f86d8 /endless/gvdb/gvdb-reader.h | |
parent | 06bb46430f71fe89d63c0e57cd733a448b07c695 (diff) |
Add initial infrastructure for Profiling
The EosProfileProbe API allows defining profiling probes that can be
used to efficiently measure the time spent in a critical section.
The Profiling API is meant to collect samples and generate a report
at the end of the lifetime of the process, either by printing out the
results once the process terminates; or by saving the raw data in a
binary file that can be loaded at a later date.
This profiling API is meant to be as close as possible to a zero cost
abstraction:
- probes are only allocated if profiling is enabled
- all profiling API is a no-op if profiling isn't enabled
- the C API is meant to be easily tied to a scope, through the
use of auto-cleanup macros provided by GLib
This allows projects using the Endless SDK to keep the profiling probes
in place, instead of conditionally compile them in.
https://phabricator.endlessm.com/T18514
Diffstat (limited to 'endless/gvdb/gvdb-reader.h')
-rw-r--r-- | endless/gvdb/gvdb-reader.h | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/endless/gvdb/gvdb-reader.h b/endless/gvdb/gvdb-reader.h new file mode 100644 index 0000000..398824a --- /dev/null +++ b/endless/gvdb/gvdb-reader.h @@ -0,0 +1,65 @@ +/* + * Copyright © 2010 Codethink Limited + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the licence, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + * + * Author: Allison Lortie <desrt@desrt.ca> + */ + +#ifndef __gvdb_reader_h__ +#define __gvdb_reader_h__ + +#include <glib.h> + +typedef struct _GvdbTable GvdbTable; + +G_BEGIN_DECLS + +G_GNUC_INTERNAL +GvdbTable * gvdb_table_new_from_bytes (GBytes *bytes, + gboolean trusted, + GError **error); +G_GNUC_INTERNAL +GvdbTable * gvdb_table_new (const gchar *filename, + gboolean trusted, + GError **error); +G_GNUC_INTERNAL +void gvdb_table_free (GvdbTable *table); +G_GNUC_INTERNAL +gchar ** gvdb_table_get_names (GvdbTable *table, + gint *length); +G_GNUC_INTERNAL +gchar ** gvdb_table_list (GvdbTable *table, + const gchar *key); +G_GNUC_INTERNAL +GvdbTable * gvdb_table_get_table (GvdbTable *table, + const gchar *key); +G_GNUC_INTERNAL +GVariant * gvdb_table_get_raw_value (GvdbTable *table, + const gchar *key); +G_GNUC_INTERNAL +GVariant * gvdb_table_get_value (GvdbTable *table, + const gchar *key); + +G_GNUC_INTERNAL +gboolean gvdb_table_has_value (GvdbTable *table, + const gchar *key); +G_GNUC_INTERNAL +gboolean gvdb_table_is_valid (GvdbTable *table); + +G_END_DECLS + +#endif /* __gvdb_reader_h__ */ |