00001
00002 #ifndef GAUDIKERNEL_SYSTEM_H
00003 #define GAUDIKERNEL_SYSTEM_H
00004
00005
00006 #include "GaudiKernel/Kernel.h"
00007
00008 #include <string>
00009 #include <vector>
00010 #include <typeinfo>
00011
00012 #include "GaudiKernel/Timing.h"
00013 #include "GaudiKernel/ModuleInfo.h"
00014
00023 namespace System {
00025 typedef void* ImageHandle;
00027 typedef void* ProcessHandle;
00029 typedef unsigned long (*EntryPoint)(const unsigned long iid, void** ppvObject);
00031 typedef void* (*Creator)();
00033 unsigned long loadDynamicLib(const std::string& name, ImageHandle* handle);
00035 unsigned long unloadDynamicLib(ImageHandle handle);
00037 unsigned long getProcedureByName(ImageHandle handle, const std::string& name, EntryPoint* pFunction);
00039 unsigned long getProcedureByName(ImageHandle handle, const std::string& name, Creator* pFunction);
00041 unsigned long getLastError();
00043 const std::string getLastErrorString();
00045 const std::string getErrorString(unsigned long error);
00047 const std::string typeinfoName( const std::type_info& );
00049 const std::string& hostName();
00051 const std::string& accountName();
00053 long numCmdLineArgs();
00055 long argc();
00057 const std::vector<std::string> cmdLineArgs();
00059 char** argv();
00060 };
00061 #endif // SYSTEM_SYSTEM_H