19 #ifndef LIBREPORT_TYPES_H_
20 #define LIBREPORT_TYPES_H_
25 typedef gchar **string_vector_ptr_t;
26 typedef const gchar *
const *const_string_vector_const_ptr_t;
28 string_vector_ptr_t libreport_string_vector_new_from_string(
const char *vector);
29 void libreport_string_vector_free(string_vector_ptr_t vector);
31 typedef GHashTable map_string_t;
32 map_string_t *libreport_new_map_string(
void);
33 void libreport_free_map_string(map_string_t *ms);
34 map_string_t *libreport_clone_map_string(map_string_t *ms);
36 unsigned libreport_size_map_string(map_string_t *ms)
41 return g_hash_table_size(ms);
44 void insert_map_string(map_string_t *ms,
char *key,
char *value)
46 g_hash_table_insert(ms, key, value);
49 void libreport_replace_map_string_item(map_string_t *ms,
char *key,
char *value)
51 g_hash_table_replace(ms, key, value);
54 void libreport_remove_map_string_item(map_string_t *ms,
const char *key)
56 g_hash_table_remove(ms, key);
58 const char *libreport_get_map_string_item_or_empty(map_string_t *ms,
const char *key);
60 const char *libreport_get_map_string_item_or_NULL(map_string_t *ms,
const char *key)
62 return (
const char*)g_hash_table_lookup(ms, key);
65 void libreport_set_map_string_item_from_bool(map_string_t *ms,
const char *key,
int value);
66 int libreport_try_get_map_string_item_as_bool(map_string_t *ms,
const char *key,
int *value);
68 void libreport_set_map_string_item_from_int(map_string_t *ms,
const char *key,
int value);
69 int libreport_try_get_map_string_item_as_int(map_string_t *ms,
const char *key,
int *value);
71 void libreport_set_map_string_item_from_uint(map_string_t *ms,
const char *key,
unsigned int value);
72 int libreport_try_get_map_string_item_as_uint(map_string_t *ms,
const char *key,
unsigned int *value);
74 void libreport_set_map_string_item_from_string(map_string_t *ms,
const char *key,
const char *value);
75 int libreport_try_get_map_string_item_as_string(map_string_t *ms,
const char *key,
char **value);
77 void libreport_set_map_string_item_from_string_vector(map_string_t *ms,
const char *key, string_vector_ptr_t value);
78 int libreport_try_get_map_string_item_as_string_vector(map_string_t *ms,
const char *key, string_vector_ptr_t *value);
81 typedef GHashTableIter map_string_iter_t;
83 void libreport_init_map_string_iter(map_string_iter_t *iter, map_string_t *ms)
85 g_hash_table_iter_init(iter, ms);
88 int libreport_next_map_string_iter(map_string_iter_t *iter,
const char **key,
const char **value)
90 return g_hash_table_iter_next(iter, (gpointer *)key, (gpointer *)value);