00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef _Error_incl_
00021 #define _Error_incl_
00022
00023 #include <stdexcept>
00024
00025 namespace rlog
00026 {
00027 class RLogChannel;
00028
00029
00030 class Error : public std::runtime_error
00031 {
00032 public:
00033 Error( const char *component, const char *file, const char *function,
00034 int line, const char *msg );
00035 Error(const Error &src );
00036 virtual ~Error() throw();
00037
00038 Error &operator = (const Error &src);
00039
00040 void log( RLogChannel * channel ) const;
00041
00042 const char *component() const;
00043 const char *file() const;
00044 const char *function() const;
00045 int line() const;
00046 const char *message() const;
00047
00048 private:
00049 struct ErrorData *data;
00050 };
00051
00052 }
00053
00054 #endif
00055