Geant4 9.6.0
Toolkit for the simulation of the passage of particles through matter
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
IndentPrintWriter.h
Go to the documentation of this file.
1// Copyright FreeHEP, 2005.
2#ifndef CHEPREP_INDENTPRINTWRITER_H
3#define CHEPREP_INDENTPRINTWRITER_H 1
4
5#include "cheprep/config.h"
6
7#include <iostream>
8#include <string>
9
10/**
11 * A PrintWriter that keeps track of an indentation level
12 * and indents the output appropriately.
13 *
14 * <b>Warning:</b> Only print and println methods taking strings have been overriden,
15 * print, println methods taking other arguments may not be indented properly.
16 *
17 * @author Mark Donszelmann
18 * @version $Id: IndentPrintWriter.h,v 1.3 2005-06-02 21:28:45 duns Exp $
19 */
20namespace cheprep {
21
23
24 public:
25 IndentPrintWriter(std::ostream* out, int level = 0);
26 virtual ~IndentPrintWriter();
27
28 void close();
29 IndentPrintWriter& operator<< (const std::string & s);
30 IndentPrintWriter& operator<< (std::ostream& (*pf)(std::ostream&));
31 void println(const std::string & s);
32 void print(const std::string & s);
33 void println();
34 void indent();
35 void outdent();
36 int getIndent() const;
37 void setIndent(const int level);
38 std::string getIndentString() const;
39 void setIndentString(const std::string & indentString);
40
41 private:
42 void doIndent();
43
44 std::ostream* out;
45 bool closed;
46 int indentLevel;
47 bool indented;
48 std::string indentString;
49};
50
51} // cheprep
52
53
54#endif
55
void setIndent(const int level)
IndentPrintWriter & operator<<(const std::string &s)
void print(const std::string &s)
std::string getIndentString() const
void setIndentString(const std::string &indentString)