00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #ifndef OMC_CORE_H
00016 #define OMC_CORE_H
00017
00018 #include <iostream>
00019 #include <string>
00020
00021
00022
00023 typedef char sign_t;
00024 typedef unsigned int index_t;
00025
00026
00027 namespace omc
00028 {
00029 class OMCException : public std::exception
00030 {
00031 public:
00032 OMCException (const std::string & message);
00033 OMCException (const std::string & message, const std::string & source);
00034
00035 virtual ~OMCException () throw () {};
00036
00037 virtual const char* what () const throw ();
00038
00039 private:
00040 std::string m_message;
00041 };
00042
00043 inline OMCException::OMCException (const std::string & message)
00044 : m_message (std::string ("OMCException: ") + message)
00045 {}
00046
00047 inline OMCException::OMCException (const std::string & message,
00048 const std::string & source)
00049 : m_message (std::string ("OMCException: ") + message +
00050 std::string("\nSource: ") + source)
00051 {}
00052
00053 inline const char * OMCException::what () const throw() {
00054 return m_message.c_str();
00055 }
00056
00057 }
00058
00059 #endif // OMC_CORE_H