Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-06-20 08:10:37

0001 //==========================================================================
0002 //  AIDA Detector description implementation 
0003 //--------------------------------------------------------------------------
0004 // Copyright (C) Organisation europeenne pour la Recherche nucleaire (CERN)
0005 // All rights reserved.
0006 //
0007 // For the licensing terms see $DD4hepINSTALL/LICENSE.
0008 // For the list of contributors see $DD4hepINSTALL/doc/CREDITS.
0009 //
0010 // Author     : M.Frank
0011 //
0012 //==========================================================================
0013 #ifndef DD4HEP_DDCORE_SIGNALHANDLER_H
0014 #define DD4HEP_DDCORE_SIGNALHANDLER_H
0015 
0016 /// Namespace for the AIDA detector description toolkit
0017 namespace dd4hep {
0018 
0019   /// Interruptsback interface class with argument
0020   /**
0021    *  \author  M.Frank
0022    *  \version 1.0
0023    *  \ingroup DD4HEP_CORE
0024    */
0025   class  SignalHandler  {
0026   public:
0027     /// User signal handler definition
0028     typedef bool (*signal_handler_t)(void* user_context, int signal);
0029     /// Internal implementation class
0030     class implementation;
0031       
0032   public:
0033     /// Default constructor
0034     SignalHandler();
0035     /// Default destructor
0036     virtual ~SignalHandler();
0037     /// (Re-)apply registered interrupt handlers to override potentially later registrations by other libraries
0038     void applyHandlers();
0039     /// Specialized handler for any signal
0040     bool registerHandler(int sig_num, void* param, signal_handler_t handler);
0041   };
0042 }      // End namespace dd4hep
0043 #endif // DD4HEP_DDCORE_SIGNALHANDLER_H