Main Page | Modules | Class Hierarchy | Alphabetical List | Class List | File List | Class Members

ElectrometerException.h

00001 //******************************************************************************************
00002 //
00003 //
00004 //              july 24, 2006 :  Header file for the Electrometers exceptions
00005 //                                           (avaiable for all models Keithley and Novelec)
00006 //
00007 //
00008 //              author : X.Elattaoui
00009 //
00010 //              ElectrometerException.cpp: interface for the electrometer exceptions class.
00011 //
00012 //******************************************************************************************
00013 
00014 #ifndef _ELECTROMETER_EXCEPTION
00015 #define _ELECTROMETER_EXCEPTION
00016 
00017 #include <string>
00018 #include <vector>
00019 
00020 namespace electrometer{
00021 
00022 // ============================================================================
00023 // Electrometer Errors severities
00024 // ============================================================================
00025 typedef enum {
00026   WARN, 
00027   ERR, 
00028   PANIC
00029 } ErrorSeverity;
00030 
00031 // ============================================================================
00033 // ============================================================================
00037 // ============================================================================
00038 class Error
00039 {
00040 public:
00041 
00045   Error (void);
00046 
00050   Error (const char *reason,
00051                                  const char *desc,
00052                                  const char *origin,
00053                int severity = electrometer::ERR);
00054   
00055 
00059   Error (const std::string& reason,
00060                                  const std::string& desc,
00061                                  const std::string& origin, 
00062                int severity = electrometer::ERR);
00063 
00067   Error (const Error& src);
00068 
00072   virtual ~Error (void);
00073 
00077   Error& operator= (const Error& _src);
00078 
00082   std::string reason;
00083 
00087   std::string desc;
00088 
00092   std::string origin;
00093 
00097   int severity;
00098 
00099 };
00100 
00101 // ============================================================================
00102 // The Electrometer error list.
00103 // ============================================================================
00104 typedef std::vector<Error> ErrorList;
00105 
00106 
00107 // ============================================================================
00109 // ============================================================================
00113 // ============================================================================
00114 class  ElectrometerException
00115 {
00116 public:
00117 
00121   ElectrometerException (void);
00122 
00126   ElectrometerException (const char *reason,
00127                                            const char *desc,
00128                                            const char *origin,
00129                    int severity = electrometer::ERR);
00130   
00134   ElectrometerException (const std::string& reason,
00135                                            const std::string& desc,
00136                                            const std::string& origin, 
00137                    int severity = electrometer::ERR);
00138 
00142   ElectrometerException (const Error& error);
00143 
00144 
00148   ElectrometerException (const ElectrometerException& src);
00149 
00153   ElectrometerException& operator= (const ElectrometerException& _src);
00154 
00158   virtual ~ElectrometerException (void);
00159 
00163   void push_error (const char *reason,
00164                                                  const char *desc,
00165                                                        const char *origin, 
00166                                int severity = electrometer::ERR);
00167 
00171   void push_error (const std::string& reason,
00172                    const std::string& desc,
00173                    const std::string& origin, 
00174                    int severity = electrometer::ERR);
00175 
00179   void push_error (const Error& error);
00180 
00184    ErrorList errors;
00185   
00186 
00187 };
00188 
00189 } // end namspace Electrometer
00190 #endif //_ELECTROMETER_EXCEPTION
00191 
00192 

Generated on Fri Dec 1 15:32:18 2006 for Electrometers Library by  doxygen 1.3.9.1