22 #ifndef LIBREPORT_PROBLEM_DATA_H_ 23 #define LIBREPORT_PROBLEM_DATA_H_ 25 #include "libreport_types.h" 34 CD_FLAG_BIN = (1 << 0),
35 CD_FLAG_TXT = (1 << 1),
36 CD_FLAG_ISEDITABLE = (1 << 2),
37 CD_FLAG_ISNOTEDITABLE = (1 << 3),
39 CD_FLAG_LIST = (1 << 4),
40 CD_FLAG_UNIXTIME = (1 << 5),
46 CD_FLAG_BIGTXT = (1 << 6),
49 #define PROBLEM_ITEM_UNINITIALIZED_SIZE ((unsigned long)-1) 57 int allowed_by_reporter;
58 int default_by_reporter;
59 int required_by_reporter;
65 int problem_item_get_size(
struct problem_item *item,
unsigned long *size);
69 typedef GHashTable problem_data_t;
71 problem_data_t *problem_data_new(
void);
73 static inline void problem_data_free(problem_data_t *problem_data)
77 g_hash_table_destroy(problem_data);
80 void problem_data_add_basics(problem_data_t *pd);
82 void problem_data_add_current_process_data(problem_data_t *pd);
84 void problem_data_add(problem_data_t *problem_data,
88 struct problem_item *problem_data_add_ext(problem_data_t *problem_data,
93 void problem_data_add_text_noteditable(problem_data_t *problem_data,
96 void problem_data_add_text_editable(problem_data_t *problem_data,
100 void problem_data_add_file(problem_data_t *pd,
const char *name,
const char *path);
102 static inline struct problem_item *problem_data_get_item_or_NULL(problem_data_t *problem_data,
const char *key)
104 return (
struct problem_item *)g_hash_table_lookup(problem_data, key);
106 char *problem_data_get_content_or_NULL(problem_data_t *problem_data,
const char *key);
108 char *problem_data_get_content_or_die(problem_data_t *problem_data,
const char *key);
111 static inline GList *problem_data_get_all_elements(problem_data_t *problem_data)
113 return g_hash_table_get_keys(problem_data);
132 int problem_data_send_to_abrt(problem_data_t* problem_data);
147 int problem_data_load_dump_dir_element(
struct dump_dir *dd,
const char *name,
char **content,
int *type_flags,
int *fd);
149 void problem_data_load_from_dump_dir(problem_data_t *problem_data,
struct dump_dir *dd,
char **excluding);
151 problem_data_t *create_problem_data_from_dump_dir(
struct dump_dir *dd);
153 problem_data_t *create_problem_data_for_reporting(
const char *dump_dir_name);
162 struct dump_dir *create_dump_dir_from_problem_data_ext(problem_data_t *problem_data,
const char *base_dir_name, uid_t uid);
174 PROBLEM_REPRODUCIBLE_UNKNOWN,
175 PROBLEM_REPRODUCIBLE_YES,
176 PROBLEM_REPRODUCIBLE_RECURRENT,
178 _PROBLEM_REPRODUCIBLE_MAX_,
181 int get_problem_data_reproducible(problem_data_t *problem_data);
182 const char *get_problem_data_reproducible_name(
int reproducible);
void problem_data_get_osinfo(problem_data_t *problem_data, map_string_t *osinfo)
Loads key value pairs from os_info item in to the osinfo argument.
struct dump_dir * create_dump_dir_from_problem_data(problem_data_t *problem_data, const char *base_dir_name)
Saves the problem data object.
int save_problem_data_in_dump_dir(struct dump_dir *dd, problem_data_t *problem_data)
Saves the problem data object in opened dump directory.