Back to home page

EIC code displayed by LXR

 
 

    


Warning, file /include/DD4hep/SignalHandler.h was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).

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 /// System include files
0017 #include <csignal>
0018 
0019 /// Namespace for the AIDA detector description toolkit
0020 namespace dd4hep {
0021 
0022   /// Interruptsback interface class with argument
0023   /**
0024    *  \author  M.Frank
0025    *  \version 1.0
0026    *  \ingroup DD4HEP_CORE
0027    */
0028   class  SignalHandler  {
0029   public:
0030     /// User signal handler definition
0031     typedef bool (*signal_handler_t)(void* user_context, int signal);
0032     /// Internal implementation class
0033     class implementation;
0034       
0035   public:
0036     /// Default constructor
0037     SignalHandler();
0038     /// Default destructor
0039     virtual ~SignalHandler();
0040     /// (Re-)apply registered interrupt handlers to override potentially later registrations by other libraries
0041     void applyHandlers();
0042     /// Specialized handler for any signal
0043     bool registerHandler(int sig_num, void* param, signal_handler_t handler);
0044   };
0045 }      // End namespace dd4hep
0046 #endif // DD4HEP_DDCORE_SIGNALHANDLER_H