IBM SYSTEMG G RUNTIME & NATIVE STORE  0.5
IBM Native Graph Computing and Storage System based on IBM Parallel Programming Library
 All Classes Functions Variables Typedefs Pages
Public Types | Public Member Functions | Private Types | List of all members
ibmppl::DAdaptor< UNDIRECTED, Traits > Class Template Reference

Adaptor to specialize add/delete edge for an undirected graph. It derives from the base adjacency_list class and add un undirected edge as a bidirectional edge. Fro example an undirected edge between a source S and a destintation D implies the storage will have an edge from S->D and an edge from D->S. More...

#include <ibm_graph.h>

Inheritance diagram for ibmppl::DAdaptor< UNDIRECTED, Traits >:
ibmppl::adjacency_list< Traits >

Public Types

typedef base_type::edged_type edged_type
 
typedef base_type::vertexd_type vertexd_type
 
typedef base_type::vertex_property vertex_property
 
typedef base_type::edge_property edge_property
 
typedef base_type::vertex_iterator vertex_iterator
 
typedef
base_type::const_vertex_iterator 
const_vertex_iterator
 
typedef base_type::edge_iterator edge_iterator
 
typedef
base_type::const_edge_iterator 
const_edge_iterator
 
- Public Types inherited from ibmppl::adjacency_list< Traits >
typedef Traits::vertex_type vertex_type
 
typedef Traits::edge_type edge_type
 
typedef vertex_type::vertexd_type vertexd_type
 
typedef edge_type::edged_type edged_type
 
typedef
Traits::storage_type::iterator 
vertex_iterator
 
typedef
Traits::storage_type::const_iterator 
const_vertex_iterator
 
typedef Traits::edge_iterator edge_iterator
 
typedef Traits::const_edge_iterator const_edge_iterator
 
typedef Traits::vertex_property vertex_property
 
typedef Traits::edge_property edge_property
 

Public Member Functions

bool is_directed () const
 
void delete_vertex (vertexd_type v)
 
void delete_vertex (vertex_iterator vit)
 
edged_type add_edge (vertexd_type s, vertexd_type t)
 
edged_type add_edge (vertexd_type s, vertexd_type t, const edge_property &p)
 
bool find_edge (vertexd_type source, vertexd_type target, edged_type eid, edge_iterator &eit)
 
bool find_edge_with_id (vertexd_type source, edged_type eid, edge_iterator &eit)
 
bool find_edge (vertexd_type source, vertexd_type target, edged_type eid) const
 
bool find_edge (vertexd_type source, vertexd_type target, edge_iterator &eit)
 
void delete_edge (vertexd_type s, vertexd_type t)
 
void delete_edge (vertexd_type s, vertexd_type t, edged_type eid)
 
void delete_edge_with_id (vertexd_type s, edged_type eid)
 
void delete_edge (edged_type)
 
void delete_all_edges (vertexd_type s, vertexd_type t)
 
- Public Member Functions inherited from ibmppl::adjacency_list< Traits >
 adjacency_list ()
 constructor
 
void set_offset (size_t off)
 
size_t num_vertices () const
 
size_t num_edges () const
 
bool is_empty ()
 
vertexd_type next_vid () const
 
vertex_iterator vertices_begin ()
 
vertex_iterator vertices_end ()
 
const_vertex_iterator vertices_begin () const
 
const_vertex_iterator vertices_end () const
 
vertexd_type add_vertex (const vertex_property &p)
 add a new vertex with a given property
 
vertexd_type batch_add_vertex (const vertex_property &p)
 
void batch_mode_begin (size_t batch_size)
 
void batch_mode_end (void)
 
void add_vertex (vertexd_type vd, const vertex_property &p)
 
vertex_iterator find_vertex (vertexd_type vid)
 find a vertex by vertex id More...
 
const_vertex_iterator find_vertex (vertexd_type vid) const
 find a vertex by vertex id More...
 
void delete_vertex (vertexd_type vid)
 delete a vertex based on vertex id More...
 
void delete_vertex (vertex_iterator vit)
 delete the vertex pointed to by vertex iterator and delete all edges pointing to or from the vertex More...
 
edged_type add_edge (vertexd_type s, vertexd_type t)
 add an edge between two existing vertices More...
 
edged_type add_edge (vertexd_type s, vertexd_type t, const edge_property &p)
 add an edge and edge property between two existing vertices More...
 
bool find_edge (vertexd_type source, vertexd_type target, edged_type eid, edge_iterator &eit)
 
bool find_edge (vertexd_type source, vertexd_type target, edged_type eid)
 
bool find_edge_with_id (vertexd_type source, edged_type eid, edge_iterator &eit)
 
bool find_edge (vertexd_type source, vertexd_type target, edge_iterator &eit)
 find edge by source and target vertices More...
 
void delete_edge (vertexd_type s, vertexd_type t)
 remove the unique edge between source and sink vertices More...
 
void delete_edge (vertexd_type s, vertexd_type t, edged_type eid)
 
void delete_edge_with_id (vertexd_type s, edged_type eid)
 
void delete_all_edges (vertexd_type s, vertexd_type t)
 
void delete_edge (edged_type e)
 

Private Types

typedef DAdaptor< UNDIRECTED,
Traits > 
this_type
 
typedef adjacency_list< Traits > base_type
 

Additional Inherited Members

- Protected Types inherited from ibmppl::adjacency_list< Traits >
typedef Traits::storage_type storage_type
 
- Protected Member Functions inherited from ibmppl::adjacency_list< Traits >
void incr_num_edges ()
 
void decr_num_edges ()
 
size_t next_edgeid (void)
 
void remove_from_verts (vertex_iterator vit)
 
- Protected Attributes inherited from ibmppl::adjacency_list< Traits >
size_t _id_gen
 
storage_type _verts
 
size_t _ne
 
size_t _eid_gen
 

Detailed Description

template<class Traits>
class ibmppl::DAdaptor< UNDIRECTED, Traits >

Adaptor to specialize add/delete edge for an undirected graph. It derives from the base adjacency_list class and add un undirected edge as a bidirectional edge. Fro example an undirected edge between a source S and a destintation D implies the storage will have an edge from S->D and an edge from D->S.

Member Function Documentation

template<class Traits >
edged_type ibmppl::DAdaptor< UNDIRECTED, Traits >::add_edge ( vertexd_type  s,
vertexd_type  t 
)
inline

add an undirect edge between two existing vertices <s> and <t> (without checking duplicates)

template<class Traits >
edged_type ibmppl::DAdaptor< UNDIRECTED, Traits >::add_edge ( vertexd_type  s,
vertexd_type  t,
const edge_property &  p 
)
inline

add an undirect edge between two existing vertices <s> and <t> w/ property

(without checking duplicates)


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