Store Sequence sequence location in a shared_ptr class
[mussa.git] / mussa_exceptions.hpp
index bf76e3b946eb0b166bfc4ec1a0175f3c2dd4300c..3c44e6061705d1c370d4158eb8aa70791e6fd23f 100644 (file)
@@ -1,6 +1,7 @@
 #ifndef _MUSSA_EXCEPTIONS_H_
 #define _MUSSA_EXCEPTIONS_H_
 #include <stdexcept>
+#include <boost/filesystem/exception.hpp>
 
 //! base mussa exception
 class mussa_error : public std::runtime_error
@@ -15,7 +16,13 @@ class cmdline_error : public mussa_error
 public:
   explicit cmdline_error(const std::string& msg): mussa_error(msg) {};
 };
-
+//! Error trying to save 
+class mussa_save_error : public mussa_error
+{
+public:
+  explicit mussa_save_error(const std::string& msg) :
+    mussa_error(msg) {};
+};
 //! Error loading information
 class mussa_load_error : public mussa_error
 {
@@ -24,6 +31,54 @@ public:
     mussa_error(msg) {};
 };
 
+//! Error loading sequence
+class sequence_load_error : public mussa_load_error
+{
+public:
+  explicit sequence_load_error(const std::string& msg) :
+    mussa_load_error(msg) {};
+};
+
+// Empty sequence
+class sequence_empty_error : public sequence_load_error 
+{
+public:
+  explicit sequence_empty_error(const std::string& msg) :
+    sequence_load_error(msg) {};
+};
+
+// Empty fasta file
+class sequence_empty_file_error : public sequence_load_error 
+{
+public:
+  explicit sequence_empty_file_error(const std::string& msg) :
+    sequence_load_error(msg) {};
+};
+
+// Empty unrecognized characters
+class sequence_invalid_load_error : public sequence_load_error 
+{
+public:
+  explicit sequence_invalid_load_error(const std::string& msg) :
+    sequence_load_error(msg) {};
+};
+
+//! Incomprehensible comparison
+class sequence_invalid_comparison : public mussa_error
+{
+public:
+  explicit sequence_invalid_comparison(const std::string& msg) :
+    mussa_error(msg) {};
+};
+
+//! Error loading sequence annotation
+class annotation_load_error : public sequence_load_error
+{
+public:
+  explicit annotation_load_error(const std::string& msg) :
+    sequence_load_error(msg) {};
+};
+
 //! failure running analysis
 class mussa_analysis_error : public mussa_error
 {
@@ -32,10 +87,37 @@ public:
     mussa_error(msg) {};
 };
 
+//! failure running seqcomp
+class seqcomp_error : public mussa_analysis_error
+{
+public:
+  explicit seqcomp_error(const std::string& msg) : 
+    mussa_analysis_error(msg) {};
+};
+
+//! couldn't normalize a motif
+/*
 class motif_normalize_error : public mussa_error
 {
 public:
   explicit motif_normalize_error(const std::string& msg) : 
     mussa_error(msg) {};
 };
+*/
+
+//! something went wrong loading a motif  
+class motif_load_error : public mussa_load_error
+{
+public:
+  explicit motif_load_error(const std::string& msg) :
+    mussa_load_error(msg) {};
+};
+
+//! ConservedPath::nextTo had two paths that weren't the same size
+class conserved_path_size_mismatch : public mussa_error
+{
+public:
+  explicit conserved_path_size_mismatch(const std::string& msg) :
+    mussa_error(msg) {};
+};
 #endif