17 #ifndef JUBATUS_CORE_STORAGE_LOCAL_STORAGE_HPP_
18 #define JUBATUS_CORE_STORAGE_LOCAL_STORAGE_HPP_
23 #include "jubatus/util/data/unordered_map.h"
24 #include "jubatus/util/concurrent/mutex.h"
25 #include "jubatus/util/concurrent/lock.h"
27 #include "../common/key_manager.hpp"
28 #include "../common/version.hpp"
35 typedef jubatus::util::data::unordered_map<std::string, id_feature_val3_t>
54 const std::string& feature,
55 const std::string& klass,
58 const std::string& feature,
59 const std::string& klass,
62 const std::string& feature,
63 const std::string& klass,
66 const std::string& feature,
67 const std::string& klass,
70 const std::string& feature,
71 const std::string& klass,
74 const std::string& feature,
75 const std::string& klass,
78 void get_status(std::map<std::string, std::string>& status)
const;
81 const std::string& feature,
82 const std::string& inc_class,
83 const std::string& dec_class,
88 const std::string& inc_class,
89 const std::string& dec_class);
91 util::concurrent::mutex&
get_lock()
const;
102 void unpack(msgpack::object o);
106 std::string
type()
const;
118 util::concurrent::scoped_lock lk(ls.
mutex_);
119 os <<
"{" << std::endl;
120 for (id_features3_t::const_iterator it = ls.
tbl_.begin();
123 os <<
" {" << it->first <<
": " <<
"{" << std::endl;
124 const id_feature_val3_t val = it->second;
125 for (id_feature_val3_t::const_iterator jt = val.begin();
131 id_feature_val3_t::const_iterator jt_next = jt;
133 if (jt_next != val.end()) {
142 id_features3_t::const_iterator it_next = it;
144 if (it_next != ls.
tbl_.end()) {
159 #endif // JUBATUS_CORE_STORAGE_LOCAL_STORAGE_HPP_
void set3(const std::string &feature, const std::string &klass, const val3_t &w)
MSGPACK_DEFINE(tbl_, class2id_)
void set2(const std::string &feature, const std::string &klass, const val2_t &w)
bool set_label(const std::string &label)
void set2_nolock(const std::string &feature, const std::string &klass, const val2_t &w)
void get_status(std::map< std::string, std::string > &status) const
void update(const std::string &feature, const std::string &inc_class, const std::string &dec_class, const val1_t &v)
common::key_manager class2id_
jubatus::util::data::unordered_map< std::string, val1_t > map_feature_val1_t
void get_nolock(const std::string &feature, feature_val1_t &ret) const
jubatus::util::data::unordered_map< std::string, id_feature_val3_t > id_features3_t
void inp(const common::sfv_t &sfv, map_feature_val1_t &ret) const
void register_label(const std::string &label)
void get2_nolock(const std::string &feature, feature_val2_t &ret) const
void pack(framework::packer &packer) const
void bulk_update(const common::sfv_t &sfv, float step_width, const std::string &inc_class, const std::string &dec_class)
std::vector< std::pair< std::string, val1_t > > feature_val1_t
void unpack(msgpack::object o)
void set(const std::string &feature, const std::string &klass, const val1_t &w)
void get3(const std::string &feature, feature_val3_t &ret) const
const std::string & get_key(const uint64_t id) const
storage::version get_version() const
void set3_nolock(const std::string &feature, const std::string &klass, const val3_t &w)
msgpack::packer< jubatus_packer > packer
bool delete_label_nolock(const std::string &label)
std::vector< std::pair< std::string, val3_t > > feature_val3_t
util::concurrent::mutex mutex_
friend std::ostream & operator<<(std::ostream &os, const local_storage &ls)
std::vector< std::pair< std::string, float > > sfv_t
bool delete_label(const std::string &label)
jubatus::util::data::unordered_map< uint64_t, val3_t > id_feature_val3_t
void set_nolock(const std::string &feature, const std::string &klass, const val1_t &w)
std::vector< std::string > get_labels() const
std::vector< std::pair< std::string, val2_t > > feature_val2_t
void get3_nolock(const std::string &feature, feature_val3_t &ret) const
util::concurrent::mutex & get_lock() const
void get2(const std::string &feature, feature_val2_t &ret) const