Changeset 9550 for code/trunk/src/libraries/util/output/OutputManager.cc
- Timestamp:
- Mar 12, 2013, 11:13:03 PM (11 years ago)
- Location:
- code/trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
code/trunk
- Property svn:mergeinfo changed
/code/branches/testing (added) merged: 9015,9017,9020-9022,9025-9026,9047,9076-9078,9114-9115,9221-9226,9356,9473-9480,9524,9529-9531,9533-9545,9547-9549
- Property svn:mergeinfo changed
-
code/trunk/src/libraries/util/output/OutputManager.cc
r8858 r9550 33 33 34 34 #include "OutputManager.h" 35 36 #include <iostream> 35 37 36 38 #include "MemoryWriter.h" … … 39 41 #include "util/Output.h" 40 42 #include "util/StringUtils.h" 43 #include "util/SharedPtr.h" 41 44 42 45 namespace orxonox … … 52 55 53 56 this->subcontextCounter_ = 0; 57 58 this->isInitialized_ = false; 59 this->memoryWriterInstance_ = 0; 60 this->consoleWriterInstance_ = 0; 61 this->logWriterInstance_ = 0; 62 63 // register 'undefined' context in order to give it always the first context-ID 64 this->registerContext("undefined"); 54 65 } 55 66 … … 59 70 OutputManager::~OutputManager() 60 71 { 72 while (!this->listeners_.empty()) 73 this->unregisterListener(this->listeners_[0]); 74 75 if (this->memoryWriterInstance_) 76 delete this->memoryWriterInstance_; 77 if (this->consoleWriterInstance_) 78 delete this->consoleWriterInstance_; 79 if (this->logWriterInstance_) 80 delete this->logWriterInstance_; 81 } 82 83 /*static*/ SharedPtr<OutputManager>& OutputManager::Testing::getInstancePointer() 84 { 85 static SharedPtr<OutputManager> instance(new OutputManager()); 86 return instance; 61 87 } 62 88 … … 66 92 /*static*/ OutputManager& OutputManager::getInstance() 67 93 { 68 static OutputManager instance; 69 return instance; 94 return *OutputManager::Testing::getInstancePointer(); 70 95 } 71 96 … … 80 105 /*static*/ OutputManager& OutputManager::getInstanceAndCreateListeners() 81 106 { 82 static OutputManager& instance = OutputManager::getInstance(); 83 84 static MemoryWriter& memoryWriterInstance = MemoryWriter::getInstance(); (void)memoryWriterInstance; 85 static ConsoleWriter& consoleWriterInstance = ConsoleWriter::getInstance(); (void)consoleWriterInstance; 86 static LogWriter& logWriterInstance = LogWriter::getInstance(); (void)logWriterInstance; 107 OutputManager& instance = *OutputManager::Testing::getInstancePointer(); 108 109 if (!instance.isInitialized_) { 110 instance.isInitialized_ = true; 111 instance.memoryWriterInstance_ = new MemoryWriter(); 112 instance.consoleWriterInstance_ = new ConsoleWriter(std::cout); 113 instance.logWriterInstance_ = new LogWriter(); 114 } 87 115 88 116 return instance; … … 113 141 void OutputManager::registerListener(OutputListener* listener) 114 142 { 143 listener->registerListener(this); 115 144 this->listeners_.push_back(listener); 116 145 this->updateMasks(); … … 122 151 void OutputManager::unregisterListener(OutputListener* listener) 123 152 { 153 listener->unregisterListener(this); 124 154 for (std::vector<OutputListener*>::iterator it = this->listeners_.begin(); it != this->listeners_.end(); ++it) 125 155 { … … 267 297 { 268 298 // "undefined" context is ignored because it's used implicitly if no explicit context is defined 269 staticOutputContextMask undefined_mask = context::undefined().mask;299 OutputContextMask undefined_mask = context::undefined().mask; 270 300 271 301 std::string prefix = this->getLevelName(level) + ": ";
Note: See TracChangeset
for help on using the changeset viewer.