IndentPrintWriter.cc

Go to the documentation of this file.
00001 // Copyright FreeHEP, 2005.
00002 
00003 #include <fstream>
00004 
00005 #include "cheprep/IndentPrintWriter.h"
00006 
00007 using namespace std;
00008 
00013 namespace cheprep {
00014 
00015 IndentPrintWriter::IndentPrintWriter(ostream* outstream, int level)
00016     : out(outstream), 
00017       closed(false), 
00018       indentLevel(level),
00019       indented(false),
00020       indentString("  ") {
00021 }
00022 
00023 IndentPrintWriter::~IndentPrintWriter() {
00024 }
00025 
00026 void IndentPrintWriter::close() {
00027     if (!closed) {
00028         out->flush();
00029         closed = true;
00030     }
00031 }
00032 
00033 IndentPrintWriter& IndentPrintWriter::operator<< (const std::string & s) {
00034     if (!indented) doIndent();
00035     *out << s;
00036     return *this;
00037 }
00038 
00039 IndentPrintWriter& IndentPrintWriter::operator<< (ostream& (*)(ostream&)) {
00040     *out << endl;
00041     indented = false;
00042     return *this;
00043 }
00044 
00045 void IndentPrintWriter::println(const string & s) {
00046         *this << s << endl;
00047 }
00048 
00049 void IndentPrintWriter::print(const string & s) {
00050     *this << s;
00051 }
00052 
00053 void IndentPrintWriter::println() {
00054     *out << endl;
00055         indented = false;
00056 }
00057 
00058 void IndentPrintWriter::doIndent() {
00059         for (int i=0; i<indentLevel; i++) {
00060             *out << indentString;
00061         }
00062         indented = true;
00063 }
00064 
00065 void IndentPrintWriter::indent() {
00066     indentLevel++;
00067 }
00068 
00069 void IndentPrintWriter::outdent() {
00070     indentLevel--;
00071 }
00072 
00073 int IndentPrintWriter::getIndent() const {
00074     return indentLevel;
00075 }
00076 
00077 void IndentPrintWriter::setIndent(const int level) {
00078     indentLevel = level;
00079 }
00080 
00081 string IndentPrintWriter::getIndentString() const {
00082     return indentString;
00083 }
00084 
00085 void IndentPrintWriter::setIndentString(const string & anIndent) {
00086     indentString = anIndent;
00087 }
00088 
00089 } // cheprep

Generated on Mon May 27 17:50:31 2013 for Geant4 by  doxygen 1.4.7