1 // -*- C++ -*-
2 ///////////////////////////////////////////////////////////////////////////////
3 // File: siscone_error.h                                                     //
4 // Description: header file for SISCone error messages (Csiscone_error)      //
5 // This file is part of the SISCone project.                                 //
6 // For more details, see http://projects.hepforge.org/siscone                //
7 //                                                                           //
8 // Copyright (c) 2006 Gavin Salam and Gregory Soyez                          //
9 //                                                                           //
10 // This program is free software; you can redistribute it and/or modify      //
11 // it under the terms of the GNU General Public License as published by      //
12 // the Free Software Foundation; either version 2 of the License, or         //
13 // (at your option) any later version.                                       //
14 //                                                                           //
15 // This program is distributed in the hope that it will be useful,           //
16 // but WITHOUT ANY WARRANTY; without even the implied warranty of            //
17 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the             //
18 // GNU General Public License for more details.                              //
19 //                                                                           //
20 // You should have received a copy of the GNU General Public License         //
21 // along with this program; if not, write to the Free Software               //
22 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA //
23 //                                                                           //
24 // $Revision:: 327                                                          $//
25 // $Date:: 2011-11-25 15:19:39 +0100 (Fri, 25 Nov 2011)                     $//
26 ///////////////////////////////////////////////////////////////////////////////
27 
28 #ifndef __SISCONE_ERROR_H__
29 #define __SISCONE_ERROR_H__
30 
31 #include<iostream>
32 #include<string>
33 
34 namespace siscone{
35 
36 /// \class Csiscone_error
37 /// class corresponding to errors that will be thrown by siscone
38 class Csiscone_error {
39 public:
40   /// default ctor
Csiscone_error()41   Csiscone_error() {;};
42 
43   /// ctor with a given error message
44   ///  \param message_in   the error message to be printed
Csiscone_error(const std::string & message_in)45   Csiscone_error(const std::string & message_in) {
46     m_message = message_in;
47     if (m_print_errors) std::cerr << "siscone::Csiscone_error: "<< message_in << std::endl;
48   };
49 
50   /// access to the error message
message()51   std::string message() const {return m_message;};
52 
53   /// switch on/off the error message printing
54   ///  \param print_errors   errors will be printed when true
setm_print_errors(bool print_errors)55   static void setm_print_errors(bool print_errors) {
56     m_print_errors = print_errors;};
57 
58 private:
59   std::string m_message;       ///< the error message
60   static bool m_print_errors;  ///< do we print error messages?
61 };
62 
63 }
64 #endif
65