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 | Protected Attributes | List of all members
ibmppl::VertexBase< Property, EdgeList > Class Template Reference

Base vertex class with a list of edges and a vertex property. More...

#include <ibm_graph.h>

Inheritance diagram for ibmppl::VertexBase< Property, EdgeList >:
ibmppl::RDFVertex< Property, EdgeList, Directedness > ibmppl::Vertex< Property, EdgeList, Directedness > ibmppl::Vertex< Property, EdgeList, PRED_DIRECTED >

Public Types

enum  FLAGS_T { kDefault = 0, kPropertyValid = 0x00000001, kMarkedForDeletion = 0x00000002 }
 
typedef size_t vertexd_type
 
typedef Property property_type
 
typedef EdgeList edgelist_type
 
typedef edgelist_type::value_type edge_type
 
typedef edge_type::edged_type edged_type
 
typedef edgelist_type::iterator edge_iterator
 
typedef
edgelist_type::const_iterator 
const_edge_iterator
 

Public Member Functions

 VertexBase (vertexd_type id=-1)
 
 VertexBase (vertexd_type id, const property_type &p)
 
vertexd_type id () const
 
property_type & property ()
 
const property_type & property () const
 
void set_property (property_type &p)
 
void clear_flag (uint32_t flags)
 
void set_flag (uint32_t flags)
 
bool test_flag (uint32_t flags) const
 
bool is_marked_for_deletion () const
 
void mark_for_deletion ()
 
size_t edges_size () const
 
edge_iterator edges_begin ()
 
edge_iterator edges_end ()
 
const_edge_iterator edges_begin () const
 
const_edge_iterator edges_end () const
 
edge_iterator add_edge_ref (vertexd_type target)
 insert an edge between this vertex and target More...
 
edge_iterator add_edge (vertexd_type target)
 
edge_iterator add_edge_ref (vertexd_type target, const typename edge_type::property_type &p)
 insert an edge between this vertex and target More...
 
edge_iterator add_edge (vertexd_type target, const typename edge_type::property_type &p)
 
edge_iterator add_edge_ref (vertexd_type target, const typename edge_type::property_type &p, edged_type id)
 insert an edge between this vertex and target More...
 
edge_iterator add_edge (vertexd_type target, const typename edge_type::property_type &p, edged_type id)
 
edge_iterator find_edge (vertexd_type target, edged_type eid)
 
edge_iterator find_edge_with_id (edged_type eid)
 
const_edge_iterator find_edge (vertexd_type target, edged_type eid) const
 
const_edge_iterator find_edge (vertexd_type target) const
 
edge_iterator find_edge (vertexd_type target)
 
void delete_edge (vertexd_type target)
 
void delete_edge (vertexd_type target, edged_type eid)
 
void delete_edge_with_id (edged_type eid)
 
void delete_all_edges (vertexd_type target)
 

Protected Attributes

vertexd_type _id
 
property_type _p
 
edgelist_type _edges
 
uint32_t _flags
 

Detailed Description

template<class Property, class EdgeList>
class ibmppl::VertexBase< Property, EdgeList >

Base vertex class with a list of edges and a vertex property.

Member Function Documentation

template<class Property, class EdgeList>
edge_iterator ibmppl::VertexBase< Property, EdgeList >::add_edge_ref ( vertexd_type  target)
inline

insert an edge between this vertex and target

Parameters
[in]targettarget vertex id
Returns
iterator to the inserted edge
template<class Property, class EdgeList>
edge_iterator ibmppl::VertexBase< Property, EdgeList >::add_edge_ref ( vertexd_type  target,
const typename edge_type::property_type &  p 
)
inline

insert an edge between this vertex and target

Parameters
[in]targettarget vertex id
[in]pproperty of the new edge
Returns
iterator to the inserted edge
template<class Property, class EdgeList>
edge_iterator ibmppl::VertexBase< Property, EdgeList >::add_edge_ref ( vertexd_type  target,
const typename edge_type::property_type &  p,
edged_type  id 
)
inline

insert an edge between this vertex and target

Parameters
[in]targettarget vertex id
[in]pproperty of the new edge
[in]idid of the new edge
Returns
iterator to the inserted edge

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