17 #ifndef JUBATUS_CORE_FRAMEWORK_MIXABLE_HELPER_HPP_
18 #define JUBATUS_CORE_FRAMEWORK_MIXABLE_HELPER_HPP_
23 #include <msgpack.hpp>
24 #include "jubatus/util/lang/shared_ptr.h"
25 #include "../common/exception.hpp"
38 template <
typename Model,
typename Diff>
43 typedef jubatus::util::lang::shared_ptr<Model>
model_ptr;
67 internal_diff_object* diff =
new internal_diff_object;
69 obj.convert(&diff->diff_);
75 internal_diff_object* diff_obj =
76 dynamic_cast<internal_diff_object*
>(ptr.get());
82 model_->mix(diff, diff_obj->diff_);
92 internal_diff_object* diff_obj =
93 dynamic_cast<internal_diff_object*
>(ptr.get());
98 return model_->put_diff(diff_obj->diff_);
102 return model_->get_version();
121 #endif // JUBATUS_CORE_FRAMEWORK_MIXABLE_HELPER_HPP_
void mix(const msgpack::object &obj, diff_object ptr) const
virtual ~linear_mixable_helper()
model_ptr get_model() const
jubatus::util::lang::shared_ptr< diff_object_raw > diff_object
diff_object convert_diff_object(const msgpack::object &obj) const
jubatus::util::lang::shared_ptr< Model > model_ptr
linear_mixable_helper(model_ptr model)
#define JUBATUS_EXCEPTION(e)
void get_diff(packer &pk) const
bool put_diff(const diff_object &ptr)
void convert_binary(packer &pk) const
void set_model(model_ptr m)
storage::version get_version() const