Tutorial   Class/Enum List   File List   Compound Members  

RtError.h

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