jubatus_core  0.1.2
Jubatus: Online machine learning framework for distributed environment
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
jubatus::core::clustering::storage Class Referenceabstract

#include <storage.hpp>

Inheritance diagram for jubatus::core::clustering::storage:
Inheritance graph
Collaboration diagram for jubatus::core::clustering::storage:
Collaboration graph

Public Member Functions

virtual void add (const weighted_point &point)=0
 
void clear ()
 
virtual wplist get_all () const
 
virtual wplist get_common () const
 
void get_diff (diff_t &d) const
 
virtual wplist get_mine () const =0
 
size_t get_revision ()
 
core::storage::version get_version () const
 
void mix (const diff_t &, diff_t &ret)
 
 MSGPACK_DEFINE (revision_, name_, config_, common_)
 
void pack (framework::packer &packer) const
 
bool put_diff (const diff_t &d)
 
 storage (const std::string &name, const clustering_config &config)
 
void unpack (msgpack::object o)
 
virtual ~storage ()
 
- Public Member Functions inherited from jubatus::core::clustering::event_dispatcher< storage_event_type, wplist >
void add_event_listener (const storage_event_type &type, callback_t callback)
 
virtual ~event_dispatcher ()
 

Protected Member Functions

virtual void clear_impl_ ()
 
void increment_revision ()
 
virtual void pack_impl_ (framework::packer &packer) const
 
virtual void unpack_impl_ (msgpack::object o)
 
- Protected Member Functions inherited from jubatus::core::clustering::event_dispatcher< storage_event_type, wplist >
void dispatch (const storage_event_type &type, const wplist &data) const
 

Protected Attributes

std::vector< std::pair< std::string, wplist > > common_
 
clustering_config config_
 
std::string name_
 
size_t revision_
 
- Protected Attributes inherited from jubatus::core::clustering::event_dispatcher< storage_event_type, wplist >
event_type_table events_
 

Detailed Description

Definition at line 39 of file storage.hpp.

Constructor & Destructor Documentation

jubatus::core::clustering::storage::storage ( const std::string &  name,
const clustering_config config 
)

Definition at line 28 of file storage.cpp.

29  : revision_(0),
30  name_(name),
31  config_(config) {
32 }
virtual jubatus::core::clustering::storage::~storage ( )
inlinevirtual

Definition at line 42 of file storage.hpp.

42 {}

Member Function Documentation

virtual void jubatus::core::clustering::storage::add ( const weighted_point point)
pure virtual
void jubatus::core::clustering::storage::clear ( )

Definition at line 97 of file storage.cpp.

References clear_impl_(), jubatus::core::clustering::event_dispatcher< storage_event_type, wplist >::dispatch(), get_all(), and jubatus::core::clustering::REVISION_CHANGE.

97  {
98  // TODO(gintenlabo): consider revisions
99  clear_impl_();
101 }
virtual wplist get_all() const
Definition: storage.cpp:34
void dispatch(const storage_event_type &type, const wplist &data) const

Here is the call graph for this function:

void jubatus::core::clustering::storage::clear_impl_ ( )
protectedvirtual

Reimplemented in jubatus::core::clustering::compressive_storage, and jubatus::core::clustering::simple_storage.

Definition at line 118 of file storage.cpp.

References common_.

Referenced by clear(), jubatus::core::clustering::simple_storage::clear_impl_(), and jubatus::core::clustering::compressive_storage::clear_impl_().

118  {
119  common_.clear();
120 }
std::vector< std::pair< std::string, wplist > > common_
Definition: storage.hpp:76

Here is the caller graph for this function:

wplist jubatus::core::clustering::storage::get_all ( ) const
virtual

Definition at line 34 of file storage.cpp.

References jubatus::core::clustering::concat(), get_common(), and get_mine().

Referenced by clear(), increment_revision(), and unpack().

34  {
35  wplist ret = get_mine();
36  wplist common = get_common();
37  concat(common, ret);
38  return ret;
39 }
virtual wplist get_common() const
Definition: storage.cpp:41
void concat(const wplist &src, wplist &dst)
Definition: util.cpp:33
virtual wplist get_mine() const =0
std::vector< weighted_point > wplist
Definition: types.hpp:55

Here is the call graph for this function:

Here is the caller graph for this function:

wplist jubatus::core::clustering::storage::get_common ( ) const
virtual

Definition at line 41 of file storage.cpp.

References common_, and jubatus::core::clustering::concat().

Referenced by get_all().

41  {
42  wplist ret;
43  for (diff_t::const_iterator it = common_.begin();
44  it != common_.end(); ++it) {
45  concat(it->second, ret);
46  }
47  return ret;
48 }
std::vector< std::pair< std::string, wplist > > common_
Definition: storage.hpp:76
void concat(const wplist &src, wplist &dst)
Definition: util.cpp:33
std::vector< weighted_point > wplist
Definition: types.hpp:55

Here is the call graph for this function:

Here is the caller graph for this function:

void jubatus::core::clustering::storage::get_diff ( diff_t d) const

Definition at line 50 of file storage.cpp.

References get_mine(), and name_.

50  {
51  d.clear();
52  wplist coreset = get_mine();
53  d.push_back(make_pair(name_, coreset));
54 }
virtual wplist get_mine() const =0
std::vector< weighted_point > wplist
Definition: types.hpp:55

Here is the call graph for this function:

virtual wplist jubatus::core::clustering::storage::get_mine ( ) const
pure virtual

Implemented in jubatus::core::clustering::compressive_storage, and jubatus::core::clustering::simple_storage.

Referenced by get_all(), and get_diff().

Here is the caller graph for this function:

size_t jubatus::core::clustering::storage::get_revision ( )

Definition at line 103 of file storage.cpp.

References revision_.

103  {
104  return revision_;
105 }
core::storage::version jubatus::core::clustering::storage::get_version ( ) const
inline

Definition at line 56 of file storage.hpp.

56  {
57  return core::storage::version();
58  }
void jubatus::core::clustering::storage::increment_revision ( )
protected
void jubatus::core::clustering::storage::mix ( const diff_t lhs,
diff_t ret 
)

Definition at line 69 of file storage.cpp.

69  {
70  diff_t::const_iterator lb = lhs.begin(), le = lhs.end();
71  diff_t::iterator b = ret.begin(), e = ret.end();
72  while (lb != le && b != e) {
73  if ((*lb).first < (*b).first) {
74  b = ret.insert(b, (*lb));
75  ++lb;
76  } else if ((*lb).first > (*b).first) {
77  ++b;
78  } else {
79  std::copy((*lb).second.begin(), (*lb).second.end(),
80  std::back_inserter((*b).second));
81  ++b;
82  ++lb;
83  }
84  }
85  std::copy(lb, le, std::back_inserter(ret));
86 };
jubatus::core::clustering::storage::MSGPACK_DEFINE ( revision_  ,
name_  ,
config_  ,
common_   
)
void jubatus::core::clustering::storage::pack ( framework::packer packer) const

Definition at line 88 of file storage.cpp.

References pack_impl_().

88  {
90 }
msgpack::packer< jubatus_packer > packer
Definition: bandit_base.hpp:31
virtual void pack_impl_(framework::packer &packer) const
Definition: storage.cpp:112

Here is the call graph for this function:

void jubatus::core::clustering::storage::pack_impl_ ( framework::packer packer) const
protectedvirtual

Reimplemented in jubatus::core::clustering::compressive_storage, and jubatus::core::clustering::simple_storage.

Definition at line 112 of file storage.cpp.

Referenced by pack(), jubatus::core::clustering::simple_storage::pack_impl_(), and jubatus::core::clustering::compressive_storage::pack_impl_().

112  {
113  packer.pack(*this);
114 }
msgpack::packer< jubatus_packer > packer
Definition: bandit_base.hpp:31

Here is the caller graph for this function:

bool jubatus::core::clustering::storage::put_diff ( const diff_t d)

Definition at line 56 of file storage.cpp.

References common_, increment_revision(), and name_.

56  {
57  common_.clear();
58  for (diff_t::const_iterator it = diff.begin(); it != diff.end(); ++it) {
59  if (it->first != name_) {
60  common_.push_back(*it);
61  }
62  }
64 
65  // TODO(kumagi): return false if we want to reject the diff
66  return true;
67 }
std::vector< std::pair< std::string, wplist > > common_
Definition: storage.hpp:76

Here is the call graph for this function:

void jubatus::core::clustering::storage::unpack ( msgpack::object  o)

Definition at line 92 of file storage.cpp.

References jubatus::core::clustering::event_dispatcher< storage_event_type, wplist >::dispatch(), get_all(), jubatus::core::clustering::REVISION_CHANGE, and unpack_impl_().

92  {
93  unpack_impl_(o);
95 }
virtual wplist get_all() const
Definition: storage.cpp:34
void dispatch(const storage_event_type &type, const wplist &data) const
virtual void unpack_impl_(msgpack::object o)
Definition: storage.cpp:115

Here is the call graph for this function:

void jubatus::core::clustering::storage::unpack_impl_ ( msgpack::object  o)
protectedvirtual

Reimplemented in jubatus::core::clustering::compressive_storage, and jubatus::core::clustering::simple_storage.

Definition at line 115 of file storage.cpp.

Referenced by unpack(), jubatus::core::clustering::simple_storage::unpack_impl_(), and jubatus::core::clustering::compressive_storage::unpack_impl_().

115  {
116  o.convert(this);
117 }

Here is the caller graph for this function:

Member Data Documentation

std::vector<std::pair<std::string, wplist> > jubatus::core::clustering::storage::common_
protected

Definition at line 76 of file storage.hpp.

Referenced by clear_impl_(), get_common(), and put_diff().

clustering_config jubatus::core::clustering::storage::config_
protected
std::string jubatus::core::clustering::storage::name_
protected

Definition at line 73 of file storage.hpp.

Referenced by get_diff(), and put_diff().

size_t jubatus::core::clustering::storage::revision_
protected

Definition at line 72 of file storage.hpp.

Referenced by get_revision(), and increment_revision().


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