summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cpp/include/qpid/Msg.h2
-rw-r--r--cpp/src/Makefile.am1
-rw-r--r--cpp/src/qpid/Msg.cpp56
-rw-r--r--cpp/src/qpid/log/Statement.cpp25
4 files changed, 25 insertions, 59 deletions
diff --git a/cpp/include/qpid/Msg.h b/cpp/include/qpid/Msg.h
index 7a39a41c8d..5f0b11bc60 100644
--- a/cpp/include/qpid/Msg.h
+++ b/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/cpp/src/Makefile.am b/cpp/src/Makefile.am
index 9171caed1e..2663987f75 100644
--- a/cpp/src/Makefile.am
+++ b/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/cpp/src/qpid/Msg.cpp b/cpp/src/qpid/Msg.cpp
deleted file mode 100644
index eb0f26d67b..0000000000
--- a/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/cpp/src/qpid/log/Statement.cpp b/cpp/src/qpid/log/Statement.cpp
index 85b4d1f155..7dfdf08703 100644
--- a/cpp/src/qpid/log/Statement.cpp
+++ b/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));
}