00001 /************************************************************************/ 00010 /************************************************************************/ 00011 00012 #ifndef RTERROR_H 00013 #define RTERROR_H 00014 00015 #include <iostream> 00016 #include <string> 00017 00018 class RtError 00019 { 00020 public: 00022 enum Type { 00023 WARNING, 00024 DEBUG_WARNING, 00025 UNSPECIFIED, 00026 NO_DEVICES_FOUND, 00027 INVALID_DEVICE, 00028 INVALID_STREAM, 00029 MEMORY_ERROR, 00030 INVALID_PARAMETER, 00031 DRIVER_ERROR, 00032 SYSTEM_ERROR, 00033 THREAD_ERROR 00034 }; 00035 00036 protected: 00037 std::string message_; 00038 Type type_; 00039 00040 public: 00042 RtError(const std::string& message, Type type = RtError::UNSPECIFIED) : message_(message), type_(type) {} 00043 00045 virtual ~RtError(void) {}; 00046 00048 virtual void printMessage(void) { std::cerr << '\n' << message_ << "\n\n"; } 00049 00051 virtual const Type& getType(void) { return type_; } 00052 00054 virtual const std::string& getMessage(void) { return message_; } 00055 00057 virtual const char *getMessageString(void) { return message_.c_str(); } 00058 }; 00059 00060 #endif
©2003-2009 Gary P. Scavone, McGill University. All Rights Reserved. Maintained by Gary P. Scavone, gary at music.mcgill.ca |