]> git.proxmox.com Git - ceph.git/blob - ceph/src/common/str_list.cc
016155e98b7332262a30183f816802d1f042dc29
[ceph.git] / ceph / src / common / str_list.cc
1 // -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*-
2 // vim: ts=8 sw=2 smarttab
3 /*
4 * Ceph - scalable distributed file system
5 *
6 * Copyright (C) 2009-2010 Dreamhost
7 *
8 * This is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Lesser General Public
10 * License version 2.1, as published by the Free Software
11 * Foundation. See file COPYING.
12 *
13 */
14
15 #include "include/str_list.h"
16
17 using std::string;
18 using std::vector;
19 using std::set;
20 using std::list;
21 using ceph::for_each_substr;
22
23 void get_str_list(const string& str, const char *delims, list<string>& str_list)
24 {
25 str_list.clear();
26 for_each_substr(str, delims, [&str_list] (auto token) {
27 str_list.emplace_back(token.begin(), token.end());
28 });
29 }
30
31 void get_str_list(const string& str, list<string>& str_list)
32 {
33 const char *delims = ";,= \t";
34 get_str_list(str, delims, str_list);
35 }
36
37 list<string> get_str_list(const string& str, const char *delims)
38 {
39 list<string> result;
40 get_str_list(str, delims, result);
41 return result;
42 }
43
44 void get_str_vec(const string& str, const char *delims, vector<string>& str_vec)
45 {
46 str_vec.clear();
47 for_each_substr(str, delims, [&str_vec] (auto token) {
48 str_vec.emplace_back(token.begin(), token.end());
49 });
50 }
51
52 void get_str_vec(const string& str, vector<string>& str_vec)
53 {
54 const char *delims = ";,= \t";
55 get_str_vec(str, delims, str_vec);
56 }
57
58 vector<string> get_str_vec(const string& str, const char *delims)
59 {
60 vector<string> result;
61 get_str_vec(str, delims, result);
62 return result;
63 }