[Orxonox-commit 4105] r8776 - code/branches/output/src/libraries/util/output
landauf at orxonox.net
landauf at orxonox.net
Mon Jul 25 13:05:04 CEST 2011
Author: landauf
Date: 2011-07-25 13:05:04 +0200 (Mon, 25 Jul 2011)
New Revision: 8776
Modified:
code/branches/output/src/libraries/util/output/LogWriter.cc
code/branches/output/src/libraries/util/output/MemoryWriter.cc
code/branches/output/src/libraries/util/output/OutputListener.cc
code/branches/output/src/libraries/util/output/OutputManager.cc
code/branches/output/src/libraries/util/output/OutputManager.h
code/branches/output/src/libraries/util/output/OutputStream.cc
Log:
in OutputManager: getInstance now only creates an instance of OutputManager, while getInstanceAndCreateListeners does additional stuff. the latter ins only used in OutputStream to ensure the default listeners (LogWriter, etc) get created. This should avoid circular calls.
Modified: code/branches/output/src/libraries/util/output/LogWriter.cc
===================================================================
--- code/branches/output/src/libraries/util/output/LogWriter.cc 2011-07-24 22:01:30 UTC (rev 8775)
+++ code/branches/output/src/libraries/util/output/LogWriter.cc 2011-07-25 11:05:04 UTC (rev 8776)
@@ -82,7 +82,7 @@
std::string name = this->path_ + '/' + this->filename_;
if (this->bDefaultPath_)
- OutputManager::getInstanceInternal().pushMessage(level::user_info, context::output, "Opening log file " + name);
+ OutputManager::getInstance().pushMessage(level::user_info, context::output, "Opening log file " + name);
this->file_.open(name.c_str(), std::fstream::out);
@@ -127,4 +127,4 @@
(timeinfo->tm_sec < 10 ? "0" : "") << timeinfo->tm_sec << ' ' << line << std::endl;
}
}
-}
\ No newline at end of file
+}
Modified: code/branches/output/src/libraries/util/output/MemoryWriter.cc
===================================================================
--- code/branches/output/src/libraries/util/output/MemoryWriter.cc 2011-07-24 22:01:30 UTC (rev 8775)
+++ code/branches/output/src/libraries/util/output/MemoryWriter.cc 2011-07-25 11:05:04 UTC (rev 8776)
@@ -69,4 +69,4 @@
this->output(level::debug_output, context::undefined, std::vector<std::string>(1, "MemoryWriter disabled, further messages may be lost"));
}
}
-}
\ No newline at end of file
+}
Modified: code/branches/output/src/libraries/util/output/OutputListener.cc
===================================================================
--- code/branches/output/src/libraries/util/output/OutputListener.cc 2011-07-24 22:01:30 UTC (rev 8775)
+++ code/branches/output/src/libraries/util/output/OutputListener.cc 2011-07-25 11:05:04 UTC (rev 8776)
@@ -39,12 +39,12 @@
this->levelMask_ = level::none;
this->contextMask_ = context::all;
- OutputManager::getInstanceInternal().registerListener(this);
+ OutputManager::getInstance().registerListener(this);
}
OutputListener::~OutputListener()
{
- OutputManager::getInstanceInternal().unregisterListener(this);
+ OutputManager::getInstance().unregisterListener(this);
}
void OutputListener::setLevelMax(OutputLevel max)
@@ -66,14 +66,14 @@
{
this->levelMask_ = mask;
- OutputManager::getInstanceInternal().updateCombinedLevelMask();
+ OutputManager::getInstance().updateCombinedLevelMask();
}
void OutputListener::setContextMask(OutputContext mask)
{
this->contextMask_ = mask;
- OutputManager::getInstanceInternal().updateCombinedContextMask();
+ OutputManager::getInstance().updateCombinedContextMask();
}
}
}
Modified: code/branches/output/src/libraries/util/output/OutputManager.cc
===================================================================
--- code/branches/output/src/libraries/util/output/OutputManager.cc 2011-07-24 22:01:30 UTC (rev 8775)
+++ code/branches/output/src/libraries/util/output/OutputManager.cc 2011-07-25 11:05:04 UTC (rev 8776)
@@ -68,8 +68,14 @@
/*static*/ OutputManager& OutputManager::getInstance()
{
- static OutputManager& instance = OutputManager::getInstanceInternal();
+ static OutputManager instance;
+ return instance;
+ }
+ /*static*/ OutputManager& OutputManager::getInstanceAndCreateListeners()
+ {
+ static OutputManager& instance = OutputManager::getInstance();
+
static ConsoleOutput consoleOutputInstance;
static MemoryWriter& memoryWriterInstance = MemoryWriter::getInstance(); (void)memoryWriterInstance;
static LogWriter& logWriterInstance = LogWriter::getInstance(); (void)logWriterInstance;
@@ -77,12 +83,6 @@
return instance;
}
- /*static*/ OutputManager& OutputManager::getInstanceInternal()
- {
- static OutputManager instance;
- return instance;
- }
-
void OutputManager::pushMessage(OutputLevel level, OutputContext context, const std::string& message)
{
std::vector<std::string> lines;
Modified: code/branches/output/src/libraries/util/output/OutputManager.h
===================================================================
--- code/branches/output/src/libraries/util/output/OutputManager.h 2011-07-24 22:01:30 UTC (rev 8775)
+++ code/branches/output/src/libraries/util/output/OutputManager.h 2011-07-25 11:05:04 UTC (rev 8776)
@@ -47,7 +47,7 @@
{
public:
static OutputManager& getInstance();
- static OutputManager& getInstanceInternal();
+ static OutputManager& getInstanceAndCreateListeners();
void pushMessage(OutputLevel level, OutputContext context, const std::string& message);
Modified: code/branches/output/src/libraries/util/output/OutputStream.cc
===================================================================
--- code/branches/output/src/libraries/util/output/OutputStream.cc 2011-07-24 22:01:30 UTC (rev 8775)
+++ code/branches/output/src/libraries/util/output/OutputStream.cc 2011-07-25 11:05:04 UTC (rev 8776)
@@ -43,7 +43,7 @@
void OutputStream::sendMessage()
{
- OutputManager::getInstance().pushMessage(this->level_, this->context_, this->str());
+ OutputManager::getInstanceAndCreateListeners().pushMessage(this->level_, this->context_, this->str());
this->str("");
}
@@ -52,7 +52,7 @@
this->level_ = level;
this->context_ = context;
- this->bAcceptsOutput_ = OutputManager::getInstance().acceptsOutput(level, context);
+ this->bAcceptsOutput_ = OutputManager::getInstanceAndCreateListeners().acceptsOutput(level, context);
}
}
}
More information about the Orxonox-commit
mailing list