[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