Elements  5.8
A C++ base framework for the Euclid Software.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
ModuleInfo.h
Go to the documentation of this file.
1 
27 #ifndef ELEMENTSKERNEL_ELEMENTSKERNEL_MODULEINFO_H_
28 #define ELEMENTSKERNEL_ELEMENTSKERNEL_MODULEINFO_H_
29 
30 // STL include files
31 #include <string>
32 #include <vector>
33 #include <memory>
34 #include <dlfcn.h>
35 
36 #include <boost/filesystem/path.hpp> // for filesystem::path
37 
38 // Framework include files
39 #include "ElementsKernel/System.h" // LIB_PREFIX, LIB_EXTENSION
40 #include "ElementsKernel/Export.h" // ELEMENTS_API
41 
42 namespace Elements {
43 namespace System {
44 
46 public:
47  ModuleInfo();
48  explicit ModuleInfo(void *);
49  const std::string name() const;
50  const std::string libraryName() const;
51  const void* addresse() const;
52  operator const Dl_info&() const;
53  bool isEmpty() const;
54 private:
56 };
57 
58 enum class ModuleType {
60 };
61 
83 
84 } // namespace System
85 } // namespace Elements
86 
87 #endif // ELEMENTSKERNEL_ELEMENTSKERNEL_MODULEINFO_H_
88 
ELEMENTS_API ModuleType moduleType()
Get type of the module.
Definition: ModuleInfo.cpp:125
std::unique_ptr< Dl_info > m_dlinfo
Definition: ModuleInfo.h:55
ELEMENTS_API void setModuleHandle(ImageHandle handle)
Attach module handle.
Definition: ModuleInfo.cpp:150
ELEMENTS_API const std::vector< std::string > linkedModules()
Vector of names of linked modules.
Definition: ModuleInfo.cpp:236
STL class.
defines the macros to be used for explicit export of the symbols
ELEMENTS_API const std::string & moduleNameFull()
Get the full name of the (executable/DLL) file.
Definition: ModuleInfo.cpp:108
ELEMENTS_API std::vector< boost::filesystem::path > linkedModulePaths()
Definition: ModuleInfo.cpp:210
void * ImageHandle
Definition of an image handle.
Definition: System.h:118
ELEMENTS_API ProcessHandle processHandle()
Handle to running process.
Definition: ModuleInfo.cpp:144
This file is intended to iron out all the differences between systems (currently Linux and MacOSX) ...
boost::filesystem::path path
Definition: DataSyncUtils.h:33
#define ELEMENTS_API
Dummy definitions for the backward compatibility mode.
Definition: Export.h:74
ELEMENTS_API const std::string & exeName()
Name of the executable file running.
Definition: ModuleInfo.cpp:186
ELEMENTS_API ImageHandle moduleHandle()
Handle to currently executed module.
Definition: ModuleInfo.cpp:154
ELEMENTS_API const std::string & moduleName()
Get the name of the (executable/DLL) file without file-type.
Definition: ModuleInfo.cpp:96
ELEMENTS_API boost::filesystem::path getExecutablePath()
Get the full executable path.
Definition: ModuleInfo.cpp:248
ELEMENTS_API ImageHandle exeHandle()
Handle to the executable file running.
Definition: ModuleInfo.cpp:166
void * ProcessHandle
Definition of the process handle.
Definition: System.h:120