![]() |
User Manual, Developers Guide and API Documentation |
![]() |
00001 /******************************************************************************* 00002 * This file is part of openWNS (open Wireless Network Simulator) 00003 * _____________________________________________________________________________ 00004 * 00005 * Copyright (C) 2004-2007 00006 * Chair of Communication Networks (ComNets) 00007 * Kopernikusstr. 16, D-52074 Aachen, Germany 00008 * phone: ++49-241-80-27910, 00009 * fax: ++49-241-80-22242 00010 * email: info@openwns.org 00011 * www: http://www.openwns.org 00012 * _____________________________________________________________________________ 00013 * 00014 * openWNS is free software; you can redistribute it and/or modify it under the 00015 * terms of the GNU Lesser General Public License version 2 as published by the 00016 * Free Software Foundation; 00017 * 00018 * openWNS is distributed in the hope that it will be useful, but WITHOUT ANY 00019 * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR 00020 * A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 00021 * details. 00022 * 00023 * You should have received a copy of the GNU Lesser General Public License 00024 * along with this program. If not, see <http://www.gnu.org/licenses/>. 00025 * 00026 ******************************************************************************/ 00027 00028 #include <WNS/logger/DelimiterFormat.hpp> 00029 00030 using namespace wns::logger; 00031 00032 STATIC_FACTORY_REGISTER_WITH_CREATOR( 00033 DelimiterFormat, 00034 FormatStrategy, 00035 "wns.logger.DelimiterFormat", 00036 wns::PyConfigViewCreator); 00037 00038 DelimiterFormat::DelimiterFormat(const pyconfig::View& pyco) : 00039 delimiter(pyco.get<std::string>("delimiter")) 00040 {} 00041 00042 std::string 00043 DelimiterFormat::formatMessage(const RawMessage& m) 00044 { 00045 std::stringstream s; 00046 s << m.time << this->delimiter 00047 << m.module << this->delimiter 00048 << m.location << this->delimiter 00049 << this->escapeBackslash(m.message) << std::endl; 00050 return s.str(); 00051 } 00052 00053 std::string 00054 DelimiterFormat::escapeBackslash(const std::string& s) 00055 { 00056 std::string res; 00057 for(size_t ii = 0; ii < s.length(); ++ii) 00058 { 00059 std::string character(1, s[ii]); 00060 if(character == "\n") 00061 { 00062 res.append("\\n"); 00063 } 00064 else 00065 { 00066 res.append(character); 00067 } 00068 } 00069 return res; 00070 } 00071 00072
1.5.5