summaryrefslogtreecommitdiffstats
path: root/src/logger.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/logger.h')
-rwxr-xr-xsrc/logger.h100
1 files changed, 100 insertions, 0 deletions
diff --git a/src/logger.h b/src/logger.h
new file mode 100755
index 0000000..c8d0076
--- /dev/null
+++ b/src/logger.h
@@ -0,0 +1,100 @@
+
+
+#ifndef LOGGER_H
+#define LOGGER_H
+
+#include <qobject.h>
+#include <qstringlist.h>
+#include <qdatetime.h>
+#include <qfile.h>
+#include <qtextstream.h>
+
+
+/**
+ * @short An item for every process that is logged
+ * @author Daniel Faust <hessijames@gmail.com>
+ * @version 0.3
+ */
+class LoggerItem
+{
+public:
+ /**
+ * Constructor
+ */
+ LoggerItem();
+
+ /**
+ * Destructor
+ */
+ virtual ~LoggerItem();
+
+ QString filename;
+ int id;
+ QStringList data;
+ bool completed;
+ int state; // 0 = ok, -1 = failed, 1 = other (soundKonverter)
+ QTime time;
+ QFile file;
+ QTextStream textStream;
+
+};
+
+
+/**
+ * @short All data about the processes are collected here
+ * @author Daniel Faust <hessijames@gmail.com>
+ * @version 0.3
+ */
+class Logger : public QObject
+{
+ Q_OBJECT
+public:
+ /**
+ * Constructor
+ */
+ Logger();
+
+ /**
+ * Destructor
+ */
+ virtual ~Logger();
+
+ void cleanUp();
+
+ /**
+ * Creates a new logger item and returns the id of it, @p filename is added to the new logger item
+ */
+ int registerProcess( const QString& filename );
+
+ /**
+ * Adds the string @p data to the data of the logger item with id @p id
+ */
+ void log( int id, const QString& data );
+
+ /**
+ * Returns the logger item with id @p id
+ */
+ LoggerItem* getLog( int id );
+
+ /**
+ * Returns a list of all logger items
+ */
+ QValueList<LoggerItem*> getLogs();
+
+private:
+ /** the list of all logger items */
+ QValueList<LoggerItem*> processes;
+
+ /** returns an unused random id */
+ int getNewID();
+
+public slots:
+ void processCompleted( int id, int state );
+
+signals:
+ void removedProcess( int id );
+ void updateProcess( int id );
+
+};
+
+#endif // LOGGER_H