28 using jubatus::util::lang::shared_ptr;
32 namespace fv_converter {
35 const std::string& matcher) {
36 if (matcher ==
"" || matcher ==
"*") {
37 return shared_ptr<key_matcher>(
new match_all());
38 }
else if (matcher[0] ==
'*') {
39 return shared_ptr<key_matcher>(
new suffix_match(matcher.substr(1)));
40 }
else if (matcher[matcher.size() - 1] ==
'*') {
41 return shared_ptr<key_matcher>(
42 new prefix_match(matcher.substr(0, matcher.size() - 1)));
43 }
else if (matcher.size() >= 2 && matcher[0] ==
'/'
44 && matcher[matcher.size() - 1] ==
'/') {
45 return shared_ptr<key_matcher>(
46 new regexp_match(matcher.substr(1, matcher.size() - 2)));
48 return shared_ptr<key_matcher>(
new exact_match(matcher));
jubatus::util::lang::shared_ptr< key_matcher > create_matcher(const std::string &matcher)