Geant4.10
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
IndentPrintWriter.cc
Go to the documentation of this file.
1 // Copyright FreeHEP, 2005.
2 
3 #include <fstream>
4 
6 
7 using namespace std;
8 
9 /**
10  * @author Mark Donszelmann
11  * @version $Id: IndentPrintWriter.cc 66373 2012-12-18 09:41:34Z gcosmo $
12  */
13 namespace cheprep {
14 
15 IndentPrintWriter::IndentPrintWriter(ostream* outstream, int level)
16  : out(outstream),
17  closed(false),
18  indentLevel(level),
19  indented(false),
20  indentString(" ") {
21 }
22 
24 }
25 
27  if (!closed) {
28  out->flush();
29  closed = true;
30  }
31 }
32 
34  if (!indented) doIndent();
35  *out << s;
36  return *this;
37 }
38 
39 IndentPrintWriter& IndentPrintWriter::operator<< (ostream& (*)(ostream&)) {
40  *out << endl;
41  indented = false;
42  return *this;
43 }
44 
45 void IndentPrintWriter::println(const string & s) {
46  *this << s << endl;
47 }
48 
49 void IndentPrintWriter::print(const string & s) {
50  *this << s;
51 }
52 
54  *out << endl;
55  indented = false;
56 }
57 
58 void IndentPrintWriter::doIndent() {
59  for (int i=0; i<indentLevel; i++) {
60  *out << indentString;
61  }
62  indented = true;
63 }
64 
66  indentLevel++;
67 }
68 
70  indentLevel--;
71 }
72 
74  return indentLevel;
75 }
76 
77 void IndentPrintWriter::setIndent(const int level) {
78  indentLevel = level;
79 }
80 
82  return indentString;
83 }
84 
85 void IndentPrintWriter::setIndentString(const string & anIndent) {
86  indentString = anIndent;
87 }
88 
89 } // cheprep
const XML_Char * s
std::string getIndentString() const
void setIndentString(const std::string &indentString)
void setIndent(const int level)
IndentPrintWriter & operator<<(const std::string &s)
void print(const std::string &s)