You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by be...@apache.org on 2012/05/14 23:20:21 UTC
svn commit: r1338432 - in /incubator/mesos/trunk/src: common/strings.hpp
master/slaves_manager.cpp tests/strings_tests.cpp
Author: benh
Date: Mon May 14 21:20:21 2012
New Revision: 1338432
URL: http://svn.apache.org/viewvc?rev=1338432&view=rev
Log:
Updated the strings::pairs function to take multiple delimiters (https://reviews.apache.org/r/5103).
Modified:
incubator/mesos/trunk/src/common/strings.hpp
incubator/mesos/trunk/src/master/slaves_manager.cpp
incubator/mesos/trunk/src/tests/strings_tests.cpp
Modified: incubator/mesos/trunk/src/common/strings.hpp
URL: http://svn.apache.org/viewvc/incubator/mesos/trunk/src/common/strings.hpp?rev=1338432&r1=1338431&r2=1338432&view=diff
==============================================================================
--- incubator/mesos/trunk/src/common/strings.hpp (original)
+++ incubator/mesos/trunk/src/common/strings.hpp Mon May 14 21:20:21 2012
@@ -134,15 +134,22 @@ inline std::vector<std::string> split(
}
+// Returns a map of strings to strings based on calling split
+// twice. For example:
+//
+// pairs("foo=1;bar=2;foo=3", ";&", "=")
+//
+// Would return a map with the following:
+// foo: [1, 3]
+// bar: [2]
inline std::map<std::string, std::vector<std::string> > pairs(
- const std::string& s, char delim1, char delim2)
+ const std::string& s, const std::string& delims1, const std::string& delims2)
{
std::map<std::string, std::vector<std::string> > result;
- const std::vector<std::string>& tokens = split(s, std::string(1, delim1));
+ const std::vector<std::string>& tokens = split(s, delims1);
foreach (const std::string& token, tokens) {
- const std::vector<std::string>& pairs =
- split(token, std::string(1, delim2));
+ const std::vector<std::string>& pairs = split(token, delims2);
if (pairs.size() == 2) {
result[pairs[0]].push_back(pairs[1]);
}
Modified: incubator/mesos/trunk/src/master/slaves_manager.cpp
URL: http://svn.apache.org/viewvc/incubator/mesos/trunk/src/master/slaves_manager.cpp?rev=1338432&r1=1338431&r2=1338432&view=diff
==============================================================================
--- incubator/mesos/trunk/src/master/slaves_manager.cpp (original)
+++ incubator/mesos/trunk/src/master/slaves_manager.cpp Mon May 14 21:20:21 2012
@@ -820,7 +820,7 @@ Future<HttpResponse> SlavesManager::add(
uint16_t port = 0;
map<string, vector<string> > pairs =
- strings::pairs(request.query, ',', '=');
+ strings::pairs(request.query, ",", "=");
// Make sure there is at least a 'hostname=' and 'port='.
if (pairs.count("hostname") == 0) {
@@ -863,7 +863,7 @@ Future<HttpResponse> SlavesManager::remo
uint16_t port = 0;
map<string, vector<string> > pairs =
- strings::pairs(request.query, ',', '=');
+ strings::pairs(request.query, ",", "=");
// Make sure there is at least a 'hostname=' and 'port='.
if (pairs.count("hostname") == 0) {
@@ -906,7 +906,7 @@ Future<HttpResponse> SlavesManager::acti
uint16_t port = 0;
map<string, vector<string> > pairs =
- strings::pairs(request.query, ',', '=');
+ strings::pairs(request.query, ",", "=");
// Make sure there is at least a 'hostname=' and 'port='.
if (pairs.count("hostname") == 0) {
@@ -949,7 +949,7 @@ Future<HttpResponse> SlavesManager::deac
uint16_t port = 0;
map<string, vector<string> > pairs =
- strings::pairs(request.query, ',', '=');
+ strings::pairs(request.query, ",", "=");
// Make sure there is at least a 'hostname=' and 'port='.
if (pairs.count("hostname") == 0) {
Modified: incubator/mesos/trunk/src/tests/strings_tests.cpp
URL: http://svn.apache.org/viewvc/incubator/mesos/trunk/src/tests/strings_tests.cpp?rev=1338432&r1=1338431&r2=1338432&view=diff
==============================================================================
--- incubator/mesos/trunk/src/tests/strings_tests.cpp (original)
+++ incubator/mesos/trunk/src/tests/strings_tests.cpp Mon May 14 21:20:21 2012
@@ -134,7 +134,7 @@ TEST(StringsTest, SplitWithMultipleDelim
TEST(StringsTest, Pairs)
{
- map<string, vector<string> > pairs = strings::pairs("one=1,two=2", ',', '=');
+ map<string, vector<string> > pairs = strings::pairs("one=1,two=2", ",", "=");
ASSERT_EQ(2, pairs.size());
ASSERT_EQ(1, pairs.count("one"));
ASSERT_EQ(1, pairs["one"].size());