summaryrefslogtreecommitdiffstats
path: root/inc
diff options
context:
space:
mode:
Diffstat (limited to 'inc')
-rw-r--r--inc/ABRTException.h35
-rw-r--r--inc/CrashTypes.h71
2 files changed, 106 insertions, 0 deletions
diff --git a/inc/ABRTException.h b/inc/ABRTException.h
new file mode 100644
index 00000000..730faf3b
--- /dev/null
+++ b/inc/ABRTException.h
@@ -0,0 +1,35 @@
+#ifndef ABRTEXCEPTION_H_
+#define ABRTEXCEPTION_H_
+
+#include <string>
+
+typedef enum {EXCEP_UNKNOW,
+ EXCEP_DD_OPEN,
+ EXCEP_DD_LOAD,
+ EXCEP_DD_SAVE,
+ EXCEP_DD_DELETE,
+ EXCEP_DL,
+ EXCEP_PLUGIN,
+ EXCEP_ERROR,
+ EXCEP_FATAL} abrt_exception_t;
+
+class CABRTException : public std::exception
+{
+ private:
+ std::string m_sWhat;
+ abrt_exception_t m_Type;
+ public:
+ virtual ~CABRTException() throw() {}
+ CABRTException(const abrt_exception_t& pType, const char* pWhat) :
+ m_sWhat(pWhat),
+ m_Type(pType)
+ {}
+ CABRTException(const abrt_exception_t& pType, const std::string& pWhat) :
+ m_sWhat(pWhat),
+ m_Type(pType)
+ {}
+ abrt_exception_t type() { return m_Type; }
+ std::string what() { return m_sWhat; }
+};
+
+#endif /* ABRTEXCEPTION_H_ */
diff --git a/inc/CrashTypes.h b/inc/CrashTypes.h
new file mode 100644
index 00000000..d53e6802
--- /dev/null
+++ b/inc/CrashTypes.h
@@ -0,0 +1,71 @@
+#ifndef CRASHTYPES_H_
+#define CRASHTYPES_H_
+
+#include <string>
+#include <map>
+#include <vector>
+
+// SYS - system value, should not be displayed
+// BIN - binary value, should be displayed
+// TXT - text value, should be displayed
+// ATT - text value which can be sent as attachment via reporters
+#define CD_SYS "s"
+#define CD_BIN "b"
+#define CD_TXT "t"
+#define CD_ATT "a"
+
+#define CD_ATT_SIZE (256)
+
+#define CD_ISEDITABLE "y"
+#define CD_ISNOTEDITABLE "n"
+
+#define CD_TYPE (0)
+#define CD_EDITABLE (1)
+#define CD_CONTENT (2)
+
+#define CD_UUID "UUID"
+#define CD_UID "UID"
+#define CD_COUNT "Count"
+#define CD_EXECUTABLE "Executable"
+#define CD_PACKAGE "Package"
+#define CD_DESCRIPTION "Description"
+#define CD_TIME "Time"
+#define CD_REPORTED "Reported"
+#define CD_COMMENT "Comment"
+#define CD_REPRODUCE "How to reproduce"
+#define CD_MWANALYZER "_MWAnalyzer"
+#define CD_MWUID "_MWUID"
+#define CD_MWUUID "_MWUUID"
+#define CD_MWDDD "_MWDDD"
+
+// now, size of a vecor is always 3 -> <type, editable, content>
+typedef std::vector<std::string> vector_strings_t;
+// <key, data>
+typedef std::map<std::string, vector_strings_t> map_crash_data_t;
+
+typedef map_crash_data_t map_crash_info_t;
+typedef std::vector<map_crash_info_t> vector_crash_infos_t;
+typedef map_crash_data_t map_crash_report_t;
+
+inline void add_crash_data_to_crash_info(map_crash_info_t& pCrashInfo,
+ const std::string& pItem,
+ const std::string& pContent)
+{
+ pCrashInfo[pItem].push_back(CD_TXT);
+ pCrashInfo[pItem].push_back(CD_ISNOTEDITABLE);
+ pCrashInfo[pItem].push_back(pContent);
+}
+
+inline void add_crash_data_to_crash_report(map_crash_report_t& pCrashReport,
+ const std::string& pItem,
+ const std::string& pType,
+ const std::string& pEditable,
+ const std::string& pContent)
+{
+ pCrashReport[pItem].push_back(pType);
+ pCrashReport[pItem].push_back(pEditable);
+ pCrashReport[pItem].push_back(pContent);
+}
+
+
+#endif /* CRASHTYPES_H_ */