libgrape-lite
A C++ library for parallel graph processing
Public Member Functions | Private Types | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
grape::BasicFragmentMutator< FRAG_T > Class Template Reference

Public Member Functions

 BasicFragmentMutator (const CommSpec &comm_spec, std::shared_ptr< fragment_t > fragment)
 
void AddVerticesToRemove (const std::vector< vid_t > &id_vec)
 
void AddVerticesToRemove (std::vector< vid_t > &&id_vec)
 
void AddVerticesToUpdate (const std::vector< internal::Vertex< vid_t, vdata_t >> &v_vec)
 
void AddVerticesToUpdate (std::vector< internal::Vertex< vid_t, vdata_t >> &&v_vec)
 
std::shared_ptr< fragment_t > MutateFragment ()
 
void Start ()
 
void AddVertex (const internal_oid_t &id, const vdata_t &data)
 
void AddVertices (std::vector< typename ShuffleBuffer< internal_oid_t >::type > &&id_lists, std::vector< typename ShuffleBuffer< vdata_t >::type > &&data_lists)
 
void AddEdge (const internal_oid_t &src, const internal_oid_t &dst, const edata_t &data)
 
void AddEdges (std::vector< typename ShuffleBuffer< internal_oid_t >::type > &&src_lists, std::vector< typename ShuffleBuffer< internal_oid_t >::type > &&dst_lists, std::vector< typename ShuffleBuffer< edata_t >::type > &&data_lists)
 
void RemoveVertex (const oid_t &id)
 
void RemoveVertices (std::vector< typename ShuffleBuffer< oid_t >::type > &&id_lists)
 
void RemoveEdge (const oid_t &src, const oid_t &dst)
 
void RemoveEdges (std::vector< typename ShuffleBuffer< oid_t >::type > &&src_lists, std::vector< typename ShuffleBuffer< oid_t >::type > &&dst_lists)
 
template<typename Q = vdata_t>
std::enable_if< std::is_same< Q, EmptyType >::value >::type UpdateVertex (const oid_t &id, const vdata_t &data)
 
template<typename Q = vdata_t>
std::enable_if<!std::is_same< Q, EmptyType >::value >::type UpdateVertex (const oid_t &id, const vdata_t &data)
 
template<typename Q = vdata_t>
std::enable_if< std::is_same< Q, EmptyType >::value >::type UpdateVertices (std::vector< typename ShuffleBuffer< oid_t >::type > &&id_lists, std::vector< typename ShuffleBuffer< vdata_t >::type > &&data_lists)
 
template<typename Q = vdata_t>
std::enable_if<!std::is_same< Q, EmptyType >::value >::type UpdateVertices (std::vector< typename ShuffleBuffer< oid_t >::type > &&id_lists, std::vector< typename ShuffleBuffer< vdata_t >::type > &&data_lists)
 
void UpdateEdge (const oid_t &src, const oid_t &dst, const edata_t &data)
 
void UpdateEdges (std::vector< typename ShuffleBuffer< oid_t >::type > &&src_lists, std::vector< typename ShuffleBuffer< oid_t >::type > &&dst_lists, std::vector< typename ShuffleBuffer< edata_t >::type > &&data_lists)
 

Private Types

using fragment_t = FRAG_T
 
using oid_t = typename FRAG_T::oid_t
 
using internal_oid_t = typename InternalOID< oid_t >::type
 
using vid_t = typename FRAG_T::vid_t
 
using vdata_t = typename FRAG_T::vdata_t
 
using edata_t = typename FRAG_T::edata_t
 
using mutation_t = Mutation< vid_t, vdata_t, edata_t >
 

Private Member Functions

void recvThreadRoutine ()
 

Private Attributes

CommSpec comm_spec_
 
std::shared_ptr< fragment_t > fragment_
 
std::thread recv_thread_
 
std::vector< vid_t > parsed_vertices_to_remove_
 
std::vector< internal::Vertex< vid_t, vdata_t > > parsed_vertices_to_update_
 
std::vector< internal::Vertex< vid_t, vdata_t > > parsed_vertices_to_add_
 
std::vector< ShuffleOut< internal_oid_t > > vertices_to_remove_
 
std::vector< ShuffleBufferTuple< internal_oid_t > > got_vertices_to_remove_
 
std::vector< ShuffleOut< internal_oid_t, vdata_t > > vertices_to_add_
 
std::vector< ShuffleBufferTuple< internal_oid_t, vdata_t > > got_vertices_to_add_
 
std::vector< ShuffleOut< internal_oid_t, vdata_t > > vertices_to_update_
 
std::vector< ShuffleBufferTuple< internal_oid_t, vdata_t > > got_vertices_to_update_
 
std::vector< ShuffleOut< internal_oid_t, internal_oid_t > > edges_to_remove_
 
std::vector< ShuffleBufferTuple< internal_oid_t, internal_oid_t > > got_edges_to_remove_
 
std::vector< ShuffleOut< internal_oid_t, internal_oid_t, edata_t > > edges_to_update_
 
std::vector< ShuffleBufferTuple< internal_oid_t, internal_oid_t, edata_t > > got_edges_to_update_
 
std::vector< ShuffleOut< internal_oid_t, internal_oid_t, edata_t > > edges_to_add_
 
std::vector< ShuffleBufferTuple< internal_oid_t, internal_oid_t, edata_t > > got_edges_to_add_
 
mutation_t mutation_
 
VertexMap< oid_t, vid_t > & vm_
 

Static Private Attributes

static constexpr LoadStrategy load_strategy = FRAG_T::load_strategy
 
static constexpr int vr_tag = 1
 
static constexpr int va_tag = 2
 
static constexpr int vu_tag = 3
 
static constexpr int er_tag = 4
 
static constexpr int ea_tag = 5
 
static constexpr int eu_tag = 6