23 #ifndef GRAPHLAB_DISTRIBUTED_RANDOM_INGRESS_HPP
24 #define GRAPHLAB_DISTRIBUTED_RANDOM_INGRESS_HPP
26 #include <boost/functional/hash.hpp>
28 #include <graphlab/rpc/buffered_exchange.hpp>
29 #include <graphlab/graph/graph_basic_types.hpp>
30 #include <graphlab/graph/ingress/idistributed_ingress.hpp>
31 #include <graphlab/graph/ingress/distributed_ingress_base.hpp>
32 #include <graphlab/graph/distributed_graph.hpp>
35 #include <graphlab/macros_def.hpp>
37 template<
typename VertexData,
typename EdgeData>
38 class distributed_graph;
43 template<
typename VertexData,
typename EdgeData>
45 public distributed_ingress_base<VertexData, EdgeData> {
54 typedef distributed_ingress_base<VertexData, EdgeData> base_type;
58 base_type(dc, graph) {
65 const EdgeData& edata) {
67 const procid_t owning_proc = base_type::edge_decision.edge_to_proc_random(source, target, base_type::rpc.numprocs());
68 const edge_buffer_record record(source, target, edata);
69 base_type::edge_exchange.send(owning_proc, record);
73 #include <graphlab/macros_undef.hpp>