[Orxonox-commit 4123] r8794 - in code/branches/output/src/libraries/util: . output
landauf at orxonox.net
landauf at orxonox.net
Thu Jul 28 22:35:41 CEST 2011
Author: landauf
Date: 2011-07-28 22:35:41 +0200 (Thu, 28 Jul 2011)
New Revision: 8794
Added:
code/branches/output/src/libraries/util/output/BaseWriter.cc
code/branches/output/src/libraries/util/output/BaseWriter.h
Modified:
code/branches/output/src/libraries/util/CMakeLists.txt
code/branches/output/src/libraries/util/output/ConsoleWriter.cc
code/branches/output/src/libraries/util/output/ConsoleWriter.h
code/branches/output/src/libraries/util/output/LogWriter.cc
code/branches/output/src/libraries/util/output/LogWriter.h
code/branches/output/src/libraries/util/output/MemoryWriter.h
code/branches/output/src/libraries/util/output/OutputListener.h
Log:
added BaseWriter, a common base class of ConsoleWriter, LogWriter, and also the Shell in future
Modified: code/branches/output/src/libraries/util/CMakeLists.txt
===================================================================
--- code/branches/output/src/libraries/util/CMakeLists.txt 2011-07-28 15:24:32 UTC (rev 8793)
+++ code/branches/output/src/libraries/util/CMakeLists.txt 2011-07-28 20:35:41 UTC (rev 8794)
@@ -41,6 +41,7 @@
output/OutputStream.cc
output/OutputManager.cc
output/OutputListener.cc
+ output/BaseWriter.cc
output/ConsoleWriter.cc
output/LogWriter.cc
output/MemoryWriter.cc
Added: code/branches/output/src/libraries/util/output/BaseWriter.cc
===================================================================
--- code/branches/output/src/libraries/util/output/BaseWriter.cc (rev 0)
+++ code/branches/output/src/libraries/util/output/BaseWriter.cc 2011-07-28 20:35:41 UTC (rev 8794)
@@ -0,0 +1,51 @@
+/*
+ * ORXONOX - the hottest 3D action shooter ever to exist
+ * > www.orxonox.net <
+ *
+ *
+ * License notice:
+ *
+ * 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, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Author:
+ * Fabian 'x3n' Landau
+ * Co-authors:
+ * ...
+ *
+ */
+
+#include "BaseWriter.h"
+
+#include "OutputManager.h"
+
+namespace orxonox
+{
+ BaseWriter::BaseWriter()
+ {
+ }
+
+ BaseWriter::~BaseWriter()
+ {
+ }
+
+ void BaseWriter::output(OutputLevel level, OutputContext context, const std::vector<std::string>& lines)
+ {
+ const std::string& prefix = OutputManager::getInstance().getDefaultPrefix(level, context);
+ std::string blanks(prefix.length(), ' ');
+
+ for (size_t i = 0; i < lines.size(); ++i)
+ this->printLine((i == 0 ? prefix : blanks) + lines[i]);
+ }
+}
Property changes on: code/branches/output/src/libraries/util/output/BaseWriter.cc
___________________________________________________________________
Added: svn:eol-style
+ native
Added: code/branches/output/src/libraries/util/output/BaseWriter.h
===================================================================
--- code/branches/output/src/libraries/util/output/BaseWriter.h (rev 0)
+++ code/branches/output/src/libraries/util/output/BaseWriter.h 2011-07-28 20:35:41 UTC (rev 8794)
@@ -0,0 +1,51 @@
+/*
+ * ORXONOX - the hottest 3D action shooter ever to exist
+ * > www.orxonox.net <
+ *
+ *
+ * License notice:
+ *
+ * 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, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Author:
+ * Fabian 'x3n' Landau
+ * Co-authors:
+ * ...
+ *
+ */
+
+#ifndef _BaseWriter_H__
+#define _BaseWriter_H__
+
+#include "util/UtilPrereqs.h"
+#include "OutputListener.h"
+
+namespace orxonox
+{
+ class _UtilExport BaseWriter : public OutputListener
+ {
+ public:
+ BaseWriter();
+ virtual ~BaseWriter();
+
+ protected:
+ virtual void output(OutputLevel level, OutputContext context, const std::vector<std::string>& lines);
+
+ private:
+ virtual void printLine(const std::string& line) = 0;
+ };
+}
+
+#endif /* _BaseWriter_H__ */
Property changes on: code/branches/output/src/libraries/util/output/BaseWriter.h
___________________________________________________________________
Added: svn:eol-style
+ native
Modified: code/branches/output/src/libraries/util/output/ConsoleWriter.cc
===================================================================
--- code/branches/output/src/libraries/util/output/ConsoleWriter.cc 2011-07-28 15:24:32 UTC (rev 8793)
+++ code/branches/output/src/libraries/util/output/ConsoleWriter.cc 2011-07-28 20:35:41 UTC (rev 8794)
@@ -27,9 +27,9 @@
*/
#include "ConsoleWriter.h"
-
-#include <iostream>
+#include <iostream>
+
#include "OutputManager.h"
namespace orxonox
@@ -50,13 +50,9 @@
return instance;
}
- void ConsoleWriter::output(OutputLevel level, OutputContext context, const std::vector<std::string>& lines)
+ void ConsoleWriter::printLine(const std::string& line)
{
- const std::string& prefix = OutputManager::getInstance().getDefaultPrefix(level, context);
- std::string blanks(prefix.length(), ' ');
-
- for (size_t i = 0; i < lines.size(); ++i)
- std::cout << (i == 0 ? prefix : blanks) << lines[i] << std::endl;
+ std::cout << line << std::endl;
}
void ConsoleWriter::enable()
Modified: code/branches/output/src/libraries/util/output/ConsoleWriter.h
===================================================================
--- code/branches/output/src/libraries/util/output/ConsoleWriter.h 2011-07-28 15:24:32 UTC (rev 8793)
+++ code/branches/output/src/libraries/util/output/ConsoleWriter.h 2011-07-28 20:35:41 UTC (rev 8794)
@@ -30,11 +30,11 @@
#define _ConsoleWriter_H__
#include "util/UtilPrereqs.h"
-#include "OutputListener.h"
+#include "BaseWriter.h"
namespace orxonox
{
- class _UtilExport ConsoleWriter : public OutputListener
+ class _UtilExport ConsoleWriter : public BaseWriter
{
public:
static ConsoleWriter& getInstance();
@@ -43,12 +43,12 @@
void disable();
protected:
- virtual void output(OutputLevel level, OutputContext context, const std::vector<std::string>& lines);
+ virtual void printLine(const std::string& line);
private:
ConsoleWriter();
ConsoleWriter(const ConsoleWriter&);
- ~ConsoleWriter();
+ virtual ~ConsoleWriter();
bool bEnabled_;
};
Modified: code/branches/output/src/libraries/util/output/LogWriter.cc
===================================================================
--- code/branches/output/src/libraries/util/output/LogWriter.cc 2011-07-28 15:24:32 UTC (rev 8793)
+++ code/branches/output/src/libraries/util/output/LogWriter.cc 2011-07-28 20:35:41 UTC (rev 8794)
@@ -63,18 +63,6 @@
return instance;
}
- void LogWriter::output(OutputLevel level, OutputContext context, const std::vector<std::string>& lines)
- {
- if (!this->file_.is_open())
- return;
-
- const std::string& prefix = OutputManager::getInstance().getDefaultPrefix(level, context);
- std::string blanks(prefix.length(), ' ');
-
- for (size_t i = 0; i < lines.size(); ++i)
- this->printLine((i == 0 ? prefix : blanks) + lines[i]);
- }
-
void LogWriter::openFile()
{
std::string name = this->path_ + '/' + this->filename_;
@@ -113,6 +101,9 @@
void LogWriter::printLine(const std::string& line)
{
+ if (!this->file_.is_open())
+ return;
+
// Get current time
time_t rawtime;
struct tm* timeinfo;
Modified: code/branches/output/src/libraries/util/output/LogWriter.h
===================================================================
--- code/branches/output/src/libraries/util/output/LogWriter.h 2011-07-28 15:24:32 UTC (rev 8793)
+++ code/branches/output/src/libraries/util/output/LogWriter.h 2011-07-28 20:35:41 UTC (rev 8794)
@@ -33,11 +33,11 @@
#include <fstream>
-#include "OutputListener.h"
+#include "BaseWriter.h"
namespace orxonox
{
- class _UtilExport LogWriter : public OutputListener
+ class _UtilExport LogWriter : public BaseWriter
{
public:
static LogWriter& getInstance();
@@ -45,18 +45,16 @@
void setLogPath(const std::string& path);
protected:
- virtual void output(OutputLevel level, OutputContext context, const std::vector<std::string>& lines);
+ virtual void printLine(const std::string& line);
private:
LogWriter();
LogWriter(const LogWriter&);
- ~LogWriter();
+ virtual ~LogWriter();
void openFile();
void closeFile();
- void printLine(const std::string& line);
-
std::string filename_;
std::string path_;
bool bDefaultPath_;
Modified: code/branches/output/src/libraries/util/output/MemoryWriter.h
===================================================================
--- code/branches/output/src/libraries/util/output/MemoryWriter.h 2011-07-28 15:24:32 UTC (rev 8793)
+++ code/branches/output/src/libraries/util/output/MemoryWriter.h 2011-07-28 20:35:41 UTC (rev 8794)
@@ -58,7 +58,7 @@
private:
MemoryWriter();
MemoryWriter(const MemoryWriter&);
- ~MemoryWriter();
+ virtual ~MemoryWriter();
std::vector<Message> messages_;
};
Modified: code/branches/output/src/libraries/util/output/OutputListener.h
===================================================================
--- code/branches/output/src/libraries/util/output/OutputListener.h 2011-07-28 15:24:32 UTC (rev 8793)
+++ code/branches/output/src/libraries/util/output/OutputListener.h 2011-07-28 20:35:41 UTC (rev 8794)
@@ -41,7 +41,7 @@
{
public:
OutputListener();
- ~OutputListener();
+ virtual ~OutputListener();
void setLevelMax(OutputLevel max);
void setLevelRange(OutputLevel min, OutputLevel max);
More information about the Orxonox-commit
mailing list