ATLAS Offline Software
IAthenaOutputStreamTool.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef ATHENAKERNEL_IATHENAOUTPUTSTREAMTOOL_H
6 # define ATHENAKERNEL_IATHENAOUTPUTSTREAMTOOL_H
7 
18 // Gaudi
19 #include "GaudiKernel/IAlgTool.h"
20 
21 #include <string>
22 #include <vector>
23 
24 
25 class DataObject;
26 namespace SG {
27  class IFolder;
28 }
29 
69 class IAthenaOutputStreamTool : virtual public IAlgTool
70 {
71 
72 public:
73 
77  virtual StatusCode connectServices(const std::string& dataStore,
78  const std::string& cnvSvc,
79  bool extendProvenenceRecord = false) = 0;
80 
84  virtual StatusCode connectOutput(const std::string& outputName = "") = 0;
85 
88  virtual StatusCode commitOutput(bool doCommit = false) = 0;
89 
92  virtual StatusCode finalizeOutput() = 0;
93 
94 
98  typedef std::pair<std::string, std::string> TypeKeyPair;
99  typedef std::vector< TypeKeyPair > TypeKeyPairs;
100  virtual StatusCode streamObjects(const TypeKeyPairs& typeKeys, const std::string& outputName = "") = 0;
101 
107  typedef std::vector< DataObject* > DataObjectVec;
108  virtual StatusCode streamObjects(const DataObjectVec& dataObjects, const std::string& outputName = "") = 0;
109 
111  virtual StatusCode getInputItemList(SG::IFolder* m_p2BWrittenFromTool) = 0;
112 
114  static const InterfaceID& interfaceID();
115 };
116 
117 inline
118 const InterfaceID&
120  static const InterfaceID IID("IAthenaOutputStreamTool", 1, 0);
121  return IID;
122 }
123 
124 #endif // ATHENAKERNEL_IATHENAOUTPUTSTREAMTOOL_H
IAthenaOutputStreamTool::TypeKeyPairs
std::vector< TypeKeyPair > TypeKeyPairs
Definition: IAthenaOutputStreamTool.h:99
SG
Forward declaration.
Definition: CaloCellPacker_400_500.h:32
IAthenaOutputStreamTool::streamObjects
virtual StatusCode streamObjects(const DataObjectVec &dataObjects, const std::string &outputName="")=0
IAthenaOutputStreamTool
This is a tool that allows streaming out of DataObjects. This has been factorized out from AthenaOutp...
Definition: IAthenaOutputStreamTool.h:70
SG::IFolder
a run-time configurable list of data objects
Definition: SGIFolder.h:25
IAthenaOutputStreamTool::interfaceID
static const InterfaceID & interfaceID()
Gaudi boilerplate.
Definition: IAthenaOutputStreamTool.h:119
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
IAthenaOutputStreamTool::connectOutput
virtual StatusCode connectOutput(const std::string &outputName="")=0
Connect to the output stream Must connectOutput BEFORE streaming Only specify "outputName" if one wan...
IAthenaOutputStreamTool::TypeKeyPair
std::pair< std::string, std::string > TypeKeyPair
Stream out objects.
Definition: IAthenaOutputStreamTool.h:98
IAthenaOutputStreamTool::connectServices
virtual StatusCode connectServices(const std::string &dataStore, const std::string &cnvSvc, bool extendProvenenceRecord=false)=0
Specify which data store and conversion service to use and whether to extend provenence Only use if o...
lumiFormat.outputName
string outputName
Definition: lumiFormat.py:71
IAthenaOutputStreamTool::commitOutput
virtual StatusCode commitOutput(bool doCommit=false)=0
Commit the output stream after having streamed out objects Must commitOutput AFTER streaming.
IAthenaOutputStreamTool::DataObjectVec
std::vector< DataObject * > DataObjectVec
Stream out a vector of objects Must convert to DataObject, e.g.
Definition: IAthenaOutputStreamTool.h:107
IAthenaOutputStreamTool::finalizeOutput
virtual StatusCode finalizeOutput()=0
Finalize the output stream after the last commit, e.g.
IAthenaOutputStreamTool::streamObjects
virtual StatusCode streamObjects(const TypeKeyPairs &typeKeys, const std::string &outputName="")=0
IAthenaOutputStreamTool::getInputItemList
virtual StatusCode getInputItemList(SG::IFolder *m_p2BWrittenFromTool)=0
Get ItemList from the OutputStreamTool (e.g. all input objects)