From: Casey Bodley Date: Fri, 3 Nov 2017 20:24:22 +0000 (-0400) Subject: common: add simplified interfaces to get_str_* X-Git-Tag: v13.0.1~233^2~3 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=0b39e47016a425b17435ba4d0e47d231768c76fc;p=ceph.git common: add simplified interfaces to get_str_* 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 --- diff --git a/src/common/str_list.cc b/src/common/str_list.cc index e029de71f68..7831f435f94 100644 --- a/src/common/str_list.cc +++ b/src/common/str_list.cc @@ -62,6 +62,13 @@ void get_str_list(const string& str, list& str_list) return get_str_list(str, delims, str_list); } +list get_str_list(const string& str, const char *delims) +{ + list result; + get_str_list(str, delims, result); + return result; +} + void get_str_vec(const string& str, const char *delims, vector& str_vec) { size_t pos = 0; @@ -83,6 +90,13 @@ void get_str_vec(const string& str, vector& str_vec) return get_str_vec(str, delims, str_vec); } +vector get_str_vec(const string& str, const char *delims) +{ + vector result; + get_str_vec(str, delims, result); + return result; +} + void get_str_set(const string& str, const char *delims, set& str_set) { size_t pos = 0; @@ -104,3 +118,10 @@ void get_str_set(const string& str, set& str_set) const char *delims = ";,= \t"; return get_str_set(str, delims, str_set); } + +set get_str_set(const string& str, const char *delims) +{ + set result; + get_str_set(str, delims, result); + return result; +} diff --git a/src/include/str_list.h b/src/include/str_list.h index 9c782d4adf9..0a50be7af39 100644 --- a/src/include/str_list.h +++ b/src/include/str_list.h @@ -26,6 +26,9 @@ extern void get_str_list(const std::string& str, const char *delims, std::list& str_list); +std::list 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& str_vec); +std::vector 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& str_list); +std::set 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& v, const std::string return r; } -static inline std::vector get_str_vec(const std::string& str) -{ - std::vector str_vec; - const char *delims = ";,= \t"; - get_str_vec(str, delims, str_vec); - return str_vec; -} - #endif