jubatus_core  0.1.2
Jubatus: Online machine learning framework for distributed environment
Namespaces | Classes | Typedefs | Functions | Variables
jubatus::core::common::jsonconfig Namespace Reference

Namespaces

 detail
 

Classes

class  cast_check_error
 
class  config
 
class  config_error
 
class  json_config_iarchive_cast
 
class  member_collector
 
class  not_found
 
class  out_of_range
 
class  redundant_key
 
class  type_error
 

Typedefs

typedef std::vector< jubatus::util::lang::shared_ptr< config_error > > config_error_list
 

Functions

template<class T >
config_cast (const config &c)
 
template<class T >
config_cast (const config &c, config_error_list &errors)
 
template<class T >
config_cast_check (const config &c)
 
 for (size_t i=0;i< size;++i)
 
 GENERATE_CONFIG_SERIALIZE_FLOAT_DEF (float) GENERATE_CONFIG_SERIALIZE_FLOAT_DEF(double) template< typename T > inline void serialize(json_config_iarchive_cast &js
 
template<typename T >
void json_from_config (const config &conf, T &v)
 
template<typename T >
void json_from_config (const config &conf, T &v, json_config_iarchive_cast &js)
 
template<typename T >
void json_from_config (const config &conf, T &v, config_error_list *errors)
 
template<typename T >
void serialize (member_collector &mem, jubatus::util::data::serialization::named_value< T > &v)
 
template<typename T >
void serialize (json_config_iarchive_cast &js, T &v)
 
template<typename K , typename V >
void serialize (json_config_iarchive_cast &js, std::map< K, V > &m)
 
template<typename K , typename V >
void serialize (json_config_iarchive_cast &js, jubatus::util::data::unordered_map< K, V > &m)
 
template<typename T >
void serialize (json_config_iarchive_cast &js, jubatus::util::data::serialization::named_value< jubatus::util::data::optional< T > > &v)
 
template<typename T >
void serialize (json_config_iarchive_cast &js, jubatus::util::data::serialization::named_value< T > &v)
 
template<>
void serialize (json_config_iarchive_cast &js, jubatus::util::text::json::json &v)
 
template<>
void serialize (json_config_iarchive_cast &js, config &v)
 
vs swap (v)
 
std::vector< T > v (size)
 

Variables

std::vector< T > & vs
 

Typedef Documentation

typedef std::vector<jubatus::util::lang::shared_ptr<config_error> > jubatus::core::common::jsonconfig::config_error_list

Definition at line 37 of file cast.hpp.

Function Documentation

template<class T >
T jubatus::core::common::jsonconfig::config_cast ( const config c)

Definition at line 296 of file cast.hpp.

References json_from_config().

Referenced by jubatus::core::common::jsonconfig::config::As().

296  {
297  T value = T();
298  json_from_config(c, value);
299  return value;
300 }
void json_from_config(const config &conf, T &v, config_error_list *errors)
Definition: cast.hpp:290

Here is the call graph for this function:

Here is the caller graph for this function:

template<class T >
T jubatus::core::common::jsonconfig::config_cast ( const config c,
config_error_list errors 
)

Definition at line 303 of file cast.hpp.

References serialize().

303  {
304  T value = T();
305  json_config_iarchive_cast cast(c, &errors);
306  serialize(cast, value);
307  return value;
308 }
void serialize(json_config_iarchive_cast &js, config &v)
Definition: cast.hpp:279

Here is the call graph for this function:

template<class T >
T jubatus::core::common::jsonconfig::config_cast_check ( const config c)

Definition at line 311 of file cast.hpp.

References JUBATUS_EXCEPTION, and serialize().

Referenced by jubatus::core::nearest_neighbor::create_nearest_neighbor(), and jubatus::core::unlearner::create_unlearner().

311  {
312  config_error_list errors;
313  T value = T();
314  json_config_iarchive_cast cast(c, &errors);
315  serialize(cast, value);
316  if (!errors.empty()) {
317  throw JUBATUS_EXCEPTION(cast_check_error(errors));
318  }
319  return value;
320 }
void serialize(json_config_iarchive_cast &js, config &v)
Definition: cast.hpp:279
#define JUBATUS_EXCEPTION(e)
Definition: exception.hpp:79
std::vector< jubatus::util::lang::shared_ptr< config_error > > config_error_list
Definition: cast.hpp:37

Here is the call graph for this function:

Here is the caller graph for this function:

jubatus::core::common::jsonconfig::for ( )

Definition at line 197 of file cast.hpp.

References json_from_config().

197  {
198  json_from_config(js.get_config()[i], v[i], js.errors());
199  }
void json_from_config(const config &conf, T &v, config_error_list *errors)
Definition: cast.hpp:290
std::vector< T > v(size)

Here is the call graph for this function:

jubatus::core::common::jsonconfig::GENERATE_CONFIG_SERIALIZE_FLOAT_DEF ( float  )
template<typename T >
void jubatus::core::common::jsonconfig::json_from_config ( const config conf,
T &  v 
)

Definition at line 284 of file cast.hpp.

References serialize().

Referenced by config_cast(), for(), and serialize().

284  {
285  json_config_iarchive_cast cast(conf);
286  serialize(cast, v);
287 }
void serialize(json_config_iarchive_cast &js, config &v)
Definition: cast.hpp:279
std::vector< T > v(size)

Here is the call graph for this function:

Here is the caller graph for this function:

template<typename T >
void jubatus::core::common::jsonconfig::json_from_config ( const config conf,
T &  v,
json_config_iarchive_cast js 
)
template<typename T >
void jubatus::core::common::jsonconfig::json_from_config ( const config conf,
T &  v,
config_error_list errors 
)

Definition at line 290 of file cast.hpp.

References serialize().

290  {
291  json_config_iarchive_cast cast(conf, errors);
292  serialize(cast, v);
293 }
void serialize(json_config_iarchive_cast &js, config &v)
Definition: cast.hpp:279
std::vector< T > v(size)

Here is the call graph for this function:

template<typename T >
void jubatus::core::common::jsonconfig::serialize ( member_collector mem,
jubatus::util::data::serialization::named_value< T > &  v 
)
inline

Definition at line 54 of file cast.hpp.

References jubatus::core::common::jsonconfig::member_collector::append().

Referenced by config_cast(), config_cast_check(), and json_from_config().

56  {
57  mem.append(v.name);
58 }
std::vector< T > v(size)

Here is the call graph for this function:

Here is the caller graph for this function:

template<typename T >
void jubatus::core::common::jsonconfig::serialize ( json_config_iarchive_cast js,
T &  v 
)
inline

Definition at line 106 of file cast.hpp.

References jubatus::core::common::jsonconfig::json_config_iarchive_cast::get(), jubatus::core::common::jsonconfig::json_config_iarchive_cast::get_config(), jubatus::core::common::jsonconfig::member_collector::get_members(), JUBATUS_EXCEPTION, jubatus::core::common::jsonconfig::config::path(), jubatus::core::common::jsonconfig::json_config_iarchive_cast::push_error(), serialize(), and jubatus::core::common::jsonconfig::json_config_iarchive_cast::trace_error().

106  {
107  if (js.get().type() == jubatus::util::text::json::json::Object) {
108  member_collector collector;
110  std::set<std::string> members(collector.get_members().begin(),
111  collector.get_members().end());
112  for (jubatus::util::text::json::json::const_iterator it = js.get().begin();
113  it != js.get().end(); ++it) {
114  const std::string& key = it->first;
115  if (members.count(key) == 0) {
116  redundant_key e(js.get_config().path(), key);
117  if (js.trace_error()) {
118  js.push_error(e);
119  } else {
120  throw JUBATUS_EXCEPTION(e);
121  }
122  }
123  }
124  }
125 
127 }
void serialize(json_config_iarchive_cast &js, config &v)
Definition: cast.hpp:279
#define JUBATUS_EXCEPTION(e)
Definition: exception.hpp:79
std::vector< T > v(size)

Here is the call graph for this function:

template<typename K , typename V >
void jubatus::core::common::jsonconfig::serialize ( json_config_iarchive_cast js,
std::map< K, V > &  m 
)
inline

Definition at line 204 of file cast.hpp.

References jubatus::core::common::jsonconfig::config::begin(), jubatus::core::common::jsonconfig::detail::check_json_type(), jubatus::core::common::jsonconfig::config::end(), jubatus::core::common::jsonconfig::json_config_iarchive_cast::errors(), jubatus::core::common::jsonconfig::json_config_iarchive_cast::get_config(), and json_from_config().

204  {
205  if (!detail::check_json_type(js, jubatus::util::text::json::json::Object)) {
206  return;
207  }
208 
209  std::map<K, V> tmp;
210  typedef config::iterator iter_t;
211  for (iter_t it = js.get_config().begin(), end = js.get_config().end();
212  it != end; ++it) {
213  V value = V();
214  json_from_config(it.value(), value, js.errors());
215  tmp[it.key()] = value;
216  }
217  tmp.swap(m);
218 }
void json_from_config(const config &conf, T &v, config_error_list *errors)
Definition: cast.hpp:290
bool check_json_type(json_config_iarchive_cast &js, jubatus::util::text::json::json::json_type_t t)
Definition: cast.hpp:130

Here is the call graph for this function:

template<typename K , typename V >
void jubatus::core::common::jsonconfig::serialize ( json_config_iarchive_cast js,
jubatus::util::data::unordered_map< K, V > &  m 
)
inline

Definition at line 221 of file cast.hpp.

References jubatus::core::common::jsonconfig::config::begin(), jubatus::core::common::jsonconfig::detail::check_json_type(), jubatus::core::common::jsonconfig::config::end(), jubatus::core::common::jsonconfig::json_config_iarchive_cast::errors(), jubatus::core::common::jsonconfig::json_config_iarchive_cast::get_config(), and json_from_config().

223  {
224  if (!detail::check_json_type(js, jubatus::util::text::json::json::Object)) {
225  return;
226  }
227 
228  jubatus::util::data::unordered_map<K, V> tmp;
229  typedef config::iterator iter_t;
230  for (iter_t it = js.get_config().begin(), end = js.get_config().end();
231  it != end; ++it) {
232  V value = V();
233  json_from_config(it.value(), value, js.errors());
234  tmp[it.key()] = value;
235  }
236  tmp.swap(m);
237 }
void json_from_config(const config &conf, T &v, config_error_list *errors)
Definition: cast.hpp:290
bool check_json_type(json_config_iarchive_cast &js, jubatus::util::text::json::json::json_type_t t)
Definition: cast.hpp:130

Here is the call graph for this function:

template<typename T >
void jubatus::core::common::jsonconfig::serialize ( json_config_iarchive_cast js,
jubatus::util::data::serialization::named_value< jubatus::util::data::optional< T > > &  v 
)
inline

Definition at line 240 of file cast.hpp.

References jubatus::core::common::jsonconfig::config::contain(), jubatus::core::common::jsonconfig::json_config_iarchive_cast::errors(), jubatus::core::common::jsonconfig::config::get(), jubatus::core::common::jsonconfig::json_config_iarchive_cast::get_config(), and json_from_config().

243  {
244  using jubatus::util::text::json::json;
245  if (js.get_config().contain(v.name)
246  && (js.get_config()[v.name].get().type() != json::Null)) {
247  T value = T();
248  json_from_config(js.get_config()[v.name], value, js.errors());
249  v.v = value;
250  } else {
251  // optional can be null
252  v.v = jubatus::util::data::optional<T>();
253  }
254 }
void json_from_config(const config &conf, T &v, config_error_list *errors)
Definition: cast.hpp:290
std::vector< T > v(size)

Here is the call graph for this function:

template<typename T >
void jubatus::core::common::jsonconfig::serialize ( json_config_iarchive_cast js,
jubatus::util::data::serialization::named_value< T > &  v 
)
inline

Definition at line 257 of file cast.hpp.

References jubatus::core::common::jsonconfig::config::contain(), jubatus::core::common::jsonconfig::json_config_iarchive_cast::errors(), jubatus::core::common::jsonconfig::json_config_iarchive_cast::get_config(), json_from_config(), JUBATUS_EXCEPTION, jubatus::core::common::jsonconfig::config::path(), jubatus::core::common::jsonconfig::json_config_iarchive_cast::push_error(), and jubatus::core::common::jsonconfig::json_config_iarchive_cast::trace_error().

258  {
259  if (js.get_config().contain(v.name)) {
260  json_from_config(js.get_config()[v.name], v.v, js.errors());
261  } else {
262  not_found e(js.get_config().path(), v.name);
263  if (js.trace_error()) {
264  js.push_error(e);
265  } else {
266  throw JUBATUS_EXCEPTION(e);
267  }
268  }
269 }
void json_from_config(const config &conf, T &v, config_error_list *errors)
Definition: cast.hpp:290
#define JUBATUS_EXCEPTION(e)
Definition: exception.hpp:79
std::vector< T > v(size)

Here is the call graph for this function:

template<>
void jubatus::core::common::jsonconfig::serialize ( json_config_iarchive_cast js,
jubatus::util::text::json::json &  v 
)
inline

Definition at line 272 of file cast.hpp.

References jubatus::core::common::jsonconfig::json_config_iarchive_cast::get().

274  {
275  v = js.get();
276 }
std::vector< T > v(size)

Here is the call graph for this function:

template<>
void jubatus::core::common::jsonconfig::serialize ( json_config_iarchive_cast js,
config v 
)
inline

Definition at line 279 of file cast.hpp.

References jubatus::core::common::jsonconfig::json_config_iarchive_cast::get(), jubatus::core::common::jsonconfig::json_config_iarchive_cast::get_config(), and jubatus::core::common::jsonconfig::config::path().

Referenced by serialize().

279  {
280  v = config(js.get(), js.get_config().path());
281 }
std::vector< T > v(size)

Here is the call graph for this function:

Here is the caller graph for this function:

vs jubatus::core::common::jsonconfig::swap ( v  )
std::vector<T> jubatus::core::common::jsonconfig::v ( size  )

Variable Documentation

std::vector<T>& jubatus::core::common::jsonconfig::vs
Initial value:
{
if (!detail::check_json_type(js, jubatus::util::text::json::json::Array)) {
return;
}
size_t size = js.get_config().size()
bool check_json_type(json_config_iarchive_cast &js, jubatus::util::text::json::json::json_type_t t)
Definition: cast.hpp:130

Definition at line 189 of file cast.hpp.