]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
common: add simplified interfaces to get_str_*
authorCasey Bodley <cbodley@redhat.com>
Fri, 3 Nov 2017 20:24:22 +0000 (16:24 -0400)
committerCasey Bodley <cbodley@redhat.com>
Fri, 10 Nov 2017 16:05:45 +0000 (11:05 -0500)
the simpler interfaces rely on return value optimization to avoid
copying the result. removing the container from the argument list makes
it easier to provide a default argument for 'delims'

Signed-off-by: Casey Bodley <cbodley@redhat.com>
src/common/str_list.cc
src/include/str_list.h

index e029de71f689c280364475ecf56f6c45613dc256..7831f435f9479f0e0e6701edddacd3b52e2434c8 100644 (file)
@@ -62,6 +62,13 @@ void get_str_list(const string& str, list<string>& str_list)
   return get_str_list(str, delims, str_list);
 }
 
+list<string> get_str_list(const string& str, const char *delims)
+{
+  list<string> result;
+  get_str_list(str, delims, result);
+  return result;
+}
+
 void get_str_vec(const string& str, const char *delims, vector<string>& str_vec)
 {
   size_t pos = 0;
@@ -83,6 +90,13 @@ void get_str_vec(const string& str, vector<string>& str_vec)
   return get_str_vec(str, delims, str_vec);
 }
 
+vector<string> get_str_vec(const string& str, const char *delims)
+{
+  vector<string> result;
+  get_str_vec(str, delims, result);
+  return result;
+}
+
 void get_str_set(const string& str, const char *delims, set<string>& str_set)
 {
   size_t pos = 0;
@@ -104,3 +118,10 @@ void get_str_set(const string& str, set<string>& str_set)
   const char *delims = ";,= \t";
   return get_str_set(str, delims, str_set);
 }
+
+set<string> get_str_set(const string& str, const char *delims)
+{
+  set<string> result;
+  get_str_set(str, delims, result);
+  return result;
+}
index 9c782d4adf9a4b74791cc7254bdd150dde950c70..0a50be7af397aff470595c7c5eafda55ecb1ae77 100644 (file)
@@ -26,6 +26,9 @@ extern void get_str_list(const std::string& str,
                          const char *delims,
                         std::list<std::string>& str_list);
 
+std::list<std::string> get_str_list(const std::string& str,
+                                    const char *delims = ";,= \t");
+
 /**
  * Split **str** into a list of strings, using the ";,= \t" delimiters and output the result in **str_vec**.
  * 
@@ -46,6 +49,8 @@ extern void get_str_vec(const std::string& str,
                          const char *delims,
                         std::vector<std::string>& str_vec);
 
+std::vector<std::string> get_str_vec(const std::string& str,
+                                     const char *delims = ";,= \t");
 /**
  * Split **str** into a list of strings, using the ";,= \t" delimiters and output the result in **str_list**.
  * 
@@ -66,6 +71,9 @@ extern void get_str_set(const std::string& str,
                         const char *delims,
                        std::set<std::string>& str_list);
 
+std::set<std::string> get_str_set(const std::string& str,
+                                  const char *delims = ";,= \t");
+
 /**
  * Return a String containing the vector **v** joined with **sep**
  * 
@@ -90,12 +98,4 @@ inline std::string str_join(const std::vector<std::string>& v, const std::string
   return r;
 }
 
-static inline std::vector<std::string> get_str_vec(const std::string& str)
-{
-  std::vector<std::string> str_vec;
-  const char *delims = ";,= \t";
-  get_str_vec(str, delims, str_vec);
-  return str_vec;
-}
-
 #endif