Gaudi Framework, version v23r5
Home
Generated: Wed Nov 28 2012
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
GaudiCommonSvc
src
PersistencySvc
OutputStream.h
Go to the documentation of this file.
1
// $Id: OutputStream.h,v 1.4 2010/05/20 17:07:50 marcocle Exp $
2
#ifndef GAUDISVC_PERSISTENCYSVC_OUTPUTSTREAM_H
3
#define GAUDISVC_PERSISTENCYSVC_OUTPUTSTREAM_H
4
5
6
// Required for inheritance
7
#include "
GaudiKernel/IDataSelector.h
"
8
#include "
GaudiKernel/Algorithm.h
"
9
#include "
GaudiKernel/Property.h
"
10
11
// STL include files
12
#include <
memory
>
13
#include <
vector
>
14
#include <
string
>
15
16
// forward declarations
17
template
<
class
ConcreteAlgorithm>
class
AlgFactory
;
18
namespace
{
template
<
class
P,
class
S>
class
Factory
; }
19
20
class
IIncidentSvc
;
21
class
IRegistry
;
22
class
IConversionSvc
;
23
class
IDataManagerSvc
;
24
class
OutputStreamAgent
;
25
class
DataStoreItem
;
26
32
class
OutputStream
:
public
Algorithm
{
33
friend
class
AlgFactory
<
OutputStream
>;
34
friend
class
Factory
<
OutputStream
,
IAlgorithm
* (
std::string
,
ISvcLocator
*)>;
35
36
public
:
37
typedef
std::vector<DataStoreItem*>
Items
;
38
typedef
std::vector<std::string>
ItemNames
;
39
protected
:
41
SmartIF<IIncidentSvc>
m_incidentSvc
;
43
bool
m_doPreLoad
;
45
bool
m_doPreLoadOpt
;
47
bool
m_verifyItems
;
49
std::string
m_storeName
;
51
std::string
m_persName
;
53
std::string
m_output
;
55
std::string
m_outputName
;
57
std::string
m_outputType
;
59
OutputStreamAgent
*
m_agent
;
61
SmartIF<IDataProviderSvc>
m_pDataProvider
;
63
SmartIF<IDataManagerSvc>
m_pDataManager
;
65
SmartIF<IConversionSvc>
m_pConversionSvc
;
67
DataStoreItem
*
m_currentItem
;
69
ItemNames
m_itemNames
;
71
Items
m_itemList
;
73
ItemNames
m_optItemNames
;
75
Items
m_optItemList
;
77
IDataSelector
m_objects
;
79
int
m_events
;
81
StringArrayProperty
m_acceptNames
;
83
StringArrayProperty
m_requireNames
;
85
StringArrayProperty
m_vetoNames
;
87
std::vector<Algorithm*>
*
m_acceptAlgs
;
89
std::vector<Algorithm*>
*
m_requireAlgs
;
91
std::vector<Algorithm*>
*
m_vetoAlgs
;
92
93
public
:
95
OutputStream
(
const
std::string
&
name
,
ISvcLocator
* pSvcLocator);
97
virtual
~OutputStream
();
98
protected
:
100
StatusCode
decodeAcceptAlgs
( );
102
void
acceptAlgsHandler
(
Property
& theProp );
104
StatusCode
decodeRequireAlgs
( );
106
void
requireAlgsHandler
(
Property
& theProp );
108
StatusCode
decodeVetoAlgs
( );
110
void
vetoAlgsHandler
(
Property
& theProp );
112
StatusCode
decodeAlgorithms
(
StringArrayProperty
& theNames,
113
std::vector<Algorithm*>
* theAlgs );
115
bool
isEventAccepted
( )
const
;
117
DataStoreItem
*
findItem
(
const
std::string
&
path
);
119
virtual
StatusCode
writeObjects
();
120
122
bool
m_fireIncidents
;
123
125
virtual
bool
hasInput
()
const
;
126
127
public
:
129
virtual
StatusCode
initialize
();
131
virtual
StatusCode
finalize
();
133
virtual
StatusCode
execute
();
134
// Connect to proper conversion service
135
virtual
StatusCode
connectConversionSvc
();
137
virtual
bool
collect
(
IRegistry
* dir,
int
level
);
139
virtual
StatusCode
collectObjects
();
141
void
clearItems
(
Items
&
itms
);
143
void
addItem
(
Items
&
itms
,
const
std::string
& descriptor);
145
void
clearSelection
();
147
IDataSelector
*
selectedObjects
() {
148
return
&
m_objects
;
149
}
150
};
151
152
#endif // GAUDISVC_PERSISTENCYSVC_OUTPUTSTREAM_H
Generated at Wed Nov 28 2012 12:17:11 for Gaudi Framework, version v23r5 by
Doxygen
version 1.8.2 written by
Dimitri van Heesch
, © 1997-2004