ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
XMLHepRepWriter.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file XMLHepRepWriter.h
1 // Copyright FreeHEP, 2005.
2 #ifndef CHEPREP_XMLHEPREPWRITER_H
3 #define CHEPREP_XMLHEPREPWRITER_H 1
4 
5 #include "cheprep/config.h"
6 
7 #include <iostream>
8 #include <string>
9 #include <stack>
10 #include <set>
11 #include <vector>
12 #include <map>
13 
14 #include "HEPREP/HepRep.h"
15 #include "HEPREP/HepRepFactory.h"
16 #include "HEPREP/HepRepWriter.h"
17 #include "HEPREP/HepRepPoint.h"
18 #include "HEPREP/HepRepInstance.h"
20 #include "HEPREP/HepRepTreeID.h"
21 #include "HEPREP/HepRepAction.h"
22 #include "HEPREP/HepRepType.h"
23 #include "HEPREP/HepRepTypeTree.h"
24 #include "HEPREP/HepRepAttDef.h"
25 #include "HEPREP/HepRepAttValue.h"
26 #include "HEPREP/HepRepAttribute.h"
27 
31 
35 namespace cheprep {
36 
37 class XMLHepRepWriter : public virtual HEPREP::HepRepWriter {
38 
39  private:
40  std::ostream *out;
41  bool compress;
42  std::string nameSpace;
46  std::map<std::string, std::string> properties;
47 
48  public:
49  XMLHepRepWriter(std::ostream* out, bool randomAccess, bool compress);
51 
52  bool addProperty(std::string key, std::string value);
53  bool close();
54  bool write(HEPREP::HepRep* heprep, std::string name);
55  bool write(std::vector<std::string> layers);
56  bool write(HEPREP::HepRepTypeTree* typeTree);
57  bool write(HEPREP::HepRepType* type);
58  bool write(HEPREP::HepRepTreeID* treeID);
59  bool write(HEPREP::HepRepAction* action);
60  bool write(HEPREP::HepRepInstanceTree* instanceTree);
63  bool write(HEPREP::HepRepAttribute* attribute);
64  bool write(HEPREP::HepRepDefinition* definition);
65  bool write(HEPREP::HepRepAttValue* attValue);
66  bool write(HEPREP::HepRepAttDef* attDef);
67 };
68 
69 } // cheprep
70 
71 
72 #endif