Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-02-21 10:00:33

0001 /***********************************************************************************\
0002 * (c) Copyright 1998-2019 CERN for the benefit of the LHCb and ATLAS collaborations *
0003 *                                                                                   *
0004 * This software is distributed under the terms of the Apache version 2 licence,     *
0005 * copied verbatim in the file "LICENSE".                                            *
0006 *                                                                                   *
0007 * In applying this licence, CERN does not waive the privileges and immunities       *
0008 * granted to it by virtue of its status as an Intergovernmental Organization        *
0009 * or submit itself to any jurisdiction.                                             *
0010 \***********************************************************************************/
0011 #ifndef GAUDIKERNEL_MODULEINCIDENT_H
0012 #define GAUDIKERNEL_MODULEINCIDENT_H
0013 
0014 // Include files
0015 #include "GaudiKernel/Incident.h"
0016 #include <string>
0017 
0018 /**
0019  * @class ModuleIncident
0020  * @brief base class for Module-related incident
0021  * @author P. Calafiura
0022  */
0023 class ModuleIncident : public Incident {
0024 protected:
0025   /// @name protected structors
0026   //@{
0027   ModuleIncident( std::string source, // Source(service or alg) name)
0028                   std::string type,   // Type (load, unload, ...)
0029                   std::string module  // module(DLL) in question
0030                   )
0031       : Incident( std::move( source ), std::move( type ) ), m_module( std::move( module ) ) {}
0032   virtual ~ModuleIncident() = default;
0033   //@}
0034 
0035 public:
0036   /// @name Accessors
0037   //@{
0038   using Incident::source;
0039   using Incident::type;
0040   /// the model (DLL) being worked on
0041   const std::string& module() const { return m_module; }
0042   //@}
0043 private:
0044   /// the model (DLL) being worked on
0045   std::string m_module;
0046 };
0047 
0048 /**
0049  * @class ModuleLoadedIncident
0050  * @brief fired when a module (DLL) is loaded
0051  * @author P. Calafiura
0052  */
0053 class ModuleLoadedIncident : public ModuleIncident {
0054 public:
0055   static std::string TYPE() { return "ModuleLoaded"; }
0056   ModuleLoadedIncident( std::string source, // Source(service or alg) name)
0057                         std::string module  // module(DLL) in question
0058                         )
0059       : ModuleIncident( std::move( source ), TYPE(), std::move( module ) ) {}
0060 };
0061 
0062 #endif // GAUDIKERNEL_MODULEINCIDENT_H