Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 09:57:41

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 //====================================================================
0012 //  ModuleInfo.h
0013 //--------------------------------------------------------------------
0014 //
0015 //  Package    : System (The LHCb System service)
0016 //
0017 //  Description: Definition of Systems internals
0018 //
0019 //  Author     : M.Frank
0020 //  Created    : 13/1/99
0021 //  Changes    :
0022 //====================================================================
0023 #ifndef GAUDIKERNEL_MODULEINFO_H
0024 #define GAUDIKERNEL_MODULEINFO_H
0025 
0026 // Framework include files
0027 #include "GaudiKernel/Kernel.h"
0028 // STL include files
0029 #include <string>
0030 #include <vector>
0031 
0032 /** ModuleInfo: OS specific details to access at run-time the module
0033     configuration of the process.
0034 
0035     M.Frank
0036 */
0037 namespace System {
0038   enum ModuleType { UNKNOWN, SHAREDLIB, EXECUTABLE };
0039   /// Definition of an image handle
0040   typedef void* ImageHandle;
0041   /// Definition of the process handle
0042   typedef void* ProcessHandle;
0043   /// Get the name of the (executable/DLL) file without file-type
0044   GAUDI_API const std::string& moduleName();
0045   /// Get the full name of the (executable/DLL) file
0046   GAUDI_API const std::string& moduleNameFull();
0047   /// Get type of the module
0048   GAUDI_API ModuleType moduleType();
0049   /// Handle to running process
0050   GAUDI_API ProcessHandle processHandle();
0051   /// Handle to currently executed module
0052   GAUDI_API ImageHandle moduleHandle();
0053   /// Handle to the executable file running
0054   GAUDI_API ImageHandle exeHandle();
0055   /// Name of the executable file running
0056   GAUDI_API const std::string& exeName();
0057   /// Vector of names of linked modules
0058   GAUDI_API const std::vector<std::string> linkedModules();
0059   /// Attach module handle
0060   GAUDI_API void setModuleHandle( ImageHandle handle );
0061 } // namespace System
0062 #endif // GAUDIKERNEL_MODULEINFO_H