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