22#include <QtCore/QString>
23#include <QtCore/QVariant>
24#include <QtSql/QSqlQuery>
25#include <QtCore/QVector>
44 const QString &
name()
const {
return mName; }
46 QString
datatype()
const {
switch(mDatatype) {
case OutInteger:
return QString(
"integer");
case OutDouble:
return QString(
"double");
default:
return QString(
"string"); } }
63 bool isOpen()
const {
return mOpen; }
66 void setEnabled(
const bool enabled) { mEnabled=enabled;
if(enabled)
open(); }
72 const QList<OutputColumn>
getColumns()
const {
return mColumns; }
74 const QString
name()
const {
return mName; }
76 const QString
tableName()
const {
return mTableName; }
88 QList<OutputColumn> &
columns() {
return mColumns; }
95 inline void add(
const double &value);
96 void add(
const double &value1,
const double &value2) {
add(value1);
add(value2); }
97 void add(
const double &value1,
const double &value2,
const double &value3) {
add(value1, value2);
add(value3); }
98 void add(
const double &value1,
const double &value2,
const double &value3,
const double &value4) {
add(value1, value2);
add(value3, value4); }
99 void add(
const double &value1,
const double &value2,
const double &value3,
const double &value4,
const double value5) {
add(value1, value2);
add(value3, value4, value5); }
100 inline void add(
const int intValue);
101 inline void add(
const QString &stringValue);
112 inline void saveDatabase();
113 inline void saveFile();
119 QString mDescription;
120 QList<OutputColumn> mColumns;
121 QVector<QVariant> mRow;
124 QTextStream mFileStream;
133 DBG_IF(mIndex>=mCount || mIndex<0,
"Output::add(double)",
"output index out of range!");
134 mRow[mIndex++].setValue(value);
138 DBG_IF(mIndex>=mCount || mIndex<0,
"Output::add(string)",
"output index out of range!");
139 mRow[mIndex++].setValue(value);
143 DBG_IF(mIndex>=mCount || mIndex<0,
"Output::add(int)",
"output index out of range!");
144 mRow[mIndex++].setValue(value);
General settings and globally available data.
Definition: globalsettings.h:18
int currentYear() const
Definition: globalsettings.h:61
const XmlHelper & settings() const
Definition: globalsettings.h:105
const QString & name() const
Definition: output.h:44
static OutputColumn species()
Definition: output.h:41
OutputColumn(const QString name, const QString description, const OutputDatatype datatype)
Definition: output.h:38
const QString & description() const
Definition: output.h:45
QString datatype() const
Definition: output.h:46
static OutputColumn year()
Definition: output.h:40
static OutputColumn id()
Definition: output.h:43
static OutputColumn ru()
Definition: output.h:42
The Output class abstracts output data (database, textbased, ...).
Definition: output.h:55
QList< OutputColumn > & columns()
Definition: output.h:88
void setMode(OutputMode mode)
Definition: output.h:60
void setDescription(const QString &description)
Definition: output.h:86
void open()
open output connection (create actual db connection, ...)
Definition: output.cpp:234
bool clearColumnsAfter(QString find_name)
delete all columns after the column 'find_name'. Return true if columns were removed.
Definition: output.cpp:208
const XmlHelper & settings() const
access XML settings (see class description)
Definition: output.h:90
Output()
ctor. Override in derived class to craete columns, etc.
Definition: output.cpp:97
void add(const double &value1, const double &value2, const double &value3, const double &value4)
Definition: output.h:98
void add(const double &value1, const double &value2, const double &value3, const double &value4, const double value5)
Definition: output.h:99
bool isOpen() const
returns true if output is open, i.e. has a open database connection
Definition: output.h:63
Output & operator<<(const double &value)
Definition: output.h:80
int currentYear() const
Definition: output.h:89
const QList< OutputColumn > getColumns() const
Definition: output.h:72
virtual ~Output()
Definition: output.cpp:92
bool isRowEmpty() const
returns true if the buffer of the current row is empty
Definition: output.h:67
void singleThreadedWriteRow()
writeRow() protected by a mutex (if there is a chance that two outputs write at the same time)
Definition: output.cpp:201
void add(const double &value1, const double &value2)
Definition: output.h:96
bool isEnabled() const
returns true if output is enabled, i.e. is "turned on"
Definition: output.h:65
const QString name() const
descriptive name of the ouptut
Definition: output.h:74
void truncateTable()
delete all data from the table
Definition: output.cpp:224
QString wikiFormat() const
return output description in a (tiki)-wiki format
Definition: output.cpp:302
const QString tableName() const
internal output name (no spaces allowed)
Definition: output.h:76
void close()
shut down the connection.
Definition: output.cpp:253
virtual void exec()
main function that executes the output
Definition: output.cpp:83
virtual void setup()
setup() is called during project setup and can be ovveridden for specific setup
Definition: output.cpp:88
void setEnabled(const bool enabled)
Definition: output.h:66
void add(const double &value1, const double &value2, const double &value3)
Definition: output.h:97
void writeRow()
saves the current row/line of data to database/file. Must be called for each row.
Definition: output.cpp:185
void add(const double &value)
Definition: output.h:131
void setName(const QString &name, const QString tableName)
Definition: output.h:85
const QString description() const
description of output
Definition: output.h:75
XmlHelper wraps a XML file and provides some convenient functions to retrieve values.
Definition: xmlhelper.h:26
#define DBG_IF(cond, where, what)
Definition: global.h:50
OutputMode
Definition: output.h:30
@ OutDatabase
Definition: output.h:30
@ OutText
Definition: output.h:30
@ OutFile
Definition: output.h:30
OutputDatatype
Definition: output.h:29
@ OutString
Definition: output.h:29
@ OutInteger
Definition: output.h:29
@ OutDouble
Definition: output.h:29