diff options
author | Alan Conway <aconway@apache.org> | 2011-08-30 16:21:00 +0000 |
---|---|---|
committer | Alan Conway <aconway@apache.org> | 2011-08-30 16:21:00 +0000 |
commit | 4dcedd1cba9f465a9595a9f5f365b2331ff98fe1 (patch) | |
tree | 43f3348fee989b34b95cf1b7574e84282b2e1609 | |
parent | d9e5d1733dafa6a7b7cb8c325a1ccebed96bfd88 (diff) | |
download | qpid-python-4dcedd1cba9f465a9595a9f5f365b2331ff98fe1.tar.gz |
NO-JIRA: Revert change to Msg.h introduced in r1162273
The change did not compile on windows due to EXTERN declaration issues.
Changes has been backed out as it is not critical and can be addressed elsewhere.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1163275 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r-- | qpid/cpp/include/qpid/Msg.h | 2 | ||||
-rw-r--r-- | qpid/cpp/src/Makefile.am | 1 | ||||
-rw-r--r-- | qpid/cpp/src/qpid/Msg.cpp | 56 | ||||
-rw-r--r-- | qpid/cpp/src/qpid/log/Statement.cpp | 25 |
4 files changed, 25 insertions, 59 deletions
diff --git a/qpid/cpp/include/qpid/Msg.h b/qpid/cpp/include/qpid/Msg.h index 7a39a41c8d..5f0b11bc60 100644 --- a/qpid/cpp/include/qpid/Msg.h +++ b/qpid/cpp/include/qpid/Msg.h @@ -42,7 +42,7 @@ struct Msg { std::ostringstream os; Msg() {} Msg(const Msg& m) : os(m.str()) {} - QPID_TYPES_EXTERN std::string str() const; + std::string str() const { return os.str(); } operator std::string() const { return str(); } Msg& operator<<(long n) { os << n; return *this; } diff --git a/qpid/cpp/src/Makefile.am b/qpid/cpp/src/Makefile.am index 9171caed1e..2663987f75 100644 --- a/qpid/cpp/src/Makefile.am +++ b/qpid/cpp/src/Makefile.am @@ -744,7 +744,6 @@ libqpidclient_la_LDFLAGS = -version-info $(QPIDCLIENT_VERSION_INFO) libqpidtypes_la_LIBADD= -luuid libqpidtypes_la_SOURCES= \ - qpid/Msg.cpp \ qpid/types/Exception.cpp \ qpid/types/Uuid.cpp \ qpid/types/Variant.cpp \ diff --git a/qpid/cpp/src/qpid/Msg.cpp b/qpid/cpp/src/qpid/Msg.cpp deleted file mode 100644 index eb0f26d67b..0000000000 --- a/qpid/cpp/src/qpid/Msg.cpp +++ /dev/null @@ -1,56 +0,0 @@ -/* - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - * - */ - -#include "qpid/Msg.h" -#include <algorithm> -#include <string> - -namespace qpid { -using namespace std; - -struct NonPrint { bool operator()(unsigned char c) { return !isprint(c) && !isspace(c); } }; - -const char hex[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' }; - -std::string quote(const std::string& str) { - NonPrint nonPrint; - size_t n = std::count_if(str.begin(), str.end(), nonPrint); - if (n==0) return str; - std::string ret; - ret.reserve(str.size()+2*n); // Avoid extra allocations. - for (string::const_iterator i = str.begin(); i != str.end(); ++i) { - if (nonPrint(*i)) { - ret.push_back('\\'); - ret.push_back('x'); - ret.push_back(hex[((*i) >> 4)&0xf]); - ret.push_back(hex[(*i) & 0xf]); - } - else ret.push_back(*i); - } - return ret; -} - -// Quote the string so messages with null characters are preserved, e.g. messages with XIDs */ -std::string Msg::str() const { - return quote(os.str()); -} - -} // namespace qpid diff --git a/qpid/cpp/src/qpid/log/Statement.cpp b/qpid/cpp/src/qpid/log/Statement.cpp index 85b4d1f155..7dfdf08703 100644 --- a/qpid/cpp/src/qpid/log/Statement.cpp +++ b/qpid/cpp/src/qpid/log/Statement.cpp @@ -24,9 +24,32 @@ #include <ctype.h> namespace qpid { -std::string quote(const std::string& str); // Defined in Msg.cpp namespace log { +namespace { +struct NonPrint { bool operator()(unsigned char c) { return !isprint(c) && !isspace(c); } }; + +const char hex[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' }; + +std::string quote(const std::string& str) { + NonPrint nonPrint; + size_t n = std::count_if(str.begin(), str.end(), nonPrint); + if (n==0) return str; + std::string ret; + ret.reserve(str.size()+2*n); // Avoid extra allocations. + for (std::string::const_iterator i = str.begin(); i != str.end(); ++i) { + if (nonPrint(*i)) { + ret.push_back('\\'); + ret.push_back('x'); + ret.push_back(hex[((*i) >> 4)&0xf]); + ret.push_back(hex[(*i) & 0xf]); + } + else ret.push_back(*i); + } + return ret; +} +} + void Statement::log(const std::string& message) { Logger::instance().log(*this, quote(message)); } |