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::cout << '\n' << message_ << "\n\n"; }
00049 
00051   virtual const Type& getType(void) { return type_; }
00052 
00054   virtual const std::string& getMessage(void) { return message_; }
00055 };
00056 
00057 #endif

©2003-2004 Gary P. Scavone, McGill University. All Rights Reserved.
Maintained by Gary P. Scavone, gary at music.mcgill.ca