- Timestamp:
- Jul 24, 2011, 1:22:11 AM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
code/branches/output/src/libraries/util/output/OutputManager.cc
r8765 r8771 47 47 virtual void output(OutputLevel level, OutputContext context, const std::string& message) 48 48 { 49 COUT(0) << (int)level << " / " << context<< " : " << message << endl;49 COUT(0) << OutputManager::getInstance().getLevelName(level) << " / " << OutputManager::getInstance().getContextName(context) << " : " << message << endl; 50 50 } 51 51 }; … … 119 119 this->combinedContextMask_ |= this->listeners_[i]->getContextMask(); 120 120 } 121 122 OutputContext OutputManager::registerContext(const std::string& name) 123 { 124 boost::bimap<OutputContext, std::string>::right_map::iterator it = this->contexts_.right.find(name); 125 if (it == this->contexts_.right.end()) 126 { 127 OutputContext context = 0x1 << this->contexts_.size(); 128 this->contexts_.insert(boost::bimap<OutputContext, std::string>::value_type(context, name)); 129 return context; 130 } 131 else 132 { 133 return it->second; 134 } 135 } 136 137 OutputContext registerContext(const std::string& name) 138 { 139 COUT(0) << "### register context " << name << std::endl; 140 return OutputManager::getInstance().registerContext(name); 141 } 142 143 const std::string& OutputManager::getLevelName(OutputLevel level) const 144 { 145 switch (level) 146 { 147 case level::none: { static std::string name = "None"; return name; } 148 case level::debug_output: { static std::string name = "Debug"; return name; } 149 case level::user_error: { static std::string name = "Error"; return name; } 150 case level::user_warning: { static std::string name = "Warning"; return name; } 151 case level::user_status: { static std::string name = "Status"; return name; } 152 case level::user_info: { static std::string name = "Info"; return name; } 153 case level::internal_error: { static std::string name = "Error (internal)"; return name; } 154 case level::internal_warning: { static std::string name = "Warning (internal)"; return name; } 155 case level::internal_status: { static std::string name = "Status (internal)"; return name; } 156 case level::internal_info: { static std::string name = "Info (internal)"; return name; } 157 case level::verbose: { static std::string name = "Verbose"; return name; } 158 case level::verbose_more: { static std::string name = "Verbose (more)"; return name; } 159 case level::verbose_ultra: { static std::string name = "Verbose (ultra)"; return name; } 160 default: { static std::string name = ""; return name; } 161 } 162 } 163 164 const std::string& OutputManager::getContextName(OutputContext context) const 165 { 166 if (context != context::undefined) 167 { 168 boost::bimap<OutputContext, std::string>::left_map::const_iterator it = this->contexts_.left.find(context); 169 if (it != this->contexts_.left.end()) 170 { 171 return it->second; 172 } 173 else 174 { 175 static std::string composed_context; 176 composed_context = ""; 177 size_t counter = 0; 178 for (OutputContext context_test = 0x1; context_test != 0x0; context_test = context_test << 1) 179 { 180 if (context & context_test) 181 { 182 it = this->contexts_.left.find(context_test); 183 if (it != this->contexts_.left.end()) 184 { 185 if (counter) 186 composed_context += ", "; 187 188 composed_context += it->second; 189 ++counter; 190 } 191 } 192 } 193 return composed_context; 194 } 195 } 196 return BLANKSTRING; 197 } 121 198 } 122 199 }
Note: See TracChangeset
for help on using the changeset viewer.