libreport  2.1.11.21.el7.31.ga297
A tool to inform users about various problems on the running system
libreport_types.h
1 /*
2  Copyright (C) 2013 ABRT team
3  Copyright (C) 2013 RedHat Inc
4 
5  This program is free software; you can redistribute it and/or modify
6  it under the terms of the GNU General Public License as published by
7  the Free Software Foundation; either version 2 of the License, or
8  (at your option) any later version.
9 
10  This program is distributed in the hope that it will be useful,
11  but WITHOUT ANY WARRANTY; without even the implied warranty of
12  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  GNU General Public License for more details.
14 
15  You should have received a copy of the GNU General Public License along
16  with this program; if not, write to the Free Software Foundation, Inc.,
17  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 */
19 #ifndef LIBREPORT_TYPES_H_
20 #define LIBREPORT_TYPES_H_
21 
22 #include <glib.h>
23 
24 typedef gchar **string_vector_ptr_t;
25 
26 #define string_vector_new_from_string libreport_string_vector_new_from_string
27 string_vector_ptr_t string_vector_new_from_string(const char *vector);
28 #define string_vector_free libreport_string_vector_free
29 void string_vector_free(string_vector_ptr_t vector);
30 
31 typedef GHashTable map_string_t;
32 #define new_map_string libreport_new_map_string
33 map_string_t *new_map_string(void);
34 #define free_map_string libreport_free_map_string
35 void free_map_string(map_string_t *ms);
36 #define clone_map_string libreport_clone_map_string
37 map_string_t *clone_map_string(map_string_t *ms);
38 #define size_map_string libreport_size_map_string
39 static inline
40 unsigned size_map_string(map_string_t *ms)
41 {
42  if (ms == NULL)
43  return 0;
44 
45  return g_hash_table_size(ms);
46 }
47 #define insert_map_string_item libreport_insert_map_string_item
48 static inline
49 void insert_map_string(map_string_t *ms, char *key, char *value)
50 {
51  g_hash_table_insert(ms, key, value);
52 }
53 #define replace_map_string_item libreport_replace_map_string_item
54 static inline
55 void replace_map_string_item(map_string_t *ms, char *key, char *value)
56 {
57  g_hash_table_replace(ms, key, value);
58 }
59 #define remove_map_string_item libreport_remove_map_string_item
60 static inline
61 void remove_map_string_item(map_string_t *ms, const char *key)
62 {
63  g_hash_table_remove(ms, key);
64 }
65 #define get_map_string_item_or_empty libreport_get_map_string_item_or_empty
66 const char *get_map_string_item_or_empty(map_string_t *ms, const char *key);
67 #define get_map_string_item_or_NULL libreport_get_map_string_item_or_NULL
68 static inline
69 const char *get_map_string_item_or_NULL(map_string_t *ms, const char *key)
70 {
71  return (const char*)g_hash_table_lookup(ms, key);
72 }
73 
74 #define set_map_string_item_from_bool libreport_set_map_string_item_from_bool
75 void set_map_string_item_from_bool(map_string_t *ms, const char *key, int value);
76 #define try_get_map_string_item_as_bool libreport_try_get_map_string_item_as_bool
77 int try_get_map_string_item_as_bool(map_string_t *ms, const char *key, int *value);
78 
79 #define set_map_string_item_from_int libreport_set_map_string_item_from_int
80 void set_map_string_item_from_int(map_string_t *ms, const char *key, int value);
81 #define try_get_map_string_item_as_int libreport_try_get_map_string_item_as_int
82 int try_get_map_string_item_as_int(map_string_t *ms, const char *key, int *value);
83 
84 #define set_map_string_item_from_string libreport_set_map_string_item_from_string
85 void set_map_string_item_from_string(map_string_t *ms, const char *key, const char *value);
86 #define try_get_map_string_item_as_string libreport_try_get_map_string_item_as_string
87 int try_get_map_string_item_as_string(map_string_t *ms, const char *key, char **value);
88 
89 #define set_map_string_item_from_string_vector libreport_set_map_string_item_from_string_vector
90 void set_map_string_item_from_string_vector(map_string_t *ms, const char *key, string_vector_ptr_t value);
91 #define try_get_map_string_item_as_string_vector libreport_try_get_map_string_item_as_string_vector
92 int try_get_map_string_item_as_string_vector(map_string_t *ms, const char *key, string_vector_ptr_t *value);
93 
94 
95 typedef GHashTableIter map_string_iter_t;
96 #define init_map_string_iter libreport_init_map_string_iter
97 static inline
98 void init_map_string_iter(map_string_iter_t *iter, map_string_t *ms)
99 {
100  g_hash_table_iter_init(iter, ms);
101 }
102 #define next_map_string_iter libreport_next_map_string_iter
103 static inline
104 int next_map_string_iter(map_string_iter_t *iter, const char **key, const char **value)
105 {
106  return g_hash_table_iter_next(iter, (gpointer *)key, (gpointer *)value);
107 }
108 
109 #endif /* LIBREPORT_TYPES_H_ */