ATLAS Offline Software
TBXMLWriterToolBase.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef TBREC_TBXMLWRITERTOOLBASE_H
6 #define TBREC_TBXMLWRITERTOOLBASE_H
7 
12 #include <iostream>
13 #include <vector>
14 #include <string>
15 
17 {
19  // Constructors and Destructor //
21 
22  protected:
23 
24  TBXMLWriterToolBase(const std::string& type, const std::string& name,
25  const IInterface* parent)
26  : AthAlgTool( type, name, parent )
27  { }
28 
29  public:
30 
32  { }
33 
34  // initialize
35  virtual StatusCode initialize() override
36  {
37  return StatusCode::SUCCESS;
38  }
39 
41  // Actions //
43 
44  // template<typename DATA>
45  virtual StatusCode writeOut( std::ostream& outStream,
46  const std::string& entryTag = " " )
47  {
48  return this->writeEvent(outStream,entryTag);
49  }
50 
51  virtual StatusCode finalize() override
52  {
53  return StatusCode::SUCCESS;
54  }
55 
56  virtual StatusCode finalize(std::ostream& outStream)
57  {
58  this->closeAllElements(outStream);
59  return this->finalize();
60  }
61 
62  protected:
63 
65  // Client Implementation //
67 
68  virtual StatusCode writeRunFiles(const std::string& fileDir,
69  unsigned int runNumber) = 0;
70  virtual StatusCode writeEvent(std::ostream& theFile,
71  const std::string& entryTag) = 0;
72 
74  // Helpers //
76 
77  // dictionary management
78  virtual void openDictionary(std::ostream& outStream,
79  const std::string& dictName,
80  const std::vector<std::string>& listOfElements);
81  virtual void openDictionary(std::ostream& outStream,
82  const std::string& dictName);
83  virtual void closeDictionary(std::ostream& outStream);
84 
85  virtual void addDictElement(std::ostream& outStream,
86  const std::string& theElement,
87  const std::vector<std::string>& listOfElements);
88  virtual void addAttributes(std::ostream& outStream,
89  const std::string& theElement,
90  const std::vector<std::string>& listOfAttributes);
91 
92  // element handling
93  virtual void openElement(std::ostream& outStream,
94  const std::string& theElement,
95  const std::vector<std::string>& listOfAttr,
96  const std::vector<std::string>& listOfValues);
97  virtual void closeElement(std::ostream& outStream,
98  const std::string& theElement);
99  virtual void closeElement(std::ostream& outStream);
100  virtual void closeAllElements(std::ostream& outStream);
101 
103  // Internal Data //
105 
106  std::vector<std::string> m_elementList;
107  std::string m_dictionary;
108 
109  static const std::string m_doubleQuote;
110 };
111 #endif
TBXMLWriterToolBase::openElement
virtual void openElement(std::ostream &outStream, const std::string &theElement, const std::vector< std::string > &listOfAttr, const std::vector< std::string > &listOfValues)
Definition: TBXMLWriterToolBase.cxx:108
TBXMLWriterToolBase::writeRunFiles
virtual StatusCode writeRunFiles(const std::string &fileDir, unsigned int runNumber)=0
TBXMLWriterToolBase::addDictElement
virtual void addDictElement(std::ostream &outStream, const std::string &theElement, const std::vector< std::string > &listOfElements)
Definition: TBXMLWriterToolBase.cxx:59
TBXMLWriterToolBase::openDictionary
virtual void openDictionary(std::ostream &outStream, const std::string &dictName, const std::vector< std::string > &listOfElements)
Definition: TBXMLWriterToolBase.cxx:20
TBXMLWriterToolBase::addAttributes
virtual void addAttributes(std::ostream &outStream, const std::string &theElement, const std::vector< std::string > &listOfAttributes)
Definition: TBXMLWriterToolBase.cxx:93
TBXMLWriterToolBase::closeAllElements
virtual void closeAllElements(std::ostream &outStream)
Definition: TBXMLWriterToolBase.cxx:161
TBXMLWriterToolBase::closeElement
virtual void closeElement(std::ostream &outStream, const std::string &theElement)
Definition: TBXMLWriterToolBase.cxx:141
TBXMLWriterToolBase::finalize
virtual StatusCode finalize() override
Definition: TBXMLWriterToolBase.h:51
TBXMLWriterToolBase::writeEvent
virtual StatusCode writeEvent(std::ostream &theFile, const std::string &entryTag)=0
TBXMLWriterToolBase::m_elementList
std::vector< std::string > m_elementList
Definition: TBXMLWriterToolBase.h:106
TBXMLWriterToolBase::TBXMLWriterToolBase
TBXMLWriterToolBase(const std::string &type, const std::string &name, const IInterface *parent)
Definition: TBXMLWriterToolBase.h:24
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
AthAlgTool.h
TBXMLWriterToolBase::m_dictionary
std::string m_dictionary
Definition: TBXMLWriterToolBase.h:107
TBXMLWriterToolBase::writeOut
virtual StatusCode writeOut(std::ostream &outStream, const std::string &entryTag=" ")
Definition: TBXMLWriterToolBase.h:45
test_pyathena.parent
parent
Definition: test_pyathena.py:15
TBXMLWriterToolBase::initialize
virtual StatusCode initialize() override
Definition: TBXMLWriterToolBase.h:35
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
TBXMLWriterToolBase::~TBXMLWriterToolBase
virtual ~TBXMLWriterToolBase()
Definition: TBXMLWriterToolBase.h:31
DeMoAtlasDataLoss.runNumber
string runNumber
Definition: DeMoAtlasDataLoss.py:64
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
TBXMLWriterToolBase::finalize
virtual StatusCode finalize(std::ostream &outStream)
Definition: TBXMLWriterToolBase.h:56
TBXMLWriterToolBase
base class for XML writer tools for 2004 event display
Definition: TBXMLWriterToolBase.h:17
AthAlgTool
Definition: AthAlgTool.h:26
TBXMLWriterToolBase::m_doubleQuote
static const std::string m_doubleQuote
Definition: TBXMLWriterToolBase.h:109
TBXMLWriterToolBase::closeDictionary
virtual void closeDictionary(std::ostream &outStream)
Definition: TBXMLWriterToolBase.cxx:52