00001 // $Id: IExceptionSvc.h,v 1.3 2007/05/24 14:39:11 hmd Exp $ 00002 // ============================================================================ 00003 // CVS tag $Name: GAUDI_v20r4-pre $, version $Revision: 1.3 $ 00004 // ============================================================================ 00005 #ifndef GAUDIKERNEL_IEXCEPTIONSVC_H 00006 #define GAUDIKERNEL_IEXCEPTIONSVC_H 00007 // ============================================================================ 00008 // Include files 00009 // ============================================================================ 00010 // GaudiKernel 00011 // ============================================================================ 00012 #include "GaudiKernel/IInterface.h" 00013 #include "GaudiKernel/GaudiException.h" 00014 // ============================================================================ 00015 // Forard declarations 00016 // ============================================================================ 00017 class INamedInterface ; 00018 // ============================================================================ 00026 // ============================================================================ 00027 class IExceptionSvc : virtual public IInterface 00028 { 00029 public: 00031 virtual StatusCode handle 00032 ( const INamedInterface& o , 00033 const GaudiException& e ) const = 0 ; 00034 00035 virtual StatusCode handle 00036 ( const INamedInterface& o , 00037 const std::exception & e ) const = 0 ; 00038 00039 virtual StatusCode handle 00040 ( const INamedInterface& o ) const = 0 ; 00041 00042 virtual StatusCode handleErr 00043 ( const INamedInterface& o , 00044 const StatusCode& s ) const = 0 ; 00045 public: 00046 // The unique interface indetifier 00047 static const InterfaceID& interfaceID(); 00048 protected : 00049 // virtual and proteted destructor 00050 virtual ~IExceptionSvc() ; 00051 } ; 00052 // ============================================================================ 00053 00054 00055 // ============================================================================ 00056 #endif // GAUDIKERNEL_IEXCEPTIONSVC_H 00057 // ============================================================================ 00058 // The END 00059 // ============================================================================