![]() |
|
|
Generated: 18 Jul 2008 |
00001 // $Id: ExceptionSvc.h,v 1.4 2007/05/24 14:41:22 hmd Exp $ 00002 // ============================================================================ 00003 // CvS tag $Name: v17r1 $, version $Revision: 1.4 $ 00004 // ============================================================================ 00005 #ifndef GAUDISVC_EXCEPTIONSVC_H 00006 #define GAUDISVC_EXCEPTIONSVC_H 00007 // ============================================================================ 00008 // Include files 00009 // ============================================================================ 00010 // GaudiKernel 00011 // ============================================================================ 00012 #include "GaudiKernel/IExceptionSvc.h" 00013 #include "GaudiKernel/Service.h" 00014 #include "GaudiKernel/SvcFactory.h" 00015 // ============================================================================ 00022 // ============================================================================ 00023 class ExceptionSvc 00024 : public Service 00025 , public virtual IExceptionSvc 00026 { 00027 friend class SvcFactory<ExceptionSvc> ; 00028 public: 00030 virtual StatusCode handle 00031 ( const INamedInterface& o , 00032 const GaudiException& e ) const ; 00033 00034 virtual StatusCode handle 00035 ( const INamedInterface& o , 00036 const std::exception & e ) const ; 00037 00038 virtual StatusCode handle 00039 ( const INamedInterface& o ) const ; 00040 00041 virtual StatusCode handleErr 00042 ( const INamedInterface& o , 00043 const StatusCode& s ) const ; 00044 public: 00046 virtual StatusCode initialize () ; 00048 virtual StatusCode finalize () ; 00049 public: 00053 virtual StatusCode queryInterface 00054 ( const InterfaceID& iid , 00055 void** ppvi ) ; 00056 public: 00061 ExceptionSvc 00062 ( const std::string& name , 00063 ISvcLocator* svc ) ; 00065 virtual ~ExceptionSvc(); 00066 private: 00067 // default constructor is disabled 00068 ExceptionSvc () ; 00069 // copy constructor is disabled 00070 ExceptionSvc ( const ExceptionSvc& ) ; 00071 // assignement operator is disabled 00072 ExceptionSvc& operator=( const ExceptionSvc& ) ; 00073 private: 00074 00075 enum ExceptState { ALL, NONE, LIST }; 00076 enum ReturnState { DEFAULT, SUCCESS, FAILURE, RECOVERABLE, RETHROW }; 00077 00078 std::string m_mode_s; 00079 ExceptState m_mode; 00080 StringArrayProperty m_algs_v; 00081 std::set<std::string> m_algs; 00082 std::map<std::string,ReturnState> m_retCodes; 00083 00084 }; 00085 00086 // ============================================================================ 00087 #endif // GAUDISVC_EXCEPTIONSVC_H 00088 // ============================================================================ 00089 // The END 00090 // ============================================================================