17 #ifndef JUBATUS_CORE_GRAPH_GRAPH_WO_INDEX_HPP_
18 #define JUBATUS_CORE_GRAPH_GRAPH_WO_INDEX_HPP_
24 #include "jubatus/util/data/unordered_map.h"
25 #include "jubatus/util/data/unordered_set.h"
26 #include "jubatus/util/data/serialization.h"
27 #include "jubatus/util/lang/enable_shared_from_this.h"
28 #include "jubatus/util/lang/shared_ptr.h"
30 #include "../common/unordered_map.hpp"
31 #include "../framework/mixable_helper.hpp"
39 :
public jubatus::util::lang::enable_shared_from_this<graph_wo_index> {
46 eigen_vector_query.clear();
65 & JUBA_NAMED_MEMBER(
"damping_factor", damping_factor)
66 & JUBA_MEMBER(landmark_num);
101 std::vector<node_id_t>& ret,
107 void get_diff(diff_type& diff)
const;
108 bool put_diff(
const diff_type& mixed);
110 std::string
type()
const;
112 void get_status(std::map<std::string, std::string>& status)
const;
115 void mix(
const diff_type& diff, diff_type& mixed);
123 void unpack(msgpack::object o);
129 typedef jubatus::util::data::unordered_map<node_id_t, node_info>
131 typedef jubatus::util::data::unordered_map<edge_id_t, edge_info>
160 size_t landmark_num);
179 const std::vector<edge_id_t>& edges,
197 #endif // JUBATUS_CORE_GRAPH_GRAPH_WO_INDEX_HPP_
void update_spt_node(const preset_query &query, const std::vector< edge_id_t > &edges, spt_edges &se, bool is_out)
MSGPACK_DEFINE(eigen_vector_query, spt_query)
jubatus::util::data::unordered_map< preset_query, eigen_vector_diff > eigen_vector_query_diff
void create_node(node_id_t id)
void damping_factor(double a)
void shortest_path(node_id_t src, node_id_t tgt, uint64_t max_hop, std::vector< node_id_t > &ret, const preset_query &) const
void get_diff_shortest_path_tree(spt_query_diff &diff) const
void get_status(std::map< std::string, std::string > &status) const
void get_edge(edge_id_t eid, edge_info &ret) const
void add_centrality_query(const preset_query &)
jubatus::util::data::unordered_map< node_id_t, node_info > node_info_map
static void mix_spt(const shortest_path_tree &diff, shortest_path_tree &mixed)
void mix(const diff_type &diff, diff_type &mixed)
jubatus::util::data::unordered_map< preset_query, spt_diff > spt_query_diff
static void remove_by_swap(std::vector< edge_id_t > &edges, edge_id_t eid)
edge_info_map local_edges_
void remove_node(node_id_t id)
framework::linear_mixable_helper< graph_wo_index, graph_wo_index::diff_type > mixable_graph_wo_index
void remove_shortest_path_query(const preset_query &)
jubatus::util::data::unordered_map< node_id_t, uint8_t > global_nodes_
void unpack(msgpack::object o)
void may_set_landmark(node_id_t id)
void update_node(node_id_t id, const property &p)
std::map< std::string, std::string > property
double centrality(node_id_t id, centrality_type ct, const preset_query &) const
void pack(framework::packer &packer) const
bool put_diff(const diff_type &mixed)
void get_node(node_id_t id, node_info &ret) const
MSGPACK_DEFINE(local_nodes_, local_edges_, global_nodes_, eigen_scores_, spts_)
msgpack::packer< jubatus_packer > packer
void update_spt_edges(const preset_query &query, spt_edges &se, node_id_t landmark, bool is_out)
void update_edge(edge_id_t eid, const property &p)
eigen_vector_query_diff eigen_vector_query
void create_edge(edge_id_t eid, node_id_t src, node_id_t tgt)
node_info_map local_nodes_
void remove_edge(edge_id_t eid)
void put_diff_eigen_score(const eigen_vector_query_diff &mixed)
jubatus::util::data::unordered_map< edge_id_t, edge_info > edge_info_map
void remove_centrality_query(const preset_query &)
void put_diff_shortest_path_tree(const spt_query_diff &mixed)
void create_global_node(node_id_t id)
eigen_vector_query_diff eigen_scores_
void get_diff(diff_type &diff) const
jubatus::util::data::unordered_map< node_id_t, std::pair< uint64_t, node_id_t > > spt_edges
void get_diff_eigen_score(eigen_vector_query_diff &diff) const
bool is_node_matched_to_query(const preset_query &query, node_id_t id) const
void remove_global_node(node_id_t id)
storage::version get_version() const
void add_shortest_path_query(const preset_query &)