00001 00006 /***************************************************************************** 00007 ** Ifdefs 00008 *****************************************************************************/ 00009 00010 #ifndef mm_messages_EXCEPTIONS_HPP_ 00011 #define mm_messages_EXCEPTIONS_HPP_ 00012 00013 /***************************************************************************** 00014 ** Includes 00015 *****************************************************************************/ 00016 00017 #include <stdexcept> 00018 00019 /***************************************************************************** 00020 ** Namespaces 00021 *****************************************************************************/ 00022 00023 namespace mm_messages { 00024 00025 /***************************************************************************** 00026 ** Interfaces 00027 *****************************************************************************/ 00028 00029 struct MessageRegistrationFailed : public std::logic_error { 00030 explicit MessageRegistrationFailed(const std::string& s) : logic_error(s) {} 00031 }; 00032 00033 struct UnregisteredID : public std::runtime_error { 00034 explicit UnregisteredID(const std::string& s) : std::runtime_error(s) { 00035 } 00036 }; 00037 00038 struct InvalidIDTypeCombination : public std::runtime_error { 00039 explicit InvalidIDTypeCombination(const std::string& s) : std::runtime_error(s) { 00040 } 00041 }; 00042 00043 struct FailedToFindMessageSpecialisation : public std::logic_error { 00044 explicit FailedToFindMessageSpecialisation(const std::string& s) : logic_error(s) {} 00045 }; 00046 00047 } // mm_messages 00048 00049 #endif /* mm_messages_EXCEPTIONS_HPP_ */