00001 #ifndef CLASSLIB_FILENAME_ERROR_H 00002 # define CLASSLIB_FILENAME_ERROR_H 00003 00004 //<<<<<< INCLUDES >>>>>> 00005 00006 # include "classlib/iobase/IOError.h" 00007 00008 namespace lat { 00009 //<<<<<< PUBLIC DEFINES >>>>>> 00010 //<<<<<< PUBLIC CONSTANTS >>>>>> 00011 //<<<<<< PUBLIC TYPES >>>>>> 00012 //<<<<<< PUBLIC VARIABLES >>>>>> 00013 //<<<<<< PUBLIC FUNCTIONS >>>>>> 00014 //<<<<<< CLASS DECLARATIONS >>>>>> 00015 00017 class FilenameError : public Error 00018 { 00019 public: 00020 enum Reason { 00021 UNTERMINATED_VAR, //< Unterminated variable reference 00022 BAD_SYNTAX, //< Badly formed variable 00023 NO_SUCH_VAR //< Non-existent variable 00024 }; 00025 00026 FilenameError (Reason cause, const std::string &spec = ""); 00027 00028 Reason reason (void) const; 00029 const std::string & variable (void) const; 00030 00031 virtual std::string explainSelf (void) const; 00032 virtual Error * clone (void) const; 00033 virtual void rethrow (void); 00034 00035 private: 00036 Reason m_reason; 00037 std::string m_spec; 00038 }; 00039 00040 //<<<<<< INLINE PUBLIC FUNCTIONS >>>>>> 00041 //<<<<<< INLINE MEMBER FUNCTIONS >>>>>> 00042 00043 } // namespace lat 00044 #endif // CLASSLIB_FILENAME_ERROR_H