Galois::Graph::LC_Morph_Graph< NodeTy, EdgeTy, HasNoLockable, UseNumaAlloc, HasOutOfLineLockable, HasId > Class Template Reference

Local computation graph (i.e., graph structure does not change). More...

#include <LC_Morph_Graph.h>

Inheritance diagram for Galois::Graph::LC_Morph_Graph< NodeTy, EdgeTy, HasNoLockable, UseNumaAlloc, HasOutOfLineLockable, HasId >:
Galois::Graph::detail::OutOfLineLockableFeature< HasOutOfLineLockable &&!HasNoLockable >

List of all members.

Classes

struct  dst_equals
struct  EdgeHolder
struct  makeGraphNode
class  NodeInfo
struct  with_id
struct  with_no_lockable
struct  with_node_data
struct  with_numa_alloc
struct  with_out_of_line_lockable

Public Types

typedef read_with_aux_graph_tag read_tag
typedef NodeInfoGraphNode
typedef EdgeTy edge_data_type
typedef NodeTy node_data_type
typedef NodeInfoTypes::reference node_data_reference
typedef EdgeInfo::reference edge_data_reference
typedef EdgeInfoedge_iterator
typedef
boost::transform_iterator
< makeGraphNode, typename
Nodes::iterator
iterator
typedef
boost::transform_iterator
< makeGraphNode, typename
Nodes::const_iterator
const_iterator
typedef iterator local_iterator
typedef const_iterator const_local_iterator
typedef LargeArray< GraphNodeReadGraphAuxData

Public Member Functions

 ~LC_Morph_Graph ()
node_data_reference getData (const GraphNode &N, MethodFlag mflag=MethodFlag::ALL)
edge_data_reference getEdgeData (edge_iterator ni, MethodFlag mflag=MethodFlag::NONE)
GraphNode getEdgeDst (edge_iterator ni)
iterator begin ()
 Returns an iterator to all the nodes in the graph.
iterator end ()
 Returns the end of the node iterator. Not thread-safe.
local_iterator local_begin ()
local_iterator local_end ()
edge_iterator edge_begin (GraphNode N, MethodFlag mflag=MethodFlag::ALL)
edge_iterator edge_end (GraphNode N, MethodFlag mflag=MethodFlag::ALL)
template<typename... Args>
GraphNode createNode (int nedges, Args &&...args)
template<typename... Args>
edge_iterator addEdge (GraphNode src, GraphNode dst, Galois::MethodFlag mflag, Args &&...args)
template<typename... Args>
edge_iterator addEdgeWithoutCheck (GraphNode src, GraphNode dst, Galois::MethodFlag mflag, Args &&...args)
edge_iterator findEdge (GraphNode src, GraphNode dst, Galois::MethodFlag mflag=MethodFlag::ALL)
void allocateFrom (FileGraph &graph, ReadGraphAuxData &aux)
void constructNodesFrom (FileGraph &graph, unsigned tid, unsigned total, ReadGraphAuxData &aux)
void constructEdgesFrom (FileGraph &graph, unsigned tid, unsigned total, const ReadGraphAuxData &aux)

Protected Types

typedef detail::EdgeInfoBase
< NodeInfo *, EdgeTy > 
EdgeInfo
typedef Galois::InsertBag
< NodeInfo
Nodes
typedef
detail::NodeInfoBaseTypes
< NodeTy,!HasNoLockable
&&!HasOutOfLineLockable > 
NodeInfoTypes

Protected Member Functions

template<bool _A1 = HasNoLockable, bool _A2 = HasOutOfLineLockable>
void acquireNode (GraphNode N, MethodFlag mflag, typename std::enable_if<!_A1 &&!_A2 >::type *=0)
template<bool _A1 = HasOutOfLineLockable, bool _A2 = HasNoLockable>
void acquireNode (GraphNode N, MethodFlag mflag, typename std::enable_if< _A1 &&!_A2 >::type *=0)
template<bool _A1 = HasOutOfLineLockable, bool _A2 = HasNoLockable>
void acquireNode (GraphNode N, MethodFlag mflag, typename std::enable_if< _A2 >::type *=0)
template<bool _Enable = HasId>
size_t getId (GraphNode N, typename std::enable_if< _Enable >::type *=0)

Protected Attributes

Nodes nodes
Galois::Runtime::PerThreadStorage
< EdgeHolder * > 
edges

Friends

class LC_InOut_Graph

Detailed Description

template<typename NodeTy, typename EdgeTy, bool HasNoLockable = false, bool UseNumaAlloc = false, bool HasOutOfLineLockable = false, bool HasId = false>
class Galois::Graph::LC_Morph_Graph< NodeTy, EdgeTy, HasNoLockable, UseNumaAlloc, HasOutOfLineLockable, HasId >

Local computation graph (i.e., graph structure does not change).


Member Typedef Documentation

template<typename NodeTy , typename EdgeTy , bool HasNoLockable = false, bool UseNumaAlloc = false, bool HasOutOfLineLockable = false, bool HasId = false>
typedef boost::transform_iterator<makeGraphNode,typename Nodes::const_iterator> Galois::Graph::LC_Morph_Graph< NodeTy, EdgeTy, HasNoLockable, UseNumaAlloc, HasOutOfLineLockable, HasId >::const_iterator
template<typename NodeTy , typename EdgeTy , bool HasNoLockable = false, bool UseNumaAlloc = false, bool HasOutOfLineLockable = false, bool HasId = false>
typedef const_iterator Galois::Graph::LC_Morph_Graph< NodeTy, EdgeTy, HasNoLockable, UseNumaAlloc, HasOutOfLineLockable, HasId >::const_local_iterator
template<typename NodeTy , typename EdgeTy , bool HasNoLockable = false, bool UseNumaAlloc = false, bool HasOutOfLineLockable = false, bool HasId = false>
typedef EdgeInfo::reference Galois::Graph::LC_Morph_Graph< NodeTy, EdgeTy, HasNoLockable, UseNumaAlloc, HasOutOfLineLockable, HasId >::edge_data_reference
template<typename NodeTy , typename EdgeTy , bool HasNoLockable = false, bool UseNumaAlloc = false, bool HasOutOfLineLockable = false, bool HasId = false>
typedef EdgeTy Galois::Graph::LC_Morph_Graph< NodeTy, EdgeTy, HasNoLockable, UseNumaAlloc, HasOutOfLineLockable, HasId >::edge_data_type
template<typename NodeTy , typename EdgeTy , bool HasNoLockable = false, bool UseNumaAlloc = false, bool HasOutOfLineLockable = false, bool HasId = false>
typedef EdgeInfo* Galois::Graph::LC_Morph_Graph< NodeTy, EdgeTy, HasNoLockable, UseNumaAlloc, HasOutOfLineLockable, HasId >::edge_iterator
template<typename NodeTy , typename EdgeTy , bool HasNoLockable = false, bool UseNumaAlloc = false, bool HasOutOfLineLockable = false, bool HasId = false>
typedef detail::EdgeInfoBase<NodeInfo*, EdgeTy> Galois::Graph::LC_Morph_Graph< NodeTy, EdgeTy, HasNoLockable, UseNumaAlloc, HasOutOfLineLockable, HasId >::EdgeInfo [protected]
template<typename NodeTy , typename EdgeTy , bool HasNoLockable = false, bool UseNumaAlloc = false, bool HasOutOfLineLockable = false, bool HasId = false>
typedef NodeInfo* Galois::Graph::LC_Morph_Graph< NodeTy, EdgeTy, HasNoLockable, UseNumaAlloc, HasOutOfLineLockable, HasId >::GraphNode
template<typename NodeTy , typename EdgeTy , bool HasNoLockable = false, bool UseNumaAlloc = false, bool HasOutOfLineLockable = false, bool HasId = false>
typedef boost::transform_iterator<makeGraphNode,typename Nodes::iterator> Galois::Graph::LC_Morph_Graph< NodeTy, EdgeTy, HasNoLockable, UseNumaAlloc, HasOutOfLineLockable, HasId >::iterator
template<typename NodeTy , typename EdgeTy , bool HasNoLockable = false, bool UseNumaAlloc = false, bool HasOutOfLineLockable = false, bool HasId = false>
typedef iterator Galois::Graph::LC_Morph_Graph< NodeTy, EdgeTy, HasNoLockable, UseNumaAlloc, HasOutOfLineLockable, HasId >::local_iterator
template<typename NodeTy , typename EdgeTy , bool HasNoLockable = false, bool UseNumaAlloc = false, bool HasOutOfLineLockable = false, bool HasId = false>
typedef NodeInfoTypes::reference Galois::Graph::LC_Morph_Graph< NodeTy, EdgeTy, HasNoLockable, UseNumaAlloc, HasOutOfLineLockable, HasId >::node_data_reference
template<typename NodeTy , typename EdgeTy , bool HasNoLockable = false, bool UseNumaAlloc = false, bool HasOutOfLineLockable = false, bool HasId = false>
typedef NodeTy Galois::Graph::LC_Morph_Graph< NodeTy, EdgeTy, HasNoLockable, UseNumaAlloc, HasOutOfLineLockable, HasId >::node_data_type
template<typename NodeTy , typename EdgeTy , bool HasNoLockable = false, bool UseNumaAlloc = false, bool HasOutOfLineLockable = false, bool HasId = false>
typedef detail::NodeInfoBaseTypes<NodeTy,!HasNoLockable && !HasOutOfLineLockable> Galois::Graph::LC_Morph_Graph< NodeTy, EdgeTy, HasNoLockable, UseNumaAlloc, HasOutOfLineLockable, HasId >::NodeInfoTypes [protected]
template<typename NodeTy , typename EdgeTy , bool HasNoLockable = false, bool UseNumaAlloc = false, bool HasOutOfLineLockable = false, bool HasId = false>
typedef Galois::InsertBag<NodeInfo> Galois::Graph::LC_Morph_Graph< NodeTy, EdgeTy, HasNoLockable, UseNumaAlloc, HasOutOfLineLockable, HasId >::Nodes [protected]
template<typename NodeTy , typename EdgeTy , bool HasNoLockable = false, bool UseNumaAlloc = false, bool HasOutOfLineLockable = false, bool HasId = false>
typedef read_with_aux_graph_tag Galois::Graph::LC_Morph_Graph< NodeTy, EdgeTy, HasNoLockable, UseNumaAlloc, HasOutOfLineLockable, HasId >::read_tag
template<typename NodeTy , typename EdgeTy , bool HasNoLockable = false, bool UseNumaAlloc = false, bool HasOutOfLineLockable = false, bool HasId = false>
typedef LargeArray<GraphNode> Galois::Graph::LC_Morph_Graph< NodeTy, EdgeTy, HasNoLockable, UseNumaAlloc, HasOutOfLineLockable, HasId >::ReadGraphAuxData

Constructor & Destructor Documentation

template<typename NodeTy , typename EdgeTy , bool HasNoLockable = false, bool UseNumaAlloc = false, bool HasOutOfLineLockable = false, bool HasId = false>
Galois::Graph::LC_Morph_Graph< NodeTy, EdgeTy, HasNoLockable, UseNumaAlloc, HasOutOfLineLockable, HasId >::~LC_Morph_Graph (  )  [inline]

Member Function Documentation

template<typename NodeTy , typename EdgeTy , bool HasNoLockable = false, bool UseNumaAlloc = false, bool HasOutOfLineLockable = false, bool HasId = false>
template<bool _A1 = HasOutOfLineLockable, bool _A2 = HasNoLockable>
void Galois::Graph::LC_Morph_Graph< NodeTy, EdgeTy, HasNoLockable, UseNumaAlloc, HasOutOfLineLockable, HasId >::acquireNode ( GraphNode  N,
MethodFlag  mflag,
typename std::enable_if< _A2 >::type = 0 
) [inline, protected]
template<typename NodeTy , typename EdgeTy , bool HasNoLockable = false, bool UseNumaAlloc = false, bool HasOutOfLineLockable = false, bool HasId = false>
template<bool _A1 = HasOutOfLineLockable, bool _A2 = HasNoLockable>
void Galois::Graph::LC_Morph_Graph< NodeTy, EdgeTy, HasNoLockable, UseNumaAlloc, HasOutOfLineLockable, HasId >::acquireNode ( GraphNode  N,
MethodFlag  mflag,
typename std::enable_if< _A1 &&!_A2 >::type = 0 
) [inline, protected]
template<typename NodeTy , typename EdgeTy , bool HasNoLockable = false, bool UseNumaAlloc = false, bool HasOutOfLineLockable = false, bool HasId = false>
template<bool _A1 = HasNoLockable, bool _A2 = HasOutOfLineLockable>
void Galois::Graph::LC_Morph_Graph< NodeTy, EdgeTy, HasNoLockable, UseNumaAlloc, HasOutOfLineLockable, HasId >::acquireNode ( GraphNode  N,
MethodFlag  mflag,
typename std::enable_if<!_A1 &&!_A2 >::type = 0 
) [inline, protected]
template<typename NodeTy , typename EdgeTy , bool HasNoLockable = false, bool UseNumaAlloc = false, bool HasOutOfLineLockable = false, bool HasId = false>
template<typename... Args>
edge_iterator Galois::Graph::LC_Morph_Graph< NodeTy, EdgeTy, HasNoLockable, UseNumaAlloc, HasOutOfLineLockable, HasId >::addEdge ( GraphNode  src,
GraphNode  dst,
Galois::MethodFlag  mflag,
Args &&...  args 
) [inline]
template<typename NodeTy , typename EdgeTy , bool HasNoLockable = false, bool UseNumaAlloc = false, bool HasOutOfLineLockable = false, bool HasId = false>
template<typename... Args>
edge_iterator Galois::Graph::LC_Morph_Graph< NodeTy, EdgeTy, HasNoLockable, UseNumaAlloc, HasOutOfLineLockable, HasId >::addEdgeWithoutCheck ( GraphNode  src,
GraphNode  dst,
Galois::MethodFlag  mflag,
Args &&...  args 
) [inline]
template<typename NodeTy , typename EdgeTy , bool HasNoLockable = false, bool UseNumaAlloc = false, bool HasOutOfLineLockable = false, bool HasId = false>
void Galois::Graph::LC_Morph_Graph< NodeTy, EdgeTy, HasNoLockable, UseNumaAlloc, HasOutOfLineLockable, HasId >::allocateFrom ( FileGraph graph,
ReadGraphAuxData aux 
) [inline]
template<typename NodeTy , typename EdgeTy , bool HasNoLockable = false, bool UseNumaAlloc = false, bool HasOutOfLineLockable = false, bool HasId = false>
iterator Galois::Graph::LC_Morph_Graph< NodeTy, EdgeTy, HasNoLockable, UseNumaAlloc, HasOutOfLineLockable, HasId >::begin (  )  [inline]

Returns an iterator to all the nodes in the graph.

Not thread-safe.

template<typename NodeTy , typename EdgeTy , bool HasNoLockable = false, bool UseNumaAlloc = false, bool HasOutOfLineLockable = false, bool HasId = false>
void Galois::Graph::LC_Morph_Graph< NodeTy, EdgeTy, HasNoLockable, UseNumaAlloc, HasOutOfLineLockable, HasId >::constructEdgesFrom ( FileGraph graph,
unsigned  tid,
unsigned  total,
const ReadGraphAuxData aux 
) [inline]
template<typename NodeTy , typename EdgeTy , bool HasNoLockable = false, bool UseNumaAlloc = false, bool HasOutOfLineLockable = false, bool HasId = false>
void Galois::Graph::LC_Morph_Graph< NodeTy, EdgeTy, HasNoLockable, UseNumaAlloc, HasOutOfLineLockable, HasId >::constructNodesFrom ( FileGraph graph,
unsigned  tid,
unsigned  total,
ReadGraphAuxData aux 
) [inline]
template<typename NodeTy , typename EdgeTy , bool HasNoLockable = false, bool UseNumaAlloc = false, bool HasOutOfLineLockable = false, bool HasId = false>
template<typename... Args>
GraphNode Galois::Graph::LC_Morph_Graph< NodeTy, EdgeTy, HasNoLockable, UseNumaAlloc, HasOutOfLineLockable, HasId >::createNode ( int  nedges,
Args &&...  args 
) [inline]
template<typename NodeTy , typename EdgeTy , bool HasNoLockable = false, bool UseNumaAlloc = false, bool HasOutOfLineLockable = false, bool HasId = false>
edge_iterator Galois::Graph::LC_Morph_Graph< NodeTy, EdgeTy, HasNoLockable, UseNumaAlloc, HasOutOfLineLockable, HasId >::edge_begin ( GraphNode  N,
MethodFlag  mflag = MethodFlag::ALL 
) [inline]
template<typename NodeTy , typename EdgeTy , bool HasNoLockable = false, bool UseNumaAlloc = false, bool HasOutOfLineLockable = false, bool HasId = false>
edge_iterator Galois::Graph::LC_Morph_Graph< NodeTy, EdgeTy, HasNoLockable, UseNumaAlloc, HasOutOfLineLockable, HasId >::edge_end ( GraphNode  N,
MethodFlag  mflag = MethodFlag::ALL 
) [inline]
template<typename NodeTy , typename EdgeTy , bool HasNoLockable = false, bool UseNumaAlloc = false, bool HasOutOfLineLockable = false, bool HasId = false>
iterator Galois::Graph::LC_Morph_Graph< NodeTy, EdgeTy, HasNoLockable, UseNumaAlloc, HasOutOfLineLockable, HasId >::end (  )  [inline]

Returns the end of the node iterator. Not thread-safe.

template<typename NodeTy , typename EdgeTy , bool HasNoLockable = false, bool UseNumaAlloc = false, bool HasOutOfLineLockable = false, bool HasId = false>
edge_iterator Galois::Graph::LC_Morph_Graph< NodeTy, EdgeTy, HasNoLockable, UseNumaAlloc, HasOutOfLineLockable, HasId >::findEdge ( GraphNode  src,
GraphNode  dst,
Galois::MethodFlag  mflag = MethodFlag::ALL 
) [inline]
template<typename NodeTy , typename EdgeTy , bool HasNoLockable = false, bool UseNumaAlloc = false, bool HasOutOfLineLockable = false, bool HasId = false>
node_data_reference Galois::Graph::LC_Morph_Graph< NodeTy, EdgeTy, HasNoLockable, UseNumaAlloc, HasOutOfLineLockable, HasId >::getData ( const GraphNode N,
MethodFlag  mflag = MethodFlag::ALL 
) [inline]
template<typename NodeTy , typename EdgeTy , bool HasNoLockable = false, bool UseNumaAlloc = false, bool HasOutOfLineLockable = false, bool HasId = false>
edge_data_reference Galois::Graph::LC_Morph_Graph< NodeTy, EdgeTy, HasNoLockable, UseNumaAlloc, HasOutOfLineLockable, HasId >::getEdgeData ( edge_iterator  ni,
MethodFlag  mflag = MethodFlag::NONE 
) [inline]
template<typename NodeTy , typename EdgeTy , bool HasNoLockable = false, bool UseNumaAlloc = false, bool HasOutOfLineLockable = false, bool HasId = false>
GraphNode Galois::Graph::LC_Morph_Graph< NodeTy, EdgeTy, HasNoLockable, UseNumaAlloc, HasOutOfLineLockable, HasId >::getEdgeDst ( edge_iterator  ni  )  [inline]
template<typename NodeTy , typename EdgeTy , bool HasNoLockable = false, bool UseNumaAlloc = false, bool HasOutOfLineLockable = false, bool HasId = false>
template<bool _Enable = HasId>
size_t Galois::Graph::LC_Morph_Graph< NodeTy, EdgeTy, HasNoLockable, UseNumaAlloc, HasOutOfLineLockable, HasId >::getId ( GraphNode  N,
typename std::enable_if< _Enable >::type = 0 
) [inline, protected]
template<typename NodeTy , typename EdgeTy , bool HasNoLockable = false, bool UseNumaAlloc = false, bool HasOutOfLineLockable = false, bool HasId = false>
local_iterator Galois::Graph::LC_Morph_Graph< NodeTy, EdgeTy, HasNoLockable, UseNumaAlloc, HasOutOfLineLockable, HasId >::local_begin (  )  [inline]
template<typename NodeTy , typename EdgeTy , bool HasNoLockable = false, bool UseNumaAlloc = false, bool HasOutOfLineLockable = false, bool HasId = false>
local_iterator Galois::Graph::LC_Morph_Graph< NodeTy, EdgeTy, HasNoLockable, UseNumaAlloc, HasOutOfLineLockable, HasId >::local_end (  )  [inline]

Friends And Related Function Documentation

template<typename NodeTy , typename EdgeTy , bool HasNoLockable = false, bool UseNumaAlloc = false, bool HasOutOfLineLockable = false, bool HasId = false>
friend class LC_InOut_Graph [friend]

Member Data Documentation

template<typename NodeTy , typename EdgeTy , bool HasNoLockable = false, bool UseNumaAlloc = false, bool HasOutOfLineLockable = false, bool HasId = false>
Galois::Runtime::PerThreadStorage<EdgeHolder*> Galois::Graph::LC_Morph_Graph< NodeTy, EdgeTy, HasNoLockable, UseNumaAlloc, HasOutOfLineLockable, HasId >::edges [protected]
template<typename NodeTy , typename EdgeTy , bool HasNoLockable = false, bool UseNumaAlloc = false, bool HasOutOfLineLockable = false, bool HasId = false>
Nodes Galois::Graph::LC_Morph_Graph< NodeTy, EdgeTy, HasNoLockable, UseNumaAlloc, HasOutOfLineLockable, HasId >::nodes [protected]

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

Generated on 2 Nov 2013 for Galois by  doxygen 1.6.1