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
GaudiAlg
GaudiAlg
Tuple.h
Go to the documentation of this file.
1
#ifndef GAUDIALG_TUPLE_H
2
#define GAUDIALG_TUPLE_H 1
3
// ============================================================================
4
// Include files
5
// ============================================================================
6
// STD & STL
7
// ============================================================================
8
#include <
string
>
9
10
// ============================================================================
18
// ============================================================================
19
20
// ============================================================================
28
// ============================================================================
29
30
#include "
GaudiAlg/TupleObj.h
"
31
32
namespace
Tuples
33
{
34
35
template
<
class
ITEM>
class
TupleItem
;
36
115
class
GAUDI_API
Tuple
116
{
117
public
:
118
123
Tuple
(
TupleObj
* tuple ) ;
124
126
Tuple
(
const
Tuple
& tuple ) ;
127
129
virtual
~
Tuple
() ;
130
135
Tuple
& operator=(
const
Tuple
& tuple ) ;
136
140
TupleObj
* operator-> ()
const
{
return
tuple () ; }
141
143
bool
valid
()
const
{
return
0 != tuple () ; }
144
145
protected
:
146
148
TupleObj
*
tuple
()
const
{
return
m_tuple ; }
149
150
private
:
151
153
Tuple
();
154
155
private
:
156
158
TupleObj
*
m_tuple
;
159
160
};
161
274
template
<
class
ITEM>
275
class
TupleColumn
276
{
277
public
:
278
TupleColumn
(
const
std::string
&
name
,
279
const
ITEM&
value
)
280
:
m_name
( name ) ,
m_value
( value ) {}
281
public
:
283
const
std::string
&
name
()
const
{
return
m_name
; }
285
const
ITEM&
value
()
const
{
return
m_value
; }
286
private
:
287
TupleColumn
();
288
private
:
289
std::string
m_name
;
290
ITEM
m_value
;
291
};
292
296
template
<
class
ITEM>
297
inline
TupleColumn<ITEM>
298
make_column
(
const
std::string
& name ,
const
ITEM&
item
)
299
{
return
TupleColumn<ITEM>
( name ,
item
) ; }
300
304
template
<
class
ITEM>
305
inline
TupleColumn<const ITEM*>
306
make_column
(
const
std::string
& name ,
const
ITEM*
item
)
307
{
return
TupleColumn<const ITEM*>
( name ,
item
) ; }
308
312
template
<
class
ITEM>
313
inline
TupleColumn<ITEM*>
314
make_column
(
const
std::string
& name , ITEM*
item
)
315
{
return
TupleColumn<ITEM*>
( name ,
item
) ; }
316
317
template
<
class
ITEM>
318
inline
TupleColumn<ITEM>
319
Column
(
const
std::string
& name ,
const
ITEM&
item
)
320
{
return
make_column
( name , item ) ; }
321
322
template
<
class
ITEM>
323
inline
TupleColumn<const ITEM*>
324
Column
(
const
std::string
& name ,
const
ITEM*
item
)
325
{
return
make_column
( name , item ) ; }
326
327
template
<
class
ITEM>
328
inline
TupleColumn<ITEM*>
329
Column
(
const
std::string
& name , ITEM*
item
)
330
{
return
make_column
( name , item ) ; }
331
332
}
// end of the namespace Tuples
333
334
// ============================================================================
336
// ============================================================================
337
template
<
class
ITEM>
338
inline
Tuples::Tuple
&
operator
<<
339
(
Tuples::Tuple
& tuple ,
340
const
Tuples::TupleColumn<ITEM>
&
item
)
341
{
342
if
( !tuple.
valid
() ) {
return
tuple ; }
// no action for invalid tuple
343
tuple->
column
(
item
.name() ,
item
.value () ) ;
344
return
tuple ;
345
}
346
// ============================================================================
347
348
349
350
// ============================================================================
351
// THe END
352
// ============================================================================
353
#endif // GAUDIALG_TUPLE_H
354
// ============================================================================
Generated at Wed Dec 4 2013 14:33:07 for Gaudi Framework, version v24r2 by
Doxygen
version 1.8.2 written by
Dimitri van Heesch
, © 1997-2004