jubatus_core  0.1.2
Jubatus: Online machine learning framework for distributed environment
Classes | Public Types | Public Member Functions | Private Attributes | List of all members
jubatus::core::framework::linear_mixable_helper< Model, Diff > Class Template Reference

#include <mixable_helper.hpp>

Inheritance diagram for jubatus::core::framework::linear_mixable_helper< Model, Diff >:
Inheritance graph
Collaboration diagram for jubatus::core::framework::linear_mixable_helper< Model, Diff >:
Collaboration graph

Classes

struct  internal_diff_object
 

Public Types

typedef Diff diff_type
 
typedef jubatus::util::lang::shared_ptr< Model > model_ptr
 
typedef Model model_type
 

Public Member Functions

diff_object convert_diff_object (const msgpack::object &obj) const
 
void get_diff (packer &pk) const
 
model_ptr get_model () const
 
storage::version get_version () const
 
 linear_mixable_helper (model_ptr model)
 
void mix (const msgpack::object &obj, diff_object ptr) const
 
bool put_diff (const diff_object &ptr)
 
void set_model (model_ptr m)
 
virtual ~linear_mixable_helper ()
 
- Public Member Functions inherited from jubatus::core::framework::linear_mixable
 linear_mixable ()
 
virtual ~linear_mixable ()
 
- Public Member Functions inherited from jubatus::core::framework::mixable
 mixable ()
 
 mixable (const std::string &name)
 
virtual std::set< std::string > mixables () const
 
virtual ~mixable ()
 

Private Attributes

model_ptr model_
 

Additional Inherited Members

- Protected Attributes inherited from jubatus::core::framework::mixable
std::set< std::string > mixables_
 

Detailed Description

template<typename Model, typename Diff>
class jubatus::core::framework::linear_mixable_helper< Model, Diff >

Definition at line 39 of file mixable_helper.hpp.

Member Typedef Documentation

template<typename Model, typename Diff>
typedef Diff jubatus::core::framework::linear_mixable_helper< Model, Diff >::diff_type

Definition at line 42 of file mixable_helper.hpp.

template<typename Model, typename Diff>
typedef jubatus::util::lang::shared_ptr<Model> jubatus::core::framework::linear_mixable_helper< Model, Diff >::model_ptr

Definition at line 43 of file mixable_helper.hpp.

template<typename Model, typename Diff>
typedef Model jubatus::core::framework::linear_mixable_helper< Model, Diff >::model_type

Definition at line 41 of file mixable_helper.hpp.

Constructor & Destructor Documentation

template<typename Model, typename Diff>
jubatus::core::framework::linear_mixable_helper< Model, Diff >::linear_mixable_helper ( model_ptr  model)
inlineexplicit

Definition at line 45 of file mixable_helper.hpp.

46  : model_(model) {
47  if (!model) {
48  throw JUBATUS_EXCEPTION(common::config_not_set());
49  }
50  }
#define JUBATUS_EXCEPTION(e)
Definition: exception.hpp:79
template<typename Model, typename Diff>
virtual jubatus::core::framework::linear_mixable_helper< Model, Diff >::~linear_mixable_helper ( )
inlinevirtual

Definition at line 59 of file mixable_helper.hpp.

59  {
60  }

Member Function Documentation

template<typename Model, typename Diff>
diff_object jubatus::core::framework::linear_mixable_helper< Model, Diff >::convert_diff_object ( const msgpack::object &  obj) const
inlinevirtual

Implements jubatus::core::framework::linear_mixable.

Definition at line 66 of file mixable_helper.hpp.

66  {
67  internal_diff_object* diff = new internal_diff_object;
68  diff_object diff_obj(diff);
69  obj.convert(&diff->diff_);
70  return diff_obj;
71  }
jubatus::util::lang::shared_ptr< diff_object_raw > diff_object
template<typename Model, typename Diff>
void jubatus::core::framework::linear_mixable_helper< Model, Diff >::get_diff ( packer pk) const
inlinevirtual

Implements jubatus::core::framework::linear_mixable.

Definition at line 85 of file mixable_helper.hpp.

85  {
86  Diff diff;
87  model_->get_diff(diff);
88  pk.pack(diff);
89  }
template<typename Model, typename Diff>
model_ptr jubatus::core::framework::linear_mixable_helper< Model, Diff >::get_model ( ) const
inline
template<typename Model, typename Diff>
storage::version jubatus::core::framework::linear_mixable_helper< Model, Diff >::get_version ( ) const
inlinevirtual

Reimplemented from jubatus::core::framework::mixable.

Definition at line 101 of file mixable_helper.hpp.

101  {
102  return model_->get_version();
103  }
template<typename Model, typename Diff>
void jubatus::core::framework::linear_mixable_helper< Model, Diff >::mix ( const msgpack::object &  obj,
diff_object  ptr 
) const
inlinevirtual

Implements jubatus::core::framework::linear_mixable.

Definition at line 73 of file mixable_helper.hpp.

73  {
74  Diff diff;
75  internal_diff_object* diff_obj =
76  dynamic_cast<internal_diff_object*>(ptr.get());
77  if (!diff_obj) {
78  throw JUBATUS_EXCEPTION(
79  core::common::exception::runtime_error("bad diff_object"));
80  }
81  obj.convert(&diff);
82  model_->mix(diff, diff_obj->diff_);
83  }
#define JUBATUS_EXCEPTION(e)
Definition: exception.hpp:79
template<typename Model, typename Diff>
bool jubatus::core::framework::linear_mixable_helper< Model, Diff >::put_diff ( const diff_object ptr)
inlinevirtual

Implements jubatus::core::framework::linear_mixable.

Definition at line 91 of file mixable_helper.hpp.

91  {
92  internal_diff_object* diff_obj =
93  dynamic_cast<internal_diff_object*>(ptr.get());
94  if (!diff_obj) {
95  throw JUBATUS_EXCEPTION(
96  core::common::exception::runtime_error("bad diff_object"));
97  }
98  return model_->put_diff(diff_obj->diff_);
99  }
#define JUBATUS_EXCEPTION(e)
Definition: exception.hpp:79
template<typename Model, typename Diff>
void jubatus::core::framework::linear_mixable_helper< Model, Diff >::set_model ( model_ptr  m)
inline

Definition at line 52 of file mixable_helper.hpp.

52  {
53  if (!m) {
54  throw JUBATUS_EXCEPTION(common::config_not_set());
55  }
56  model_ = m;
57  }
#define JUBATUS_EXCEPTION(e)
Definition: exception.hpp:79

Member Data Documentation

template<typename Model, typename Diff>
model_ptr jubatus::core::framework::linear_mixable_helper< Model, Diff >::model_
private

The documentation for this class was generated from the following file: