jubatus_core  0.1.2
Jubatus: Online machine learning framework for distributed environment
util.cpp
Go to the documentation of this file.
1 // Jubatus: Online machine learning framework for distributed environment
2 // Copyright (C) 2011 Preferred Networks and Nippon Telegraph and Telephone Corporation.
3 //
4 // This library is free software; you can redistribute it and/or
5 // modify it under the terms of the GNU Lesser General Public
6 // License version 2.1 as published by the Free Software Foundation.
7 //
8 // This library is distributed in the hope that it will be useful,
9 // but WITHOUT ANY WARRANTY; without even the implied warranty of
10 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 // Lesser General Public License for more details.
12 //
13 // You should have received a copy of the GNU Lesser General Public
14 // License along with this library; if not, write to the Free Software
15 // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16 
17 #include <map>
18 #include <stdexcept>
19 #include <string>
20 #include "jubatus/util/lang/cast.h"
21 #include "exception.hpp"
22 #include "util.hpp"
23 
24 namespace jubatus {
25 namespace core {
26 namespace fv_converter {
27 
28 const std::string& get_or_die(
29  const std::map<std::string, std::string>& params,
30  const std::string& key) {
31  std::map<std::string, std::string>::const_iterator it = params.find(key);
32  if (it == params.end()) {
34  std::string("\"" + key + "\" is not specified in parameters")));
35  }
36  return it->second;
37 }
38 
39 std::string get_with_default(
40  const std::map<std::string, std::string>& params,
41  const std::string& key,
42  const std::string& default_value) {
43  std::map<std::string, std::string>::const_iterator it = params.find(key);
44  if (it == params.end()) {
45  return default_value;
46  } else {
47  return it->second;
48  }
49 }
50 
52  const std::map<std::string, std::string>& params,
53  const std::string& key) {
54  const std::string& s = get_or_die(params, key);
55  try {
56  return jubatus::util::lang::lexical_cast<int>(s);
57  } catch (const std::bad_cast&) {
59  std::string("\"" + key + "\" must be an integer value: " + s)));
60  }
61 }
62 
63 } // namespace fv_converter
64 } // namespace core
65 } // namespace jubatus
#define JUBATUS_EXCEPTION(e)
Definition: exception.hpp:79
const std::string & get_or_die(const std::map< std::string, std::string > &params, const std::string &key)
Definition: util.cpp:28
std::string get_with_default(const std::map< std::string, std::string > &params, const std::string &key, const std::string &default_value)
Definition: util.cpp:39
int get_int_or_die(const std::map< std::string, std::string > &params, const std::string &key)
Definition: util.cpp:51