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