ColumnPrinter.h
Go to the documentation of this file.
/* Frobby: Software for monomial ideal computations.
Copyright (C) 2009 Bjarke Hammersholt Roune (www.broune.com)
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see http://www.gnu.org/licenses/.
*/
#ifndef COLUMN_PRINTER_GUARD
#define COLUMN_PRINTER_GUARD
#include "ElementDeleter.h"
#include <sstream>
#include <vector>
class FrobbyStringStream;
class ColumnPrinter {
public:
ColumnPrinter(size_t columnCount = 0);
void setPrefix(const string& prefix);
void addColumn(bool flushLeft = true,
const string& prefix = " ", const string& suffix = "");
size_t getColumnCount() const;
ostream& operator[](size_t col);
void print(ostream& out) const;
void print(FrobbyStringStream& out) const;
private:
struct Col {
string prefix;
stringstream text;
string suffix;
bool flushLeft;
};
vector<Col*> _cols;
ElementDeleter<vector<Col*> > _colsDeleter;
string _prefix;
};
ostream& operator<<(ostream& out, const ColumnPrinter& printer);
void print(FILE* out, const ColumnPrinter& pr);
#endif
operator<<
ostream & operator<<(ostream &out, const ColumnPrinter &printer)
Definition ColumnPrinter.cpp:140
print
void print(FILE *out, const ColumnPrinter &pr)
Definition ColumnPrinter.cpp:145
ElementDeleter.h
ColumnPrinter
Definition ColumnPrinter.h:27
ColumnPrinter::operator[]
ostream & operator[](size_t col)
Definition ColumnPrinter.cpp:65
ColumnPrinter::print
void print(ostream &out) const
Definition ColumnPrinter.cpp:70
ColumnPrinter::getColumnCount
size_t getColumnCount() const
Definition ColumnPrinter.cpp:61
ColumnPrinter::ColumnPrinter
ColumnPrinter(size_t columnCount=0)
Definition ColumnPrinter.cpp:38
ColumnPrinter::addColumn
void addColumn(bool flushLeft=true, const string &prefix=" ", const string &suffix="")
Definition ColumnPrinter.cpp:51
ColumnPrinter::_colsDeleter
ElementDeleter< vector< Col * > > _colsDeleter
Definition ColumnPrinter.h:49
ColumnPrinter::_prefix
string _prefix
Definition ColumnPrinter.h:50
ColumnPrinter::_cols
vector< Col * > _cols
Definition ColumnPrinter.h:48
ColumnPrinter::setPrefix
void setPrefix(const string &prefix)
Definition ColumnPrinter.cpp:47
ElementDeleter
Definition ElementDeleter.h:50
FrobbyStringStream
A replacement for stringstream.
Definition FrobbyStringStream.h:26
ColumnPrinter::Col
Definition ColumnPrinter.h:42
ColumnPrinter::Col::text
stringstream text
Definition ColumnPrinter.h:44
ColumnPrinter::Col::prefix
string prefix
Definition ColumnPrinter.h:43
ColumnPrinter::Col::suffix
string suffix
Definition ColumnPrinter.h:45
ColumnPrinter::Col::flushLeft
bool flushLeft
Definition ColumnPrinter.h:46