The Gaudi Framework  master (01b473db)
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
System Namespace Reference

Note: OS specific details for environment resolution. More...

Namespaces

 Linux
 Namespace holding Linux specific functions.
 
 MacOS
 Namespace holding MacOS specific functions.
 

Classes

struct  IO_COUNTERS
 Process I/O Counters NtQueryInformationProcess using ProcessIoCounters. More...
 
struct  KERNEL_USER_TIMES
 Process/Thread System and User Time NtQueryInformationProcess using ProcessTimes NtQueryInformationThread using ThreadTimes. More...
 
class  PathResolver
 
struct  POOLED_USAGE_AND_LIMITS
 Process Pooled Quota Usage and Limits NtQueryInformationProcess using ProcessPooledUsageAndLimits. More...
 
struct  PROCESS_BASIC_INFORMATION
 
class  ProcessDescriptor
 
class  ProcessTime
 Simple class to hold the time information of a process. More...
 
struct  QUOTA_LIMITS
 Process Quotas NtQueryInformationProcess using ProcessQuotaLimits NtQueryInformationProcess using ProcessPooledQuotaLimits NtSetInformationProcess using ProcessQuotaLimits. More...
 
struct  VM_COUNTERS
 Process Virtual Memory Counters NtQueryInformationProcess using ProcessVmCounters. More...
 

Typedefs

typedef void * ImageHandle
 Definition of an image handle. More...
 
typedef void * ProcessHandle
 Definition of the process handle. More...
 
typedef unsigned long(* EntryPoint) (const unsigned long iid, void **ppvObject)
 Definition of the "generic" DLL entry point function. More...
 
typedef void *(* Creator) ()
 Definition of the "generic" DLL entry point function. More...
 
typedef void * ThreadHandle
 A Thread handle. More...
 
typedef struct _PEB * PPEB
 Basic Process Information NtQueryInformationProcess using ProcessBasicInfo. More...
 

Enumerations

enum  MemoryUnit {
  Byte, kByte, MByte, GByte,
  TByte, PByte, EByte
}
 Unit of memory. More...
 
enum  ModuleType { UNKNOWN, SHAREDLIB, EXECUTABLE }
 
enum  InfoType {
  NoFetch, RemainTime, Times, ProcessBasics,
  PriorityBoost, Memory, Quota, System,
  Modules, IO
}
 Enumeration for fetching information. More...
 
enum  TimeType {
  Year, Month, Day, Hour,
  Min, Sec, milliSec, microSec,
  nanoSec, Native
}
 Time type for conversion. More...
 
enum  PR_file_type { PR_regular_file, PR_directory }
 
enum  PR_search_type { PR_local, PR_recursive }
 
enum  ProcessInfoCommand {
  ProcessBasicInformation, ProcessQuotaLimits, ProcessIoCounters, ProcessVmCounters,
  ProcessTimes, ProcessBasePriority, ProcessRaisePriority, ProcessDebugPort,
  ProcessExceptionPort, ProcessAccessToken, ProcessLdtInformation, ProcessLdtSize,
  ProcessDefaultHardErrorMode, ProcessIoPortHandlers, ProcessPooledUsageAndLimits, ProcessWorkingSetWatch,
  ProcessUserModeIOPL, ProcessEnableAlignmentFaultFixup, ProcessPriorityClass, ProcessWx86Information,
  ProcessHandleCount, ProcessAffinityMask, ProcessPriorityBoost, MaxProcessInfoClass,
  ProcessEllapsedTime
}
 

Functions

GAUDI_API std::string homeDirectory ()
 
GAUDI_API std::string tempDirectory ()
 
GAUDI_API StatusCode resolveEnv (const std::string &var, std::string &res, int recusions=124)
 
GAUDI_API long adjustMemory (MemoryUnit typ, long value)
 Convert time from kByte to requested representation (Experts only) More...
 
GAUDI_API long procID ()
 Basic Process Information: Process ID. More...
 
GAUDI_API long parentID (InfoType fetch=ProcessBasics, long pid=-1)
 Basic Process Information: Parent's process ID. More...
 
GAUDI_API long affinityMask (InfoType fetch=ProcessBasics, long pid=-1)
 Basic Process Information: Affinity mask. More...
 
GAUDI_API long exitStatus (InfoType fetch=ProcessBasics, long pid=-1)
 Basic Process Information: Exit status (does not really make sense for the running process, but for others!) More...
 
GAUDI_API long basePriority (InfoType fetch=ProcessBasics, long pid=-1)
 Basic Process Information: Base priority. More...
 
GAUDI_API long priorityBoost (InfoType fetch=PriorityBoost, long pid=-1)
 Basic Process Information: priority boost. More...
 
GAUDI_API long numPageFault (InfoType fetch=Memory, long pid=-1)
 Basic Process Information: Number of page faults. More...
 
GAUDI_API long pagefileUsage (MemoryUnit unit=kByte, InfoType fetch=Memory, long pid=-1)
 Basic Process Information: Current page file usage. More...
 
GAUDI_API long pagefileUsagePeak (MemoryUnit unit=kByte, InfoType fetch=Memory, long pid=-1)
 Basic Process Information: Peak usage of page file. More...
 
GAUDI_API long pagefileUsageLimit (MemoryUnit unit=kByte, InfoType fetch=Quota, long pid=-1)
 Basic Process Information: Peak usage of page file. More...
 
GAUDI_API long nonPagedMemory (MemoryUnit unit=kByte, InfoType fetch=Memory, long pid=-1)
 Basic Process Information: Current usage of non paged memory. More...
 
GAUDI_API long nonPagedMemoryPeak (MemoryUnit unit=kByte, InfoType fetch=Memory, long pid=-1)
 Basic Process Information: Peak usage of non paged memory. More...
 
GAUDI_API long nonPagedMemoryLimit (MemoryUnit unit=kByte, InfoType fetch=Quota, long pid=-1)
 System Process Limits: Maximum amount of non-paged memory this process is allowed to use. More...
 
GAUDI_API long pagedMemory (MemoryUnit unit=kByte, InfoType fetch=Memory, long pid=-1)
 Basic Process Information: Amount of paged memory currently occupied by the process 'pid'. More...
 
GAUDI_API long pagedMemoryPeak (MemoryUnit unit=kByte, InfoType fetch=Memory, long pid=-1)
 Basic Process Information: Maximum of paged memory occupied by the process 'pid'. More...
 
GAUDI_API long pagedMemoryLimit (MemoryUnit unit=kByte, InfoType fetch=Quota, long pid=-1)
 Basic Process Information: Amount of paged memory that can be occupied by the process 'pid'. More...
 
GAUDI_API long minMemoryLimit (MemoryUnit unit=kByte, InfoType fetch=Quota, long pid=-1)
 System Process Limits: Minimum amount of virtual memory this process may use. More...
 
GAUDI_API long maxMemoryLimit (MemoryUnit unit=kByte, InfoType fetch=Quota, long pid=-1)
 System Process Limits: Maximum amount of virtual memory this process is allowed to use. More...
 
GAUDI_API long mappedMemory (MemoryUnit unit=kByte, InfoType fetch=Memory, long pid=-1)
 Basic Process Information: priority boost. More...
 
GAUDI_API long mappedMemoryPeak (MemoryUnit unit=kByte, InfoType fetch=Memory, long pid=-1)
 Basic Process Information: priority boost. More...
 
GAUDI_API long virtualMemory (MemoryUnit unit=kByte, InfoType fetch=Memory, long pid=-1)
 Basic Process Information: priority boost. More...
 
GAUDI_API long virtualMemoryPeak (MemoryUnit unit=kByte, InfoType fetch=Memory, long pid=-1)
 Basic Process Information: priority boost. More...
 
GAUDI_API long virtualMemoryLimit (MemoryUnit unit=kByte, InfoType fetch=Quota, long pid=-1)
 System Process Limits: Maximum amount of the page file this process is allowed to use. More...
 
GAUDI_API const std::string & moduleName ()
 Get the name of the (executable/DLL) file without file-type. More...
 
GAUDI_API const std::string & moduleNameFull ()
 Get the full name of the (executable/DLL) file. More...
 
GAUDI_API ModuleType moduleType ()
 Get type of the module. More...
 
GAUDI_API ProcessHandle processHandle ()
 Handle to running process. More...
 
GAUDI_API ImageHandle moduleHandle ()
 Handle to currently executed module. More...
 
GAUDI_API ImageHandle exeHandle ()
 Handle to the executable file running. More...
 
GAUDI_API const std::string & exeName ()
 Name of the executable file running. More...
 
GAUDI_API const std::vector< std::string > linkedModules ()
 Vector of names of linked modules. More...
 
GAUDI_API void setModuleHandle (ImageHandle handle)
 Attach module handle. More...
 
GAUDI_API std::string PathResolverFindXMLFile (const std::string &logical_file_name)
 
GAUDI_API std::string PathResolverFindDataFile (const std::string &logical_file_name)
 
GAUDI_API unsigned long loadDynamicLib (const std::string &name, ImageHandle *handle)
 Load dynamic link library. More...
 
GAUDI_API unsigned long unloadDynamicLib (ImageHandle handle)
 unload dynamic link library More...
 
GAUDI_API unsigned long getProcedureByName (ImageHandle handle, const std::string &name, EntryPoint *pFunction)
 Get a specific function defined in the DLL. More...
 
GAUDI_API unsigned long getProcedureByName (ImageHandle handle, const std::string &name, Creator *pFunction)
 Get a specific function defined in the DLL. More...
 
GAUDI_API unsigned long getLastError ()
 Get last system known error. More...
 
GAUDI_API const std::string getLastErrorString ()
 Get last system error as string. More...
 
GAUDI_API const std::string getErrorString (unsigned long error)
 Retrieve error code as string for a given error. More...
 
GAUDI_API const std::string typeinfoName (const std::type_info &)
 Get platform independent information about the class type. More...
 
GAUDI_API const std::string typeinfoName (const char *)
 
GAUDI_API const std::string & hostName ()
 Host name. More...
 
GAUDI_API const std::string & osName ()
 OS name. More...
 
GAUDI_API const std::string & osVersion ()
 OS version. More...
 
GAUDI_API const std::string & machineType ()
 Machine type. More...
 
GAUDI_API int instructionsetLevel ()
 Instruction Set "Level". More...
 
GAUDI_API const std::string & accountName ()
 User login name. More...
 
GAUDI_API long numCmdLineArgs ()
 Number of arguments passed to the commandline. More...
 
GAUDI_API long argc ()
 Number of arguments passed to the commandline (==numCmdLineArgs()); just to match argv call... More...
 
GAUDI_API const std::vector< std::string > cmdLineArgs ()
 Command line arguments including executable name as arg[0] as vector of strings. More...
 
GAUDI_API char ** argv ()
 char** command line arguments including executable name as arg[0]; You may not modify them! More...
 
GAUDI_API std::string getEnv (const char *var)
 get a particular environment variable (returning "UNKNOWN" if not set) More...
 
GAUDI_API bool getEnv (const char *var, std::string &value)
 get a particular environment variable, storing the value in the passed string if the variable is set. More...
 
bool getEnv (const std::string &var, std::string &value)
 
GAUDI_API std::vector< std::string > getEnv ()
 get all environment variables More...
 
GAUDI_API int setEnv (const std::string &name, const std::string &value, int overwrite=1)
 Set an environment variables. More...
 
GAUDI_API bool isEnvSet (const char *var)
 Check if an environment variable is set or not. More...
 
ThreadHandle threadSelf ()
 thread handle "accessor" More...
 
GAUDI_API int backTrace (void **addresses, const int depth)
 
GAUDI_API bool backTrace (std::string &btrace, const int depth, const int offset=0)
 
GAUDI_API bool getStackLevel (void *addresses, void *&addr, std::string &fnc, std::string &lib)
 
GAUDI_API long long adjustTime (TimeType typ, long long timevalue)
 Convert time from OS native time to requested representation (Experts only) More...
 
template<TimeType T>
long long adjustTime (long long timevalue)
 Convert the time from OS native time to requested representation (Experts only) More...
 
GAUDI_API long long ellapsedTime (TimeType typ=milliSec, InfoType fetch=Times, long pid=-1)
 Elapsed time since start of process in milliseconds. More...
 
GAUDI_API long long kernelTime (TimeType typ=milliSec, InfoType fetch=Times, long pid=-1)
 CPU kernel mode time of process in milliseconds. More...
 
GAUDI_API long long userTime (TimeType typ=milliSec, InfoType fetch=Times, long pid=-1)
 CPU user mode time of process in milliseconds. More...
 
GAUDI_API long long cpuTime (TimeType typ=milliSec, InfoType fetch=Times, long pid=-1)
 Consumed CPU time of process in milliseconds. More...
 
GAUDI_API long long remainingTime (TimeType typ=milliSec, InfoType fetch=Quota, long pid=-1)
 Maximum processing time left for this process. More...
 
GAUDI_API long long creationTime (TimeType typ=milliSec, InfoType fetch=Times, long pid=-1)
 Process Creation time. More...
 
GAUDI_API long long systemStart (TimeType typ=Sec)
 Maximum processing time left for this process. More...
 
GAUDI_API long long upTime (TimeType typ=Hour)
 Maximum processing time left for this process. More...
 
template<TimeType T>
GAUDI_API long long currentTime ()
 Retrieve absolute system time. More...
 
GAUDI_API long long currentTime (TimeType typ=milliSec)
 Get current time in specificed units. More...
 
GAUDI_API long long tickCount ()
 Retrieve the number of ticks since system startup. More...
 
GAUDI_API ProcessTime getProcessTime (long pid=-1)
 Retrieve the process time data for a process. More...
 
template<>
long long adjustTime< Year > (long long t)
 
template<>
long long adjustTime< Day > (long long t)
 
template<>
long long adjustTime< Hour > (long long t)
 
template<>
long long adjustTime< Min > (long long t)
 
template<>
long long adjustTime< Sec > (long long t)
 
template<>
long long adjustTime< milliSec > (long long t)
 
template<>
long long adjustTime< microSec > (long long t)
 
template<>
long long adjustTime< nanoSec > (long long t)
 
template<>
long long adjustTime< Month > (long long t)
 
template<>
long long adjustTime< Native > (long long t)
 
template<TimeType T>
long long currentTime ()
 Retrieve absolute system time. More...
 
template long long currentTime< Year > ()
 
template long long currentTime< Month > ()
 
template long long currentTime< Day > ()
 
template long long currentTime< Hour > ()
 
template long long currentTime< Min > ()
 
template long long currentTime< Sec > ()
 
template long long currentTime< milliSec > ()
 
template long long currentTime< microSec > ()
 
template long long currentTime< nanoSec > ()
 
template long long currentTime< Native > ()
 
ProcessDescriptorgetProcess ()
 Retrieve Process structure. More...
 

Detailed Description

Note: OS specific details for environment resolution.

Note: OS specific details for process timing.

Note: OS specific details as well as Gaudi details may not occur in this definition file, because this header is the used by both, the OS specific implementations and the gaudi specific implementation.

ModuleInfo: OS specific details to access at run-time the module configuration of the process.

Note: OS specific details for memory usage.

Entrypoints:

Author
: M.Frank
Version
: 1.0

Entrypoints:

  • basePriority Base priority
  • procID Process ID
  • parentID Parent's process ID
  • affinityMask Affinity mask
  • exitStatus Exit status
  • priorityBoost Priority boost
  • numPageFault Number of page faults
  • pagefileUsage Current page file usage
  • pagefileUsagePeak Peak usage of page file
  • nonPagedMemory Current usage of non paged memory
  • nonPagedMemoryPeak Peak usage of non paged memory
  • nonPagedMemoryLimit Maximum amount of non-paged memory this process is allowed to use
  • pagedMemory Amount of paged memory currently occupied
  • pagedMemoryPeak Maximum of paged memory occupied by the process
  • pagedMemoryLimit paged memory that can be occupied by the process
  • memorySize Size of currently occupied memory
  • memorySizePeak Maximum memory occupied by the process
  • memoryLimit Amount of memory that can be occupied by the process
  • virtualMemorySize Virtual memory size currenly occupied
  • peakVirtualMemorySize Maximum amount of virtual memory occupied
  • virtualMemoryLimit Amount of virtual memory that can be occupied by the process
  • minMemoryLimit Minimum amount of virtual memory this process may use
  • maxMemoryLimit Maximum amount of virtual memory this process is allowed to use
  • mappedMemorySize Currenly mapped virtual memory size
  • mappedMemorySizePeak Peak mapped virtual memory size
Author
: M.Frank
Version
: 1.0

M.Frank

Since e.g. IID is defined in both, this would lead automatically to complete comilation failures.....

Author
M.Frank

Entrypoints:

  • remainingTime returns the time the process could still execute
  • ellapsedTime: returns elapsed time since program start
  • kernelTime: returns the amount of time the process has spent in kernel mode
  • userTime: returns the amount of time the process has spent in user mode
  • cpuTime: returns kernel+user time

On Unix time is expressed as the amount of time that has elapsed since midnight on January 1, 1970 at Greenwich, England.

History :

+---------+----------------------------------------------+--------+
|    Date |                 Comment                      | Who    |
+---------+----------------------------------------------+--------+
| 11/11/00| Initial version.                             | MF     |
+---------+----------------------------------------------+--------+
Author
: M.Frank
Version
: 1.0

Typedef Documentation

◆ Creator

typedef void*( * System::Creator) ()

Definition of the "generic" DLL entry point function.

Definition at line 43 of file System.h.

◆ EntryPoint

typedef unsigned long( * System::EntryPoint) (const unsigned long iid, void **ppvObject)

Definition of the "generic" DLL entry point function.

Definition at line 41 of file System.h.

◆ ImageHandle

typedef void * System::ImageHandle

Definition of an image handle.

Definition at line 25 of file ModuleInfo.h.

◆ PPEB

typedef struct _PEB* System::PPEB

Basic Process Information NtQueryInformationProcess using ProcessBasicInfo.

Definition at line 26 of file ProcessDescriptor.h.

◆ ProcessHandle

typedef void * System::ProcessHandle

Definition of the process handle.

Definition at line 27 of file ModuleInfo.h.

◆ ThreadHandle

typedef void* System::ThreadHandle

A Thread handle.

Definition at line 114 of file System.h.

Enumeration Type Documentation

◆ InfoType

Enumeration for fetching information.

Enumerator
NoFetch 
RemainTime 
Times 
ProcessBasics 
PriorityBoost 
Memory 
Quota 
System 
Modules 
IO 

Definition at line 15 of file SystemBase.h.

◆ MemoryUnit

Unit of memory.

Enumerator
Byte 
kByte 
MByte 
GByte 
TByte 
PByte 
EByte 

Definition at line 50 of file Memory.h.

◆ ModuleType

Enumerator
UNKNOWN 
SHAREDLIB 
EXECUTABLE 

Definition at line 23 of file ModuleInfo.h.

◆ PR_file_type

Enumerator
PR_regular_file 
PR_directory 

Definition at line 27 of file PathResolver.cpp.

◆ PR_search_type

Enumerator
PR_local 
PR_recursive 

Definition at line 29 of file PathResolver.cpp.

◆ ProcessInfoCommand

Enumerator
ProcessBasicInformation 
ProcessQuotaLimits 
ProcessIoCounters 
ProcessVmCounters 
ProcessTimes 
ProcessBasePriority 
ProcessRaisePriority 
ProcessDebugPort 
ProcessExceptionPort 
ProcessAccessToken 
ProcessLdtInformation 
ProcessLdtSize 
ProcessDefaultHardErrorMode 
ProcessIoPortHandlers 
ProcessPooledUsageAndLimits 
ProcessWorkingSetWatch 
ProcessUserModeIOPL 
ProcessEnableAlignmentFaultFixup 
ProcessPriorityClass 
ProcessWx86Information 
ProcessHandleCount 
ProcessAffinityMask 
ProcessPriorityBoost 
MaxProcessInfoClass 
ProcessEllapsedTime 

Definition at line 16 of file ProcessDescriptor.cpp.

◆ TimeType

Time type for conversion.

Enumerator
Year 
Month 
Day 
Hour 
Min 
Sec 
milliSec 
microSec 
nanoSec 
Native 

Definition at line 45 of file Timing.h.

Function Documentation

◆ accountName()

const std::string & System::accountName ( )

User login name.

Definition at line 298 of file System.cpp.

298  {
299  static const std::string account = Platform::accountName();
300  return account;
301 }

◆ adjustMemory()

long System::adjustMemory ( MemoryUnit  typ,
long  value 
)

Convert time from kByte to requested representation (Experts only)

Convert requested memory value from kByte to requested value.

Definition at line 19 of file Memory.cpp.

19  {
20  if ( value != -1 ) {
21  switch ( unit ) {
22  case Byte:
23  break;
24  case kByte:
25  value = value / 1024;
26  break;
27  case MByte:
28  value = ( value / 1024 ) / 1024;
29  break;
30  case GByte:
31  value = ( ( value / 1024 ) / 1024 ) / 1024;
32  break;
33  case TByte:
34  value = ( ( ( value / 1024 ) / 1024 ) / 1024 ) / 1024;
35  break;
36  case PByte:
37  value = ( ( ( ( value / 1024 ) / 1024 ) / 1024 ) / 1024 ) / 1024;
38  break;
39  case EByte:
40  value = ( ( ( ( ( value / 1024 ) / 1024 ) / 1024 ) / 1024 ) / 1024 ) / 1024;
41  break;
42  default:
43  value = -1;
44  break;
45  }
46  }
47  return value;
48 }

◆ adjustTime() [1/2]

template<TimeType T>
long long System::adjustTime ( long long  timevalue)
inline

Convert the time from OS native time to requested representation (Experts only)

◆ adjustTime() [2/2]

long long System::adjustTime ( TimeType  typ,
long long  timevalue 
)

Convert time from OS native time to requested representation (Experts only)

unfortunately "-ansi" flag turn off the correct definition of CLK_TCK and forces it to be equal CLOCKS_PER_SEC, it is wrong!

t /= CLOCKS_PER_SEC; // needs division by clock tick unit

Definition at line 38 of file Timing.cpp.

38  {
39  if ( t != -1 ) {
41  // t /= CLK_TCK ; // needs division by clock tick unit
45 
47  switch ( typ ) {
48  case Year:
49  return adjustTime<Year>( t );
50  case Month:
51  return adjustTime<Month>( t );
52  case Day:
53  return adjustTime<Day>( t );
54  case Hour:
55  return adjustTime<Hour>( t );
56  case Min:
57  return adjustTime<Min>( t );
58  case Sec:
59  return adjustTime<Sec>( t );
60  case milliSec:
61  return adjustTime<milliSec>( t );
62  case microSec:
63  return adjustTime<microSec>( t );
64  case nanoSec:
65  return adjustTime<nanoSec>( t );
66  case Native:
67  return adjustTime<Native>( t );
68  default:
69  return t;
70  }
71  }
72  return t;
73 }

◆ adjustTime< Day >()

template<>
long long System::adjustTime< Day > ( long long  t)
inline

Definition at line 200 of file Timing.h.

200  {
201  return ( t == -1 ) ? t : t /= ( 1LL * 24 * 60 * 60 * 1000 * 1000 * 10 );
202  }

◆ adjustTime< Hour >()

template<>
long long System::adjustTime< Hour > ( long long  t)
inline

Definition at line 204 of file Timing.h.

204  {
205  return ( t == -1 ) ? t : t /= ( 1LL * 60 * 60 * 1000 * 1000 * 10 );
206  }

◆ adjustTime< microSec >()

template<>
long long System::adjustTime< microSec > ( long long  t)
inline

Definition at line 220 of file Timing.h.

220  {
221  return ( t == -1 ) ? t : t /= ( 10LL );
222  }

◆ adjustTime< milliSec >()

template<>
long long System::adjustTime< milliSec > ( long long  t)
inline

Definition at line 216 of file Timing.h.

216  {
217  return ( t == -1 ) ? t : t /= ( 1000 * 10 );
218  }

◆ adjustTime< Min >()

template<>
long long System::adjustTime< Min > ( long long  t)
inline

Definition at line 208 of file Timing.h.

208  {
209  return ( t == -1 ) ? t : t /= ( 60 * 1000 * 1000 * 10 );
210  }

◆ adjustTime< Month >()

template<>
long long System::adjustTime< Month > ( long long  t)
inline

Definition at line 228 of file Timing.h.

228  {
229  return ( t == -1 ) ? t : t /= ( 1LL * 30 * 24 * 60 * 60 * 1000 * 1000 * 10 );
230  }

◆ adjustTime< nanoSec >()

template<>
long long System::adjustTime< nanoSec > ( long long  t)
inline

Definition at line 224 of file Timing.h.

224  {
225  return ( t == -1 ) ? t : t *= 100LL;
226  }

◆ adjustTime< Native >()

template<>
long long System::adjustTime< Native > ( long long  t)
inline

Definition at line 232 of file Timing.h.

232  {
233  return t;
234  }

◆ adjustTime< Sec >()

template<>
long long System::adjustTime< Sec > ( long long  t)
inline

Definition at line 212 of file Timing.h.

212  {
213  return ( t == -1 ) ? t : t /= ( 1000 * 1000 * 10 );
214  }

◆ adjustTime< Year >()

template<>
long long System::adjustTime< Year > ( long long  t)
inline

Definition at line 196 of file Timing.h.

196  {
197  return ( t == -1 ) ? t : t /= ( 1LL * 365 * 24 * 60 * 60 * 1000 * 1000 * 10 );
198  }

◆ affinityMask()

long System::affinityMask ( InfoType  fetch = ProcessBasics,
long  pid = -1 
)

Basic Process Information: Affinity mask.

Definition at line 71 of file Memory.cpp.

71  {
72  PROCESS_BASIC_INFORMATION info;
73  if ( fetch != NoFetch && getProcess()->query( pid, ProcessBasics, &info ) ) return info.AffinityMask;
74  return 0;
75 }

◆ argc()

long System::argc ( )

Number of arguments passed to the commandline (==numCmdLineArgs()); just to match argv call...

Number of arguments passed to the commandline.

Definition at line 307 of file System.cpp.

307 { return cmdLineArgs().size(); }

◆ argv()

char ** System::argv ( )

char** command line arguments including executable name as arg[0]; You may not modify them!

Const char** command line arguments including executable name as arg[0].

Definition at line 316 of file System.cpp.

316  {
317  auto helperFunc = []( const std::vector<std::string>& args ) -> std::vector<const char*> {
318  std::vector<const char*> result;
319  std::transform( args.begin(), args.end(), std::back_inserter( result ),
320  []( const std::string& s ) { return s.c_str(); } );
321  return result;
322  };
323  static const std::vector<const char*> args = helperFunc( cmdLineArgs() );
324  // We rely here on the fact that a vector's allocation table is contiguous
325  return (char**)&( args[0] );
326 }

◆ backTrace() [1/2]

bool System::backTrace ( std::string &  btrace,
const int  depth,
const int  offset = 0 
)

Definition at line 384 of file System.cpp.

384  {
385  try {
386  // Always hide the first two levels of the stack trace (that's us)
387  const size_t totalOffset = offset + 2;
388  const size_t totalDepth = depth + totalOffset;
389 
390  std::string fnc, lib;
391 
392  std::vector<void*> addresses( totalDepth, nullptr );
393  const size_t count = System::backTrace( addresses.data(), totalDepth );
394  for ( size_t i = totalOffset; i < count; ++i ) {
395  void* addr = nullptr;
396 
397  if ( System::getStackLevel( addresses[i], addr, fnc, lib ) ) {
398  std::ostringstream ost;
399  ost << "#" << std::setw( 3 ) << std::setiosflags( std::ios::left ) << i - totalOffset + 1;
400  ost << std::hex << addr << std::dec << " " << fnc << " [" << lib << "]" << std::endl;
401  btrace += ost.str();
402  }
403  }
404  return true;
405  } catch ( const std::bad_alloc& e ) { return false; }
406 }

◆ backTrace() [2/2]

GAUDI_API int System::backTrace ( void **  addresses,
const int  depth 
)

◆ basePriority()

long System::basePriority ( InfoType  fetch = ProcessBasics,
long  pid = -1 
)

Basic Process Information: Base priority.

Definition at line 51 of file Memory.cpp.

51  {
52  PROCESS_BASIC_INFORMATION info;
53  if ( fetch != NoFetch && getProcess()->query( pid, ProcessBasics, &info ) ) return info.BasePriority;
54  return 0;
55 }

◆ cmdLineArgs()

const std::vector< std::string > System::cmdLineArgs ( )

Command line arguments including executable name as arg[0] as vector of strings.

Const char** command line arguments including executable name as arg[0].

Definition at line 310 of file System.cpp.

310  {
311  static const std::vector<std::string> args = Platform::cmdLineArgs();
312  return args;
313 }

◆ cpuTime()

long long System::cpuTime ( TimeType  typ = milliSec,
InfoType  fetch = Times,
long  pid = -1 
)

Consumed CPU time of process in milliseconds.

CPU kernel time of process in milliseconds.

Parameters
typIndicator or the unit the time will be returned.
fetchIndicator of the information to be fetched. If Fetch_None, the information will not be updated.
pidProcess ID of which the information will be returned
Returns
Requested value in the indicated units.

Definition at line 182 of file Timing.cpp.

182  {
183  long long cputime = 0;
184  KERNEL_USER_TIMES info;
185  if ( fetch != NoFetch && getProcess()->query( pid, fetch, &info ) ) {
186  cputime = adjustTime( typ, info.KernelTime + info.UserTime );
187  }
188  return cputime;
189 }

◆ creationTime()

long long System::creationTime ( TimeType  typ = milliSec,
InfoType  fetch = Times,
long  pid = -1 
)

Process Creation time.

Units of time between process creation and begin of epoche.

Parameters
typIndicator or the unit the time will be returned.
fetchIndicator of the information to be fetched. If Fetch_None, the information will not be updated.
pidProcess ID of which the information will be returned
Returns
Requested value in the indicated units.

Definition at line 130 of file Timing.cpp.

130  {
131  long long created = 0;
132  KERNEL_USER_TIMES info;
133  if ( fetch != NoFetch && getProcess()->query( pid, fetch, &info ) ) {
134  created = adjustTime( typ, info.CreateTime - UNIX_BASE_TIME );
135  }
136  return created;
137 }

◆ currentTime() [1/3]

template<TimeType T>
GAUDI_API long long System::currentTime ( )
inline

Retrieve absolute system time.

Parameters
typIndicator or the unit the time will be returned.
Returns
Requested value in the indicated units. Get current time in specificed units via template parameter (inlined)

Definition at line 238 of file Timing.h.

238  {
239  struct timeval tv;
240  ::gettimeofday( &tv, 0 );
241  return adjustTime<T>( ( tv.tv_sec * 1000000 + tv.tv_usec ) * 10 );
242  }

◆ currentTime() [2/3]

template<TimeType T>
long long System::currentTime ( )
inline

Retrieve absolute system time.

Parameters
typIndicator or the unit the time will be returned.
Returns
Requested value in the indicated units. Get current time in specificed units via template parameter (inlined)

Definition at line 238 of file Timing.h.

238  {
239  struct timeval tv;
240  ::gettimeofday( &tv, 0 );
241  return adjustTime<T>( ( tv.tv_sec * 1000000 + tv.tv_usec ) * 10 );
242  }

◆ currentTime() [3/3]

long long System::currentTime ( TimeType  typ = milliSec)

Get current time in specificed units.

Retrieve current system time.

Definition at line 86 of file Timing.cpp.

86  {
87  switch ( typ ) {
88  case Year:
89  return currentTime<Year>();
90  case Month:
91  return currentTime<Month>();
92  case Day:
93  return currentTime<Day>();
94  case Hour:
95  return currentTime<Hour>();
96  case Min:
97  return currentTime<Min>();
98  case Sec:
99  return currentTime<Sec>();
100  case milliSec:
101  return currentTime<milliSec>();
102  case microSec:
103  return currentTime<microSec>();
104  case nanoSec:
105  return currentTime<nanoSec>();
106  case Native:
107  return currentTime<Native>();
108  }
109  return currentTime<Native>();
110 }

◆ currentTime< Day >()

template long long System::currentTime< Day > ( )

◆ currentTime< Hour >()

template long long System::currentTime< Hour > ( )

◆ currentTime< microSec >()

template long long System::currentTime< microSec > ( )

◆ currentTime< milliSec >()

template long long System::currentTime< milliSec > ( )

◆ currentTime< Min >()

template long long System::currentTime< Min > ( )

◆ currentTime< Month >()

template long long System::currentTime< Month > ( )

◆ currentTime< nanoSec >()

template long long System::currentTime< nanoSec > ( )

◆ currentTime< Native >()

template long long System::currentTime< Native > ( )

◆ currentTime< Sec >()

template long long System::currentTime< Sec > ( )

◆ currentTime< Year >()

template long long System::currentTime< Year > ( )

◆ ellapsedTime()

long long System::ellapsedTime ( TimeType  typ = milliSec,
InfoType  fetch = Times,
long  pid = -1 
)

Elapsed time since start of process in milliseconds.

Ellapsed time since start of process in milliseconds.

Parameters
typIndicator or the unit the time will be returned.
timevalueTime value to be converted.
Returns
Requested value in the indicated units.

Definition at line 154 of file Timing.cpp.

154  {
155  KERNEL_USER_TIMES info;
156  long long ellapsed = currentTime( microSec ) * 10;
157  if ( getProcess()->query( pid, fetch, &info ) ) {
158  ellapsed = adjustTime( typ, ellapsed + UNIX_BASE_TIME - info.CreateTime );
159  }
160  return ellapsed;
161 }

◆ exeHandle()

System::ImageHandle System::exeHandle ( )

Handle to the executable file running.

Definition at line 102 of file ModuleInfo.cpp.

102  {
103 #if defined( __linux ) || defined( __APPLE__ )
104  // This does NOT work!
105  static Dl_info infoBuf, *info = &infoBuf;
106  if ( !info ) {
107  void* handle = ::dlopen( nullptr, RTLD_LAZY );
108  // printf("Exe handle:%X\n", handle);
109  if ( handle ) {
110  void* func = ::dlsym( handle, "main" );
111  // printf("Exe:Func handle:%X\n", func);
112  if ( func ) {
113  if ( 0 != ::dladdr( func, &infoBuf ) ) {
114  // std::cout << "All OK" << std::endl;
115  info = &infoBuf;
116  }
117  }
118  }
119  }
120  return info;
121 #elif __hpux
122  // Don't know how to solve this .....
123  return 0;
124 #endif
125  return 0;
126 }

◆ exeName()

const std::string & System::exeName ( )

Name of the executable file running.

Definition at line 128 of file ModuleInfo.cpp.

128  {
129  static std::string module( "" );
130  if ( module.length() == 0 ) {
131  char name[PATH_MAX] = { "Unknown.module" };
132  name[0] = 0;
133 #if defined( __linux ) || defined( __APPLE__ )
134  char cmd[512];
135  ::sprintf( cmd, "/proc/%d/exe", ::getpid() );
136  module = "Unknown";
137  if ( ::readlink( cmd, name, sizeof( name ) ) >= 0 ) module = name;
138 #elif __hpux
139  if ( ::realpath( ( (HMODULE*)exeHandle() )->dsc.filename, name ) ) module = name;
140 #endif
141  }
142  return module;
143 }

◆ exitStatus()

long System::exitStatus ( InfoType  fetch = ProcessBasics,
long  pid = -1 
)

Basic Process Information: Exit status (does not really make sense for the running process, but for others!)

Definition at line 78 of file Memory.cpp.

78  {
79  PROCESS_BASIC_INFORMATION info;
80  if ( fetch != NoFetch && getProcess()->query( pid, ProcessBasics, &info ) ) return info.ExitStatus;
81  return -2;
82 }

◆ getEnv() [1/4]

std::vector< std::string > System::getEnv ( )

get all environment variables

get all defined environment vars

Definition at line 356 of file System.cpp.

356  {
357 #if defined( __APPLE__ )
358  static char** environ = *_NSGetEnviron();
359 #endif
360  std::vector<std::string> vars;
361  for ( int i = 0; environ[i] != nullptr; ++i ) { vars.push_back( environ[i] ); }
362  return vars;
363 }

◆ getEnv() [2/4]

std::string System::getEnv ( const char *  var)

get a particular environment variable (returning "UNKNOWN" if not set)

get a particular env var, return "UNKNOWN" if not defined

Definition at line 329 of file System.cpp.

329  {
330  char* env;
331  if ( ( env = getenv( var ) ) != nullptr ) {
332  return env;
333  } else {
334  return "UNKNOWN";
335  }
336 }

◆ getEnv() [3/4]

bool System::getEnv ( const char *  var,
std::string &  value 
)

get a particular environment variable, storing the value in the passed string if the variable is set.

get a particular env var, storing the value in the passed string (if set)

Returns true if the variable is set, false otherwise.

Definition at line 339 of file System.cpp.

339  {
340  char* env;
341  if ( ( env = getenv( var ) ) != nullptr ) {
342  value = env;
343  return true;
344  } else {
345  return false;
346  }
347 }

◆ getEnv() [4/4]

bool System::getEnv ( const std::string &  var,
std::string &  value 
)
inline

Definition at line 96 of file System.h.

96 { return getEnv( var.c_str(), value ); }

◆ getErrorString()

const std::string System::getErrorString ( unsigned long  error)

Retrieve error code as string for a given error.

Definition at line 240 of file System.cpp.

240  {
241  std::string errString = "";
242  char* cerrString( nullptr );
243  // Remember: for linux dl* routines must be handled differently!
244  if ( error == 0xAFFEDEAD ) {
245  cerrString = ::dlerror();
246  if ( !cerrString ) cerrString = ::strerror( error );
247  if ( !cerrString ) {
248  cerrString = (char*)"Unknown error. No information found in strerror()!";
249  } else {
250  errString = std::string( cerrString );
251  }
252  errno = 0;
253  } else {
254  cerrString = ::strerror( error );
255  errString = std::string( cerrString );
256  }
257  return errString;
258 }

◆ getLastError()

unsigned long System::getLastError ( )

Get last system known error.

Retrieve last error code.

Definition at line 228 of file System.cpp.

228  {
229  // convert errno (int) to unsigned long
230  return static_cast<unsigned long>( static_cast<unsigned int>( errno ) );
231 }

◆ getLastErrorString()

const std::string System::getLastErrorString ( )

Get last system error as string.

Retrieve last error code as string.

Definition at line 234 of file System.cpp.

234  {
235  const std::string errString = getErrorString( getLastError() );
236  return errString;
237 }

◆ getProcedureByName() [1/2]

unsigned long System::getProcedureByName ( ImageHandle  handle,
const std::string &  name,
Creator pFunction 
)

Get a specific function defined in the DLL.

Definition at line 223 of file System.cpp.

223  {
224  return getProcedureByName( handle, name, (EntryPoint*)pFunction );
225 }

◆ getProcedureByName() [2/2]

unsigned long System::getProcedureByName ( ImageHandle  handle,
const std::string &  name,
EntryPoint pFunction 
)

Get a specific function defined in the DLL.

Definition at line 181 of file System.cpp.

181  {
182 #if defined( __linux )
183  *pFunction = reinterpret_cast<EntryPoint>( ::dlsym( handle, name.c_str() ) );
184  if ( !*pFunction ) {
185  errno = 0xAFFEDEAD;
186  // std::cout << "System::getProcedureByName>" << getLastErrorString() << std::endl;
187  return 0;
188  }
189  return 1;
190 #elif defined( __APPLE__ )
191  *pFunction = ( EntryPoint )::dlsym( handle, name.c_str() );
192  if ( !( *pFunction ) ) {
193  // Try with an underscore :
194  std::string sname = "_" + name;
195  *pFunction = ( EntryPoint )::dlsym( handle, sname.c_str() );
196  }
197  if ( 0 == *pFunction ) {
198  errno = 0xAFFEDEAD;
199  std::cout << "System::getProcedureByName>" << getLastErrorString() << std::endl;
200  // std::cout << "System::getProcedureByName> failure" << std::endl;
201  return 0;
202  }
203  return 1;
204 #elif __hpux
205  HMODULE* mod = (HMODULE*)handle;
206  if ( 0 != mod ) {
207  long ll1 = name.length();
208  for ( int i = 0; i < mod->numSym; i++ ) {
209  long ll2 = strlen( mod->sym[i].name );
210  if ( 0 != ::strncmp( mod->sym[i].name, name.c_str(), ( ll1 > ll2 ) ? ll1 : ll2 ) == 0 ) {
211  *pFunction = (EntryPoint)mod->sym[i].value;
212  return 1;
213  }
214  }
215  }
216  return 0;
217 #else
218  return 0;
219 #endif
220 }

◆ getProcess()

ProcessDescriptor * System::getProcess ( )
inline

Retrieve Process structure.

Definition at line 141 of file ProcessDescriptor.h.

141  {
142  static ProcessDescriptor p;
143  return &p;
144  }

◆ getProcessTime()

ProcessTime System::getProcessTime ( long  pid = -1)

Retrieve the process time data for a process.

Get the process time data for a process (by default the current) as a ProcessTime object.

Definition at line 192 of file Timing.cpp.

192  {
193  KERNEL_USER_TIMES info;
194  if ( getProcess()->query( pid, Times, &info ) ) {
195  return ProcessTime( info.KernelTime, info.UserTime, currentTime<Native>() - info.CreateTime );
196  }
197  return ProcessTime(); // return 0s in case of problems
198  }

◆ getStackLevel()

GAUDI_API bool System::getStackLevel ( void *  addresses,
void *&  addr,
std::string &  fnc,
std::string &  lib 
)

◆ homeDirectory()

std::string System::homeDirectory ( )

Definition at line 64 of file Environment.cpp.

64  {
65  // Return the user's home directory.
66  std::string home_dir = "./";
67  // Try to replace the current value with the content of several
68  // environment variables
69  System::getEnv( "home", home_dir ) || System::getEnv( "HOME", home_dir );
70  return home_dir;
71 }

◆ hostName()

const std::string & System::hostName ( )

Host name.

Definition at line 265 of file System.cpp.

265  {
266  static const std::string host = Platform::hostName();
267  return host;
268 }

◆ instructionsetLevel()

int System::instructionsetLevel ( )

Instruction Set "Level".

Definition at line 288 of file System.cpp.

288  {
289 #ifdef __x86_64
290  using namespace Gaudi;
291  return instrset_detect();
292 #else
293  return -1;
294 #endif
295 }

◆ isEnvSet()

bool System::isEnvSet ( const char *  var)

Check if an environment variable is set or not.

Definition at line 349 of file System.cpp.

349 { return getenv( var ) != nullptr; }

◆ kernelTime()

long long System::kernelTime ( TimeType  typ = milliSec,
InfoType  fetch = Times,
long  pid = -1 
)

CPU kernel mode time of process in milliseconds.

CPU kernel time of process in milliseconds.

Parameters
typIndicator or the unit the time will be returned.
fetchIndicator of the information to be fetched. If Fetch_None, the information will not be updated.
pidProcess ID of which the information will be returned
Returns
Requested value in the indicated units.

Definition at line 164 of file Timing.cpp.

164  {
165  KERNEL_USER_TIMES info;
166  long long kerneltime = 0;
167  if ( fetch != NoFetch && getProcess()->query( pid, fetch, &info ) ) {
168  kerneltime = adjustTime( typ, info.KernelTime );
169  }
170  return kerneltime;
171 }

◆ linkedModules()

const std::vector< std::string > System::linkedModules ( )

Vector of names of linked modules.

Definition at line 145 of file ModuleInfo.cpp.

145  {
146  if ( s_linkedModules.size() == 0 ) {
147 #if defined( __linux ) || defined( __APPLE__ )
148  char ff[512], cmd[1024], fname[1024], buf1[64], buf2[64], buf3[64], buf4[64];
149  ::sprintf( ff, "/proc/%d/maps", ::getpid() );
150  FILE* maps = ::fopen( ff, "r" );
151  while ( ::fgets( cmd, sizeof( cmd ), maps ) ) {
152  int len;
153  sscanf( cmd, "%s %s %s %s %d %s", buf1, buf2, buf3, buf4, &len, fname );
154  if ( len > 0 && strncmp( buf2, "r-xp", strlen( "r-xp" ) ) == 0 ) { s_linkedModules.push_back( fname ); }
155  }
156  ::fclose( maps );
157 #endif
158  }
159  return s_linkedModules;
160 }

◆ loadDynamicLib()

unsigned long System::loadDynamicLib ( const std::string &  name,
ImageHandle handle 
)

Load dynamic link library.

Definition at line 115 of file System.cpp.

115  {
116  unsigned long res = 0;
117  // if name is empty, just load it
118  if ( name.length() == 0 ) {
119  res = loadWithoutEnvironment( name, handle );
120  } else {
121  // If the name is a logical name (environment variable), the try
122  // to load the corresponding library from there.
123  std::string imgName;
124  if ( getEnv( name, imgName ) ) {
125  res = loadWithoutEnvironment( imgName, handle );
126  } else {
127  // build the dll name
128  std::string dllName = name;
129 // Add a possible "lib" prefix to the name on unix platforms. But only if
130 // it's not an absolute path name.
131 #if defined( __linux ) || defined( __APPLE__ )
132  if ( ( dllName.find( '/' ) == std::string::npos ) && ( dllName.compare( 0, 3, "lib" ) != 0 ) ) {
133  dllName = "lib" + dllName;
134  }
135 #endif // unix
136  // Now try loading the library with all possible suffixes supported by the
137  // platform.
138  for ( const char* suffix : SHLIB_SUFFIXES ) {
139  // Add the suffix if necessary.
140  std::string libName = dllName;
141  const size_t len = strlen( suffix );
142  if ( dllName.compare( dllName.length() - len, len, suffix ) != 0 ) { libName += suffix; }
143  // Try to load the library.
144  res = loadWithoutEnvironment( libName, handle );
145  // If the load succeeded, stop here.
146  if ( res == 1 ) { break; }
147  }
148  }
149  if ( res != 1 ) {
150 #if defined( __linux ) || defined( __APPLE__ )
151  errno = 0xAFFEDEAD;
152 #endif
153  // std::cout << "System::loadDynamicLib>" << getLastErrorString() << std::endl;
154  }
155  }
156  return res;
157 }

◆ machineType()

const std::string & System::machineType ( )

Machine type.

Definition at line 283 of file System.cpp.

283  {
284  static const std::string mach = Platform::machineType();
285  return mach;
286 }

◆ mappedMemory()

long System::mappedMemory ( MemoryUnit  unit = kByte,
InfoType  fetch = Memory,
long  pid = -1 
)

Basic Process Information: priority boost.

Definition at line 172 of file Memory.cpp.

172  {
173  VM_COUNTERS info;
174  if ( fetch != NoFetch && getProcess()->query( pid, fetch, &info ) ) return adjustMemory( unit, info.WorkingSetSize );
175  return -2;
176 }

◆ mappedMemoryPeak()

long System::mappedMemoryPeak ( MemoryUnit  unit = kByte,
InfoType  fetch = Memory,
long  pid = -1 
)

Basic Process Information: priority boost.

Definition at line 179 of file Memory.cpp.

179  {
180  VM_COUNTERS info;
181  if ( fetch != NoFetch && getProcess()->query( pid, fetch, &info ) )
182  return adjustMemory( unit, info.PeakWorkingSetSize );
183  return -2;
184 }

◆ maxMemoryLimit()

long System::maxMemoryLimit ( MemoryUnit  unit = kByte,
InfoType  fetch = Quota,
long  pid = -1 
)

System Process Limits: Maximum amount of virtual memory this process is allowed to use.

Definition at line 195 of file Memory.cpp.

195  {
196  QUOTA_LIMITS quota;
197  if ( fetch != NoFetch && getProcess()->query( pid, fetch, &quota ) )
198  return adjustMemory( unit, quota.MaximumWorkingSetSize );
199  return 0;
200 }

◆ minMemoryLimit()

long System::minMemoryLimit ( MemoryUnit  unit = kByte,
InfoType  fetch = Quota,
long  pid = -1 
)

System Process Limits: Minimum amount of virtual memory this process may use.

Definition at line 187 of file Memory.cpp.

187  {
188  QUOTA_LIMITS quota;
189  if ( fetch != NoFetch && getProcess()->query( pid, fetch, &quota ) )
190  return adjustMemory( unit, quota.MinimumWorkingSetSize );
191  return 0;
192 }

◆ moduleHandle()

System::ImageHandle System::moduleHandle ( )

Handle to currently executed module.

Definition at line 88 of file ModuleInfo.cpp.

88  {
89  if ( !ModuleHandle ) {
90  if ( processHandle() ) {
91 #if defined( __linux ) || defined( __APPLE__ )
92  static Dl_info info;
93  if ( ::dladdr( reinterpret_cast<void*>( System::moduleHandle ), &info ) ) return &info;
94 #elif __hpux
95  return 0; // Don't know how to solve this .....
96 #endif
97  }
98  }
99  return ModuleHandle;
100 }

◆ moduleName()

const std::string & System::moduleName ( )

Get the name of the (executable/DLL) file without file-type.

Retrieve base name of module.

Definition at line 28 of file ModuleInfo.cpp.

28  {
29  static std::string module( "" );
30  if ( module == "" ) {
31  if ( processHandle() && moduleHandle() ) {
32 #if defined( __linux ) || defined( __APPLE__ )
33  std::string mod = ::basename( (char*)( (Dl_info*)moduleHandle() )->dli_fname );
34 #elif __hpux
35  std::string mod = ::basename( ( (HMODULE*)moduleHandle() )->dsc.filename );
36 #endif
37  module = mod.substr( 0, mod.rfind( '.' ) );
38  }
39  }
40  return module;
41 }

◆ moduleNameFull()

const std::string & System::moduleNameFull ( )

Get the full name of the (executable/DLL) file.

Retrieve full name of module.

Definition at line 44 of file ModuleInfo.cpp.

44  {
45  static std::string module( "" );
46  if ( module == "" ) {
47  if ( processHandle() && moduleHandle() ) {
48  char name[PATH_MAX] = { "Unknown.module" };
49  name[0] = 0;
50 #if defined( __linux ) || defined( __APPLE__ )
51  const char* path = ( (Dl_info*)moduleHandle() )->dli_fname;
52 #elif __hpux
53  const char* path = ( (HMODULE*)moduleHandle() )->dsc.filename;
54 #endif
55  if ( ::realpath( path, name ) ) module = name;
56  }
57  }
58  return module;
59 }

◆ moduleType()

System::ModuleType System::moduleType ( )

Get type of the module.

Definition at line 62 of file ModuleInfo.cpp.

62  {
63  static ModuleType type = UNKNOWN;
64  if ( type == UNKNOWN ) {
65  const std::string& module = moduleNameFull();
66  size_t loc = module.rfind( '.' ) + 1;
67  if ( loc == 0 )
68  type = EXECUTABLE;
69  else if ( module[loc] == 'e' || module[loc] == 'E' )
70  type = EXECUTABLE;
71  else if ( module[loc] == 's' && module[loc + 1] == 'o' )
72  type = SHAREDLIB;
73  else
74  type = UNKNOWN;
75  }
76  return type;
77 }

◆ nonPagedMemory()

long System::nonPagedMemory ( MemoryUnit  unit = kByte,
InfoType  fetch = Memory,
long  pid = -1 
)

Basic Process Information: Current usage of non paged memory.

Basic Process Information: priority boost.

Definition at line 100 of file Memory.cpp.

100  {
101  VM_COUNTERS info;
102  if ( fetch != NoFetch && getProcess()->query( pid, fetch, &info ) )
103  return adjustMemory( unit, info.QuotaNonPagedPoolUsage );
104  return -2;
105 }

◆ nonPagedMemoryLimit()

long System::nonPagedMemoryLimit ( MemoryUnit  unit = kByte,
InfoType  fetch = Quota,
long  pid = -1 
)

System Process Limits: Maximum amount of non-paged memory this process is allowed to use.

Definition at line 108 of file Memory.cpp.

108  {
109  POOLED_USAGE_AND_LIMITS quota;
110  if ( fetch != NoFetch && getProcess()->query( pid, fetch, &quota ) )
111  return adjustMemory( unit, quota.NonPagedPoolLimit );
112  return 0;
113 }

◆ nonPagedMemoryPeak()

long System::nonPagedMemoryPeak ( MemoryUnit  unit = kByte,
InfoType  fetch = Memory,
long  pid = -1 
)

Basic Process Information: Peak usage of non paged memory.

Basic Process Information: priority boost.

Definition at line 92 of file Memory.cpp.

92  {
93  VM_COUNTERS info;
94  if ( fetch != NoFetch && getProcess()->query( pid, fetch, &info ) )
95  return adjustMemory( unit, info.QuotaPeakNonPagedPoolUsage );
96  return -2;
97 }

◆ numCmdLineArgs()

long System::numCmdLineArgs ( )

Number of arguments passed to the commandline.

Definition at line 304 of file System.cpp.

304 { return cmdLineArgs().size(); }

◆ numPageFault()

long System::numPageFault ( InfoType  fetch = Memory,
long  pid = -1 
)

Basic Process Information: Number of page faults.

Basic Process Information: priority boost.

Definition at line 140 of file Memory.cpp.

140  {
141  VM_COUNTERS info;
142  if ( fetch != NoFetch && getProcess()->query( pid, fetch, &info ) ) return info.PageFaultCount;
143  return -2;
144 }

◆ osName()

const std::string & System::osName ( )

OS name.

Definition at line 271 of file System.cpp.

271  {
272  static const std::string osname = Platform::osName();
273  return osname;
274 }

◆ osVersion()

const std::string & System::osVersion ( )

OS version.

Definition at line 277 of file System.cpp.

277  {
278  static const std::string osver = Platform::osVersion();
279  return osver;
280 }

◆ pagedMemory()

long System::pagedMemory ( MemoryUnit  unit = kByte,
InfoType  fetch = Memory,
long  pid = -1 
)

Basic Process Information: Amount of paged memory currently occupied by the process 'pid'.

Definition at line 116 of file Memory.cpp.

116  {
117  VM_COUNTERS info;
118  if ( fetch != NoFetch && getProcess()->query( pid, fetch, &info ) )
119  return adjustMemory( unit, info.QuotaPagedPoolUsage );
120  return -2;
121 }

◆ pagedMemoryLimit()

long System::pagedMemoryLimit ( MemoryUnit  unit = kByte,
InfoType  fetch = Quota,
long  pid = -1 
)

Basic Process Information: Amount of paged memory that can be occupied by the process 'pid'.

Definition at line 132 of file Memory.cpp.

132  {
133  POOLED_USAGE_AND_LIMITS quota;
134  if ( fetch != NoFetch && getProcess()->query( pid, fetch, &quota ) )
135  return adjustMemory( unit, quota.PagedPoolLimit );
136  return 0;
137 }

◆ pagedMemoryPeak()

long System::pagedMemoryPeak ( MemoryUnit  unit = kByte,
InfoType  fetch = Memory,
long  pid = -1 
)

Basic Process Information: Maximum of paged memory occupied by the process 'pid'.

Definition at line 124 of file Memory.cpp.

124  {
125  VM_COUNTERS info;
126  if ( fetch != NoFetch && getProcess()->query( pid, fetch, &info ) )
127  return adjustMemory( unit, info.QuotaPeakPagedPoolUsage );
128  return -2;
129 }

◆ pagefileUsage()

long System::pagefileUsage ( MemoryUnit  unit = kByte,
InfoType  fetch = Memory,
long  pid = -1 
)

Basic Process Information: Current page file usage.

Basic Process Information: priority boost.

Definition at line 147 of file Memory.cpp.

147  {
148  VM_COUNTERS info;
149  if ( fetch != NoFetch && getProcess()->query( pid, fetch, &info ) ) return adjustMemory( unit, info.PagefileUsage );
150  return -2;
151 }

◆ pagefileUsageLimit()

long System::pagefileUsageLimit ( MemoryUnit  unit = kByte,
InfoType  fetch = Quota,
long  pid = -1 
)

Basic Process Information: Peak usage of page file.

Basic Process Information: priority boost.

Definition at line 162 of file Memory.cpp.

162  {
163  POOLED_USAGE_AND_LIMITS quota;
164  if ( fetch != NoFetch && getProcess()->query( pid, fetch, &quota ) ) {
165  if ( long( quota.PagefileLimit ) < 0 ) return -1; // LONG_MAX;
166  return adjustMemory( unit, quota.PagefileLimit );
167  }
168  return -2;
169 }

◆ pagefileUsagePeak()

long System::pagefileUsagePeak ( MemoryUnit  unit = kByte,
InfoType  fetch = Memory,
long  pid = -1 
)

Basic Process Information: Peak usage of page file.

Basic Process Information: priority boost.

Definition at line 154 of file Memory.cpp.

154  {
155  VM_COUNTERS info;
156  if ( fetch != NoFetch && getProcess()->query( pid, fetch, &info ) )
157  return adjustMemory( unit, info.PeakPagefileUsage );
158  return -2;
159 }

◆ parentID()

long System::parentID ( InfoType  fetch = ProcessBasics,
long  pid = -1 
)

Basic Process Information: Parent's process ID.

Definition at line 64 of file Memory.cpp.

64  {
65  PROCESS_BASIC_INFORMATION info;
66  if ( fetch != NoFetch && getProcess()->query( pid, ProcessBasics, &info ) ) return info.InheritedFromUniqueProcessId;
67  return 0;
68 }

◆ PathResolverFindDataFile()

std::string System::PathResolverFindDataFile ( const std::string &  logical_file_name)

Definition at line 165 of file PathResolver.cpp.

165  {
166  return PathResolver::find_file( logical_file_name, "DATAPATH" );
167  }

◆ PathResolverFindXMLFile()

std::string System::PathResolverFindXMLFile ( const std::string &  logical_file_name)

Definition at line 161 of file PathResolver.cpp.

161  {
162  return PathResolver::find_file( logical_file_name, "XMLPATH" );
163  }

◆ priorityBoost()

long System::priorityBoost ( InfoType  fetch = PriorityBoost,
long  pid = -1 
)

Basic Process Information: priority boost.

Definition at line 85 of file Memory.cpp.

85  {
86  long info;
87  if ( fetch != NoFetch && getProcess()->query( pid, fetch, &info ) ) return info;
88  return -2;
89 }

◆ processHandle()

void * System::processHandle ( )

Handle to running process.

Retrieve processhandle.

Definition at line 80 of file ModuleInfo.cpp.

80  {
81  static long pid = ::getpid();
82  static void* hP = (void*)pid;
83  return hP;
84 }

◆ procID()

long System::procID ( )

Basic Process Information: Process ID.

Definition at line 58 of file Memory.cpp.

58  {
59  static const long s_pid = ::getpid();
60  return s_pid;
61 }

◆ remainingTime()

long long System::remainingTime ( TimeType  typ = milliSec,
InfoType  fetch = Quota,
long  pid = -1 
)

Maximum processing time left for this process.

System Process Limits: Maximum processing time left for this process.

Parameters
typIndicator or the unit the time will be returned.
fetchIndicator of the information to be fetched. If Fetch_None, the information will not be updated.
pidProcess ID of which the information will be returned
Returns
Requested value in the indicated units.

Definition at line 140 of file Timing.cpp.

140  {
141  long long left = 0;
142  QUOTA_LIMITS quota;
143  if ( fetch != NoFetch && getProcess()->query( pid, fetch, &quota ) ) {
144  if ( left == -1 ) {
145  // left = _I64_MAX;
146  } else {
147  left = adjustTime( typ, quota.TimeLimit );
148  }
149  }
150  return left;
151 }

◆ resolveEnv()

StatusCode System::resolveEnv ( const std::string &  var,
std::string &  res,
int  recusions = 124 
)

Definition at line 57 of file Environment.cpp.

57  {
58  std::string source = var;
59  res = i_resolve( source, recursions );
60  if ( res.find( "${" ) == std::string::npos ) { return StatusCode::SUCCESS; }
61  return StatusCode::FAILURE;
62 }

◆ setEnv()

int System::setEnv ( const std::string &  name,
const std::string &  value,
int  overwrite = 1 
)

Set an environment variables.

set an environment variables.

If value is empty, the variable is removed from the environment. When overwrite is 0, the variable is not set if already present. Returns 0 on success, -1 on failure. See man 3 setenv.

Returns
0 if successful, -1 if not

Definition at line 440 of file System.cpp.

440  {
441  return value.empty() ?
442  // remove if set to nothing (and return success)
443  ::unsetenv( name.c_str() ),
444  0 :
445  // set the value
446  ::setenv( name.c_str(), value.c_str(), overwrite );
447 }

◆ setModuleHandle()

void System::setModuleHandle ( System::ImageHandle  handle)

Attach module handle.

Definition at line 86 of file ModuleInfo.cpp.

86 { ModuleHandle = handle; }

◆ systemStart()

long long System::systemStart ( TimeType  typ = Sec)

Maximum processing time left for this process.

Units of time since system startup and begin of epoche.

Parameters
typIndicator or the unit the time will be returned.
Returns
Requested value in the indicated units.

Definition at line 113 of file Timing.cpp.

113  {
114  static long long sys_start = 0;
115  if ( 0 == sys_start ) {
116  long long c = currentTime( microSec );
117  long long t = tickCount();
118  sys_start = 10 * c - t;
119  }
120  return adjustTime( typ, sys_start );
121 }

◆ tempDirectory()

std::string System::tempDirectory ( )

Definition at line 73 of file Environment.cpp.

73  {
74  // Return a user configured or systemwide directory to create
75  // temporary files in.
76  std::string dir;
77  if ( System::getEnv( "TEMP", dir ) || System::getEnv( "TEMPDIR", dir ) || System::getEnv( "TEMP_DIR", dir ) ||
78  System::getEnv( "TMP", dir ) || System::getEnv( "TMPDIR", dir ) || System::getEnv( "TMP_DIR", dir ) )
79  return dir;
80  else
81  return homeDirectory();
82 }

◆ threadSelf()

ThreadHandle System::threadSelf ( )
inline

thread handle "accessor"

Definition at line 116 of file System.h.

116 { return (void*)0; }

◆ tickCount()

long long System::tickCount ( )

Retrieve the number of ticks since system startup.

Returns
Requested value in the indicated units.

Definition at line 76 of file Timing.cpp.

76  {
77  long long count = 10000;
78  struct tms buf;
79  count *= 10 * times( &buf );
80  return count;
81 }

◆ typeinfoName() [1/2]

const std::string System::typeinfoName ( const char *  class_name)

Definition at line 262 of file System.cpp.

262 { return Platform::typeinfoName( class_name ); }

◆ typeinfoName() [2/2]

const std::string System::typeinfoName ( const std::type_info &  tinfo)

Get platform independent information about the class type.

Definition at line 260 of file System.cpp.

260 { return typeinfoName( tinfo.name() ); }

◆ unloadDynamicLib()

unsigned long System::unloadDynamicLib ( ImageHandle  handle)

unload dynamic link library

Definition at line 160 of file System.cpp.

160  {
161 #if defined( __linux ) || defined( __APPLE__ )
162  ::dlclose( handle );
163  if ( 0 ) {
164 #elif __hpux
165  // On HP we have to run finalization ourselves.....
166  Creator pFinalize = 0;
167  if ( getProcedureByName( handle, "_fini", &pFinalize ) ) { pFinalize(); }
168  HMODULE* mod = (HMODULE*)handle;
169  if ( 0 == ::shl_unload( mod->dsc.handle ) ) {
170  delete mod;
171  } else {
172 #else
173  if ( false ) {
174 #endif
175  return getLastError();
176  }
177  return 1;
178 }

◆ upTime()

long long System::upTime ( TimeType  typ = Hour)

Maximum processing time left for this process.

Units of time since system startup in requested units.

Parameters
typIndicator or the unit the time will be returned.
Returns
Requested value in the indicated units.

Definition at line 124 of file Timing.cpp.

124  {
125  static long long sys_start = 10 * systemStart( microSec );
126  return adjustTime( typ, 10 * currentTime( microSec ) - sys_start );
127 }

◆ userTime()

long long System::userTime ( TimeType  typ = milliSec,
InfoType  fetch = Times,
long  pid = -1 
)

CPU user mode time of process in milliseconds.

CPU kernel time of process in milliseconds.

Parameters
typIndicator or the unit the time will be returned.
fetchIndicator of the information to be fetched. If Fetch_None, the information will not be updated.
pidProcess ID of which the information will be returned
Returns
Requested value in the indicated units.

Definition at line 174 of file Timing.cpp.

174  {
175  long long usertime = 0;
176  KERNEL_USER_TIMES info;
177  if ( fetch != NoFetch && getProcess()->query( pid, fetch, &info ) ) { usertime = adjustTime( typ, info.UserTime ); }
178  return usertime;
179 }

◆ virtualMemory()

long System::virtualMemory ( MemoryUnit  unit = kByte,
InfoType  fetch = Memory,
long  pid = -1 
)

Basic Process Information: priority boost.

Definition at line 203 of file Memory.cpp.

203  {
204  VM_COUNTERS info;
205  if ( fetch != NoFetch && getProcess()->query( pid, fetch, &info ) ) return adjustMemory( unit, info.VirtualSize );
206  return -2;
207 }

◆ virtualMemoryLimit()

long System::virtualMemoryLimit ( MemoryUnit  unit = kByte,
InfoType  fetch = Quota,
long  pid = -1 
)

System Process Limits: Maximum amount of the page file this process is allowed to use.

Definition at line 217 of file Memory.cpp.

217  {
218  QUOTA_LIMITS quota;
219  if ( fetch != NoFetch && getProcess()->query( pid, fetch, &quota ) ) {
220  if ( long( quota.PagefileLimit ) == -1 ) return -1; // LONG_MAX;
221  return adjustMemory( unit, quota.PagefileLimit );
222  }
223  return 0;
224 }

◆ virtualMemoryPeak()

long System::virtualMemoryPeak ( MemoryUnit  unit = kByte,
InfoType  fetch = Memory,
long  pid = -1 
)

Basic Process Information: priority boost.

Definition at line 210 of file Memory.cpp.

210  {
211  VM_COUNTERS info;
212  if ( fetch != NoFetch && getProcess()->query( pid, fetch, &info ) ) return adjustMemory( unit, info.PeakVirtualSize );
213  return -2;
214 }
System::getErrorString
GAUDI_API const std::string getErrorString(unsigned long error)
Retrieve error code as string for a given error.
Definition: System.cpp:240
System::GByte
@ GByte
Definition: Memory.h:50
System::PR_recursive
@ PR_recursive
Definition: PathResolver.cpp:29
System::ProcessLdtInformation
@ ProcessLdtInformation
Definition: ProcessDescriptor.cpp:27
System::milliSec
@ milliSec
Definition: Timing.h:45
MSG::hex
MsgStream & hex(MsgStream &log)
Definition: MsgStream.h:258
compareOutputFiles.sname
sname
Definition: compareOutputFiles.py:483
System::currentTime< Month >
template long long currentTime< Month >()
System::Hour
@ Hour
Definition: Timing.h:45
System::homeDirectory
GAUDI_API std::string homeDirectory()
Definition: Environment.cpp:64
System::MByte
@ MByte
Definition: Memory.h:50
System::ProcessBasicInformation
@ ProcessBasicInformation
Definition: ProcessDescriptor.cpp:17
AtlasMCRecoFullPrecedenceDump.path
path
Definition: AtlasMCRecoFullPrecedenceDump.py:49
System::getLastError
GAUDI_API unsigned long getLastError()
Get last system known error.
Definition: System.cpp:228
System::ProcessAffinityMask
@ ProcessAffinityMask
Definition: ProcessDescriptor.cpp:38
System::EntryPoint
unsigned long(* EntryPoint)(const unsigned long iid, void **ppvObject)
Definition of the "generic" DLL entry point function.
Definition: System.h:41
System::adjustTime< Month >
long long adjustTime< Month >(long long t)
Definition: Timing.h:228
gaudirun.s
string s
Definition: gaudirun.py:346
System::ProcessWx86Information
@ ProcessWx86Information
Definition: ProcessDescriptor.cpp:36
System::Year
@ Year
Definition: Timing.h:45
System::getEnv
GAUDI_API std::string getEnv(const char *var)
get a particular environment variable (returning "UNKNOWN" if not set)
Definition: System.cpp:329
System::EByte
@ EByte
Definition: Memory.h:50
System::ProcessVmCounters
@ ProcessVmCounters
Definition: ProcessDescriptor.cpp:20
System::microSec
@ microSec
Definition: Timing.h:45
NewInputWrite.fetch
fetch
Definition: NewInputWrite.py:45
System::adjustMemory
GAUDI_API long adjustMemory(MemoryUnit typ, long value)
Convert time from kByte to requested representation (Experts only)
Definition: Memory.cpp:19
System::moduleNameFull
GAUDI_API const std::string & moduleNameFull()
Get the full name of the (executable/DLL) file.
Definition: ModuleInfo.cpp:44
System::getProcedureByName
GAUDI_API unsigned long getProcedureByName(ImageHandle handle, const std::string &name, EntryPoint *pFunction)
Get a specific function defined in the DLL.
Definition: System.cpp:181
System::processHandle
GAUDI_API ProcessHandle processHandle()
Handle to running process.
Definition: ModuleInfo.cpp:80
System::currentTime< Hour >
template long long currentTime< Hour >()
gaudirun.c
c
Definition: gaudirun.py:525
System::typeinfoName
GAUDI_API const std::string typeinfoName(const std::type_info &)
Get platform independent information about the class type.
Definition: System.cpp:260
System::ProcessAccessToken
@ ProcessAccessToken
Definition: ProcessDescriptor.cpp:26
System::getStackLevel
GAUDI_API bool getStackLevel(void *addresses, void *&addr, std::string &fnc, std::string &lib)
System::backTrace
GAUDI_API int backTrace(void **addresses, const int depth)
System::PriorityBoost
@ PriorityBoost
Definition: SystemBase.h:15
System::MaxProcessInfoClass
@ MaxProcessInfoClass
Definition: ProcessDescriptor.cpp:40
System::EXECUTABLE
@ EXECUTABLE
Definition: ModuleInfo.h:23
System::osName
GAUDI_API const std::string & osName()
OS name.
Definition: System.cpp:271
System::PR_regular_file
@ PR_regular_file
Definition: PathResolver.cpp:27
System::nanoSec
@ nanoSec
Definition: Timing.h:45
System::ProcessEllapsedTime
@ ProcessEllapsedTime
Definition: ProcessDescriptor.cpp:41
System::accountName
GAUDI_API const std::string & accountName()
User login name.
Definition: System.cpp:298
System::Month
@ Month
Definition: Timing.h:45
System::currentTime< Year >
template long long currentTime< Year >()
Gaudi.CommonGaudiConfigurables.mod
mod
Definition: CommonGaudiConfigurables.py:39
bug_34121.t
t
Definition: bug_34121.py:31
System::adjustTime< milliSec >
long long adjustTime< milliSec >(long long t)
Definition: Timing.h:216
System::adjustTime< Day >
long long adjustTime< Day >(long long t)
Definition: Timing.h:200
System::adjustTime< Year >
long long adjustTime< Year >(long long t)
Definition: Timing.h:196
System::ProcessEnableAlignmentFaultFixup
@ ProcessEnableAlignmentFaultFixup
Definition: ProcessDescriptor.cpp:34
System::NoFetch
@ NoFetch
Definition: SystemBase.h:15
System::ProcessTimes
@ ProcessTimes
Definition: ProcessDescriptor.cpp:21
cpluginsvc.func
func
Definition: cpluginsvc.py:235
System::PR_file_type
PR_file_type
Definition: PathResolver.cpp:27
System::adjustTime< Native >
long long adjustTime< Native >(long long t)
Definition: Timing.h:232
System::Memory
@ Memory
Definition: SystemBase.h:15
MSG::dec
MsgStream & dec(MsgStream &log)
Definition: MsgStream.h:254
System::System
@ System
Definition: SystemBase.h:15
System::PR_local
@ PR_local
Definition: PathResolver.cpp:29
System::ProcessRaisePriority
@ ProcessRaisePriority
Definition: ProcessDescriptor.cpp:23
Io::UNKNOWN
@ UNKNOWN
Definition: IFileMgr.h:147
System::ProcessDefaultHardErrorMode
@ ProcessDefaultHardErrorMode
Definition: ProcessDescriptor.cpp:29
System::currentTime< milliSec >
template long long currentTime< milliSec >()
System::tickCount
GAUDI_API long long tickCount()
Retrieve the number of ticks since system startup.
Definition: Timing.cpp:76
System::currentTime
GAUDI_API long long currentTime()
Retrieve absolute system time.
Definition: Timing.h:238
System::adjustTime< nanoSec >
long long adjustTime< nanoSec >(long long t)
Definition: Timing.h:224
System::ProcessUserModeIOPL
@ ProcessUserModeIOPL
Definition: ProcessDescriptor.cpp:33
System::ProcessDebugPort
@ ProcessDebugPort
Definition: ProcessDescriptor.cpp:24
System::ProcessLdtSize
@ ProcessLdtSize
Definition: ProcessDescriptor.cpp:28
System::ProcessPriorityClass
@ ProcessPriorityClass
Definition: ProcessDescriptor.cpp:35
instrset_detect
int instrset_detect(void)
Definition: instrset_detect.cpp:63
System::Byte
@ Byte
Definition: Memory.h:50
System::Modules
@ Modules
Definition: SystemBase.h:15
System::getEnv
GAUDI_API std::vector< std::string > getEnv()
get all environment variables
Definition: System.cpp:356
System::RemainTime
@ RemainTime
Definition: SystemBase.h:15
System::adjustTime< microSec >
long long adjustTime< microSec >(long long t)
Definition: Timing.h:220
System::PR_directory
@ PR_directory
Definition: PathResolver.cpp:27
Gaudi
This file provides a Grammar for the type Gaudi::Accumulators::Axis It allows to use that type from p...
Definition: __init__.py:1
System::exeHandle
GAUDI_API ImageHandle exeHandle()
Handle to the executable file running.
Definition: ModuleInfo.cpp:102
System::Creator
void *(* Creator)()
Definition of the "generic" DLL entry point function.
Definition: System.h:43
System::currentTime< microSec >
template long long currentTime< microSec >()
System::currentTime< Min >
template long long currentTime< Min >()
System::adjustTime< Min >
long long adjustTime< Min >(long long t)
Definition: Timing.h:208
System::moduleHandle
GAUDI_API ImageHandle moduleHandle()
Handle to currently executed module.
Definition: ModuleInfo.cpp:88
System::adjustTime< Hour >
long long adjustTime< Hour >(long long t)
Definition: Timing.h:204
System::ProcessBasics
@ ProcessBasics
Definition: SystemBase.h:15
gaudirun.type
type
Definition: gaudirun.py:160
System::Times
@ Times
Definition: SystemBase.h:15
System::Sec
@ Sec
Definition: Timing.h:45
System::Quota
@ Quota
Definition: SystemBase.h:15
System::currentTime< Sec >
template long long currentTime< Sec >()
System::Day
@ Day
Definition: Timing.h:45
StatusCode::SUCCESS
constexpr static const auto SUCCESS
Definition: StatusCode.h:99
System::ModuleType
ModuleType
Definition: ModuleInfo.h:23
ConditionsStallTest.name
name
Definition: ConditionsStallTest.py:77
System::adjustTime< Sec >
long long adjustTime< Sec >(long long t)
Definition: Timing.h:212
System::ProcessPooledUsageAndLimits
@ ProcessPooledUsageAndLimits
Definition: ProcessDescriptor.cpp:31
System::ProcessWorkingSetWatch
@ ProcessWorkingSetWatch
Definition: ProcessDescriptor.cpp:32
System::currentTime< Native >
template long long currentTime< Native >()
System::Native
@ Native
Definition: Timing.h:45
System::currentTime< Day >
template long long currentTime< Day >()
gaudirun.args
args
Definition: gaudirun.py:336
System::Min
@ Min
Definition: Timing.h:45
System::adjustTime
GAUDI_API long long adjustTime(TimeType typ, long long timevalue)
Convert time from OS native time to requested representation (Experts only)
Definition: Timing.cpp:38
System::getProcess
ProcessDescriptor * getProcess()
Retrieve Process structure.
Definition: ProcessDescriptor.h:141
System::cmdLineArgs
GAUDI_API const std::vector< std::string > cmdLineArgs()
Command line arguments including executable name as arg[0] as vector of strings.
Definition: System.cpp:310
System::kByte
@ kByte
Definition: Memory.h:50
System::PR_search_type
PR_search_type
Definition: PathResolver.cpp:29
System::ProcessQuotaLimits
@ ProcessQuotaLimits
Definition: ProcessDescriptor.cpp:18
System::machineType
GAUDI_API const std::string & machineType()
Machine type.
Definition: System.cpp:283
System::ProcessIoPortHandlers
@ ProcessIoPortHandlers
Definition: ProcessDescriptor.cpp:30
System::ProcessExceptionPort
@ ProcessExceptionPort
Definition: ProcessDescriptor.cpp:25
System::TByte
@ TByte
Definition: Memory.h:50
System::hostName
GAUDI_API const std::string & hostName()
Host name.
Definition: System.cpp:265
System::SHAREDLIB
@ SHAREDLIB
Definition: ModuleInfo.h:23
StatusCode::FAILURE
constexpr static const auto FAILURE
Definition: StatusCode.h:100
System::getLastErrorString
GAUDI_API const std::string getLastErrorString()
Get last system error as string.
Definition: System.cpp:234
System::ProcessIoCounters
@ ProcessIoCounters
Definition: ProcessDescriptor.cpp:19
System::ProcessPriorityBoost
@ ProcessPriorityBoost
Definition: ProcessDescriptor.cpp:39
System::systemStart
GAUDI_API long long systemStart(TimeType typ=Sec)
Maximum processing time left for this process.
Definition: Timing.cpp:113
System::PByte
@ PByte
Definition: Memory.h:50
System::currentTime< nanoSec >
template long long currentTime< nanoSec >()
System::osVersion
GAUDI_API const std::string & osVersion()
OS version.
Definition: System.cpp:277
System::ProcessBasePriority
@ ProcessBasePriority
Definition: ProcessDescriptor.cpp:22
System::ProcessHandleCount
@ ProcessHandleCount
Definition: ProcessDescriptor.cpp:37
System::IO
@ IO
Definition: SystemBase.h:15
System::UNKNOWN
@ UNKNOWN
Definition: ModuleInfo.h:23