Gaudi Framework, version v24r2
Home
Generated: Wed Dec 4 2013
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Groups
Pages
GaudiKernel
GaudiKernel
System.h
Go to the documentation of this file.
1
// $Header: /tmp/svngaudi/tmp.jEpFh25751/Gaudi/GaudiKernel/GaudiKernel/System.h,v 1.17 2008/10/28 10:40:19 marcocle Exp $
2
#ifndef GAUDIKERNEL_SYSTEM_H
3
#define GAUDIKERNEL_SYSTEM_H
4
5
// Framework include files
6
#include "
GaudiKernel/Kernel.h
"
7
// STL include files
8
#include <
string
>
9
#include <
vector
>
10
#include <
typeinfo
>
11
12
#include "
GaudiKernel/Timing.h
"
13
#include "
GaudiKernel/ModuleInfo.h
"
14
15
#ifdef __linux
16
# include <pthread.h>
17
#ifndef __APPLE__
18
# include <execinfo.h>
19
#endif
20
#endif
21
30
namespace
System
{
32
typedef
void
*
ImageHandle
;
34
typedef
void
*
ProcessHandle
;
36
typedef
unsigned
long (*
EntryPoint
)(
const
unsigned
long
iid,
void
** ppvObject);
38
typedef
void
* (*Creator)();
40
GAUDI_API
unsigned
long
loadDynamicLib
(
const
std::string
& name,
ImageHandle
* handle);
42
GAUDI_API
unsigned
long
unloadDynamicLib
(
ImageHandle
handle);
44
GAUDI_API
unsigned
long
getProcedureByName
(
ImageHandle
handle,
const
std::string
& name,
EntryPoint
* pFunction);
46
GAUDI_API
unsigned
long
getProcedureByName
(
ImageHandle
handle,
const
std::string
& name,
Creator
* pFunction);
48
GAUDI_API
unsigned
long
getLastError
();
50
GAUDI_API
const
std::string
getLastErrorString
();
52
GAUDI_API
const
std::string
getErrorString
(
unsigned
long
error);
54
GAUDI_API
const
std::string
typeinfoName
(
const
std::type_info
& );
55
GAUDI_API
const
std::string
typeinfoName
(
const
char
* );
57
GAUDI_API
const
std::string
&
hostName
();
59
GAUDI_API
const
std::string
&
osName
();
61
GAUDI_API
const
std::string
&
osVersion
();
63
GAUDI_API
const
std::string
&
machineType
();
65
GAUDI_API
const
std::string
&
accountName
();
67
GAUDI_API
long
numCmdLineArgs
();
69
GAUDI_API
long
argc
();
71
GAUDI_API
const
std::vector<std::string>
cmdLineArgs
();
73
GAUDI_API
char
**
argv
();
75
GAUDI_API
std::string
getEnv
(
const
char
* var);
78
GAUDI_API
bool
getEnv
(
const
char
* var,
std::string
&value);
79
inline
bool
getEnv
(
const
std::string
&var,
std::string
&value) {
80
return
getEnv
(var.c_str(), value);
81
}
83
GAUDI_API
std::vector<std::string>
getEnv
();
89
GAUDI_API
int
setEnv
(
const
std::string
&name,
const
std::string
&value,
int
overwrite = 1);
91
GAUDI_API
bool
isEnvSet
(
const
char
* var);
92
#ifdef __linux
93
94
typedef
pthread_t
ThreadHandle
;
96
inline
ThreadHandle
threadSelf
() {
return
pthread_self(); }
97
#else
98
99
typedef
void
*
ThreadHandle
;
101
inline
ThreadHandle
threadSelf
() {
return
(
void
*)0; }
102
#endif
103
GAUDI_API
int
backTrace
(
void
** addresses,
const
int
depth);
104
GAUDI_API
bool
backTrace
(
std::string
& btrace,
const
int
depth,
const
int
offset = 0);
105
GAUDI_API
bool
getStackLevel
(
void
* addresses,
void
*& addr,
std::string
& fnc,
std::string
& lib) ;
106
107
#if __GNUC__ >= 4
108
109
110
111
112
113
114
115
116
117
118
119
120
template
<
typename
DESTPTR,
typename
SRCPTR>
121
inline
DESTPTR FuncPtrCast(SRCPTR ptr) {
122
union
{
123
SRCPTR src;
124
DESTPTR dst;
125
} p2p;
126
p2p.src = ptr;
127
return
p2p.dst;
128
}
129
#endif
130
}
131
#endif // SYSTEM_SYSTEM_H
Generated at Wed Dec 4 2013 14:33:09 for Gaudi Framework, version v24r2 by
Doxygen
version 1.8.2 written by
Dimitri van Heesch
, © 1997-2004