summaryrefslogtreecommitdiff
path: root/cpp/src/qpid
diff options
context:
space:
mode:
authorGordon Sim <gsim@apache.org>2008-05-01 22:20:24 +0000
committerGordon Sim <gsim@apache.org>2008-05-01 22:20:24 +0000
commit4c8aa15df3877d0848002f5d89cfa5b976dc5005 (patch)
treed0cf9c9d7f2568216d52f62bb547c3605041f716 /cpp/src/qpid
parent4a05e650fc2d1a3a729e2c0409d3e11963b02de8 (diff)
downloadqpid-python-4c8aa15df3877d0848002f5d89cfa5b976dc5005.tar.gz
Boost's string split function causes problems on older versions of the library. Replaced with homegrown equivalent.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@652689 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/qpid')
-rw-r--r--cpp/src/qpid/StringUtils.cpp50
-rw-r--r--cpp/src/qpid/StringUtils.h43
-rw-r--r--cpp/src/qpid/broker/Message.cpp6
-rw-r--r--cpp/src/qpid/broker/Queue.cpp7
4 files changed, 98 insertions, 8 deletions
diff --git a/cpp/src/qpid/StringUtils.cpp b/cpp/src/qpid/StringUtils.cpp
new file mode 100644
index 0000000000..17eb141e12
--- /dev/null
+++ b/cpp/src/qpid/StringUtils.cpp
@@ -0,0 +1,50 @@
+/*
+ *
+ * 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 "StringUtils.h"
+
+namespace qpid {
+
+using std::string;
+using std::vector;
+
+void split(vector<string>& out, const string& in, const string& delims)
+{
+ string::size_type start = in.find_first_not_of(delims);
+ if (start == string::npos) return;
+
+ string::size_type end = in.find_first_of(delims, start);
+ while (end != string::npos) {
+ out.push_back(in.substr(start, end - start));
+ start = in.find_first_not_of(delims, end);
+ if (start == string::npos) return;
+ end = in.find_first_of(delims, start);
+ }
+ out.push_back(in.substr(start));
+}
+
+vector<string> split(const string& in, const string& delims)
+{
+ vector<string> out;
+ split(out, in, delims);
+ return out;
+}
+
+} // namespace qpid
diff --git a/cpp/src/qpid/StringUtils.h b/cpp/src/qpid/StringUtils.h
new file mode 100644
index 0000000000..3120e43334
--- /dev/null
+++ b/cpp/src/qpid/StringUtils.h
@@ -0,0 +1,43 @@
+#ifndef QPID_STRINGUTILS_H
+#define QPID_STRINGUTILS_H
+
+/*
+ *
+ * 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 <string>
+#include <vector>
+
+namespace qpid {
+
+/**
+ * Split 'in' into words using delimiters in 'delims' and put
+ * resulting strings into 'out' vector.
+ */
+void split(std::vector<std::string>& out, const std::string& in, const std::string& delims);
+/**
+ * Split 'in' into words using delimiters in 'delims' and return the
+ * resulting strings in a vector.
+ */
+std::vector<std::string> split(const std::string& in, const std::string& delims);
+
+} // namespace qpid
+
+#endif /*!QPID_STRINGUTILS_H*/
diff --git a/cpp/src/qpid/broker/Message.cpp b/cpp/src/qpid/broker/Message.cpp
index 27076ccad8..1b1cec9f85 100644
--- a/cpp/src/qpid/broker/Message.cpp
+++ b/cpp/src/qpid/broker/Message.cpp
@@ -21,6 +21,7 @@
#include "Message.h"
#include "ExchangeRegistry.h"
+#include "qpid/StringUtils.h"
#include "qpid/framing/frame_functors.h"
#include "qpid/framing/FieldTable.h"
#include "qpid/framing/MessageTransferBody.h"
@@ -28,8 +29,6 @@
#include "qpid/framing/SequenceNumber.h"
#include "qpid/framing/TypeFilter.h"
#include "qpid/log/Statement.h"
-#include <boost/algorithm/string/classification.hpp>
-#include <boost/algorithm/string/split.hpp>
using boost::intrusive_ptr;
using namespace qpid::broker;
@@ -259,8 +258,7 @@ bool Message::isExcluded(const std::vector<std::string>& excludes) const
if (headers) {
std::string traceStr = headers->getString(X_QPID_TRACE);
if (traceStr.size()) {
- std::vector<std::string> trace;
- boost::split(trace, traceStr, boost::is_any_of(", ") );
+ std::vector<std::string> trace = split(traceStr, ", ");
for (std::vector<std::string>::const_iterator i = excludes.begin(); i != excludes.end(); i++) {
for (std::vector<std::string>::const_iterator j = trace.begin(); j != trace.end(); j++) {
diff --git a/cpp/src/qpid/broker/Queue.cpp b/cpp/src/qpid/broker/Queue.cpp
index 06009a208d..4ac061ac25 100644
--- a/cpp/src/qpid/broker/Queue.cpp
+++ b/cpp/src/qpid/broker/Queue.cpp
@@ -26,6 +26,7 @@
#include "MessageStore.h"
#include "QueueRegistry.h"
+#include "qpid/StringUtils.h"
#include "qpid/log/Statement.h"
#include "qpid/framing/reply_exceptions.h"
#include "qpid/sys/Monitor.h"
@@ -37,8 +38,6 @@
#include <boost/bind.hpp>
#include <boost/intrusive_ptr.hpp>
-#include <boost/algorithm/string/classification.hpp>
-#include <boost/algorithm/string/split.hpp>
using namespace qpid::broker;
using namespace qpid::sys;
@@ -517,9 +516,9 @@ void Queue::configure(const FieldTable& _settings)
traceId = _settings.getString(qpidTraceIdentity);
std::string excludeList = _settings.getString(qpidTraceExclude);
if (excludeList.size()) {
- boost::split(traceExclude, excludeList, boost::is_any_of(", ") );
+ split(traceExclude, excludeList, ", ");
}
- QPID_LOG(info, "Configured queue " << getName() << " with qpid.trace.id='" << traceId
+ QPID_LOG(debug, "Configured queue " << getName() << " with qpid.trace.id='" << traceId
<< "' and qpid.trace.exclude='"<< excludeList << "' i.e. " << traceExclude.size() << " elements");
if (mgmtObject.get() != 0)