Diana Software
QError.hh
Go to the documentation of this file.
1 
10 #ifndef _Q_ERR_HH_
11 #define _Q_ERR_HH_
12 
13 #include <iostream>
14 #include <string>
15 #include <exception>
16 #include <map>
17 
18 #include "QDiana.hh"
19 
20 
24 enum QError_ {
25 
26  // generic errors
40 
41  // Diana:
46 
47  // Apollo: general errors
58 
59  // National Instruments error codes
61 
62  // Slow Control: specific error codes
67 
68  // Slow Control Error (Front-End, Bessel, Pulser, Backplane)
82 
83  // vme related errors
87 
88  // GPIB Errors
90 
91  // Network communication errors
95 
96  // shared memory related errors
99 
100  // DataBase errors
106 
107  // Unknown Errors
110 };
111 
115 class QError: public std::exception {
116 
117  public:
118 
120  virtual const char* what() const throw();
121 
123  QError();
124 
126  QError(QError_ err);
127 
129  QError(QError_ err, const std::string& descr);
130 
132  QError(QError_ err, const std::string& file, const int line, const std::string& descr);
133 
135  QError(const QError& err);
136 
138  virtual ~QError() throw() {};
139 
141  const QError& operator = (const QError_ &e);
142 
144  const QError& operator=(const QError& err);
145 
147  void SetDescription(const std::string& descr) {fDescr = descr;}
148 
150  void SetDescription(const std::string& file, const int line, const std::string& descr);
151 
153  const std::string& GetDescription() const;
154 
156  QError_ GetCode() const {return fErr;}
157 
159  const std::string& ToString() const;
160 
161 
163  bool operator == (const QError_& e) const {return fErr == e;}
164 
166  bool operator == (const QError& e) const {return fErr == e.fErr;}
167 
169  bool operator != (const QError_& e) const {return fErr != e;}
170 
172  bool operator != (const QError &e) const {return fErr != e.fErr;}
173 
175  void Set(QError_ e=QERR_SUCCESS, const std::string &descr="");
176 
177  void Set(QError_ e, const std::string& file, const int line, const std::string &descr = "");
178 
179 
180  private:
181 
182 
185 
187  std::string fDescr;
188 
189 
191  static void Init();
192 
194  static std::map<QError_, std::string> fMap;
195 
197  friend std::ostream& operator<<(std::ostream &s , const QError &err);
198 
199  // QRootCintTrigger
200 };
201 
202 
204 std::ostream& operator<<(std::ostream &s , const QError &err);
205 
206 
207 #endif
err
Definition: CheckOF.C:114
std::ostream & operator<<(std::ostream &s, const QError &err)
error stream of string error and description
Definition: QError.cc:210
QError_
underlying enum with error types
Definition: QError.hh:24
@ QERR_SHMEM_INVALID_INDEX
Definition: QError.hh:97
@ QERR_EVENT_HANDLE
Definition: QError.hh:43
@ QERR_ELE_BESSEL_READ
Definition: QError.hh:79
@ QERR_UNDEFINED_STATUS
Definition: QError.hh:51
@ QERR_EVENT_GENERIC
Definition: QError.hh:42
@ QERR_UNDEFINED_COMMAND
Definition: QError.hh:53
@ QERR_ELE_PULSER_STATUS_WRITE
Definition: QError.hh:76
@ QERR_UNDEFINED_MODE
Definition: QError.hh:63
@ QERR_EXIT
Definition: QError.hh:57
@ QERR_UNDEFINED_NUMBER
Definition: QError.hh:35
@ QERR_UNDERFLOW
Definition: QError.hh:30
@ QERR_ELE_PULSER_ATT_READ
Definition: QError.hh:80
@ QERR_ELE_BACKPLANE_WRITE
Definition: QError.hh:73
@ QERR_NET_CONNECTION_FAILED
Definition: QError.hh:93
@ QERR_SHMEM_INVALID_ID
Definition: QError.hh:98
@ QERR_VME_READ
Definition: QError.hh:86
@ QERR_DB_INCONSISTENCY
Definition: QError.hh:101
@ QERR_UNDEFINED_CRATE
Definition: QError.hh:65
@ QERR_NET_PROTOCOL
Definition: QError.hh:94
@ QERR_ELE_GENERIC_ERR
Definition: QError.hh:70
@ QERR_FILE_NOT_FOUND
Definition: QError.hh:32
@ QERR_GLOBAL_GENERIC
Definition: QError.hh:44
@ QERR_ELE_BACKPLANE_READ
Definition: QError.hh:78
@ QERR_ELE_PULSER_STATUS_READ
Definition: QError.hh:81
@ QERR_IO_FAILED
Definition: QError.hh:34
@ QERR_VME_OPEN
Definition: QError.hh:84
@ QERR_TYPE_CONVERSION
Definition: QError.hh:36
@ QERR_GLOBAL_HANDLE
Definition: QError.hh:45
@ QERR_UNDEFINED_TYPE
Definition: QError.hh:50
@ QERR_TIMEOUT
Definition: QError.hh:38
@ QERR_UNKNOWN_ERR
Definition: QError.hh:108
@ QERR_GPIB_GENERAL
Definition: QError.hh:89
@ QERR_GSL_ERROR
Definition: QError.hh:37
@ QERR_UNDEFINED_CHANNEL
Definition: QError.hh:48
@ QERR_NI
Definition: QError.hh:60
@ QERR_NOT_IMPLEMENTED
Definition: QError.hh:109
@ QERR_UNDEFINED_INTERFACE
Definition: QError.hh:55
@ QERR_ELE_FE_READ
Definition: QError.hh:77
@ QERR_OVERFLOW
Definition: QError.hh:29
@ QERR_CANNOT_OPEN_FILE
Definition: QError.hh:33
@ QERR_UNDEFINED_TARGET
Definition: QError.hh:56
@ QERR_UNDEFINED_BASKET
Definition: QError.hh:64
@ QERR_NET_UNKNOWN_HOST
Definition: QError.hh:92
@ QERR_ELE_BESSEL_WRITE
Definition: QError.hh:74
@ QERR_UNDEFINED_DEVICE
Definition: QError.hh:54
@ QERR_VME_WRITE
Definition: QError.hh:85
@ QERR_ELE_UNDEFINED_REGISTER
Definition: QError.hh:69
@ QERR_ELE_NO_ACKNOLDGEMENT
Definition: QError.hh:71
@ QERR_DB_CONN_FAILED
Definition: QError.hh:102
@ QERR_DB_NULL_RESULT
Definition: QError.hh:104
@ QERR_ELE_FE_WRITE
Definition: QError.hh:72
@ QERR_UNDEFINED_BOARD
Definition: QError.hh:66
@ QERR_DB_QUERY_FAILED
Definition: QError.hh:103
@ QERR_ELE_PULSER_ATT_WRITE
Definition: QError.hh:75
@ QERR_SIZE_NOT_MATCH
Definition: QError.hh:31
@ QERR_OUT_OF_RANGE
Definition: QError.hh:28
@ QERR_EOF
Definition: QError.hh:39
@ QERR_UNDEFINED_PARAMETER
Definition: QError.hh:52
@ QERR_DB_MAXLINES_EXCEEDED
Definition: QError.hh:105
@ QERR_SUCCESS
Definition: QError.hh:27
@ QERR_UNDEFINED_ID
Definition: QError.hh:49
error class with error type and description
Definition: QError.hh:115
bool operator!=(const QError_ &e) const
comparison with QError_ enum
Definition: QError.hh:169
QError_ GetCode() const
get error code
Definition: QError.hh:156
virtual const char * what() const
returns the same information as operator<<
Definition: QError.cc:222
bool operator==(const QError_ &e) const
comparison with QError_ enum
Definition: QError.hh:163
virtual ~QError()
destructor
Definition: QError.hh:138
void SetDescription(const std::string &descr)
set error description
Definition: QError.hh:147
void Set(QError_ e=QERR_SUCCESS, const std::string &descr="")
set to error code and description (default is SUCCESS)
Definition: QError.cc:157
const QError & operator=(const QError_ &e)
assignement operator
Definition: QError.cc:174
static void Init()
initialization of fMap
Definition: QError.cc:14
static std::map< QError_, std::string > fMap
map of string error
Definition: QError.hh:194
QError()
Default constructor.
Definition: QError.cc:115
std::string fDescr
error description
Definition: QError.hh:187
friend std::ostream & operator<<(std::ostream &s, const QError &err)
stream of error type and description
Definition: QError.cc:210
const std::string & GetDescription() const
get error description
Definition: QError.cc:190
QError_ fErr
underlying enum
Definition: QError.hh:184
const std::string & ToString() const
error type to string conversion
Definition: QError.cc:203