#include <OCGraph.h>
Classes | |
class | segment_type |
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_oc_immutable_edge_graph_tag | read_tag |
typedef int | tt_is_segmented |
typedef OCFileGraph::GraphNode | GraphNode |
typedef EdgeTy | edge_data_type |
typedef NodeTy | node_data_type |
typedef OCFileGraph::template EdgeReference< EdgeTy >::type | edge_data_reference |
typedef NodeInfo::reference | node_data_reference |
typedef OCFileGraph::edge_iterator | edge_iterator |
typedef edge_iterator | in_edge_iterator |
typedef OCFileGraph::iterator | iterator |
typedef iterator | const_iterator |
typedef boost::counting_iterator < GraphNode > | local_iterator |
typedef local_iterator | const_local_iterator |
Public Member Functions | |
~OCImmutableEdgeGraph () | |
void | keepInMemory () |
segment_type | nextSegment (size_t edges) |
Returns a segment starting from the beginning of the graph with either (1) some number of nodes with all their edges but no more than numEdges else (2) one node and all its edges. | |
segment_type | nextSegment (const segment_type &cur, size_t edges) |
Returns the next segment after cur. | |
void | load (segment_type &seg) |
void | unload (segment_type &seg) |
iterator | begin (const segment_type &cur) |
iterator | end (const segment_type &cur) |
node_data_reference | getData (GraphNode N, MethodFlag mflag=MethodFlag::ALL) |
edge_data_reference | getEdgeData (const segment_type &segment, edge_iterator ni, MethodFlag mflag=MethodFlag::NONE) |
GraphNode | getEdgeDst (const segment_type &segment, edge_iterator ni) |
uint64_t | size () const |
uint64_t | sizeEdges () const |
iterator | begin () const |
iterator | end () const |
const_local_iterator | local_begin () const |
const_local_iterator | local_end () const |
local_iterator | local_begin () |
local_iterator | local_end () |
edge_iterator | edge_begin (const segment_type &segment, GraphNode N, MethodFlag mflag=MethodFlag::ALL) |
edge_iterator | edge_end (const segment_type &segment, GraphNode N, MethodFlag mflag=MethodFlag::ALL) |
edge_data_reference | getInEdgeData (const segment_type &segment, edge_iterator ni, MethodFlag mflag=MethodFlag::NONE) |
GraphNode | getInEdgeDst (const segment_type &segment, in_edge_iterator ni) |
in_edge_iterator | in_edge_begin (const segment_type &segment, GraphNode N, MethodFlag mflag=MethodFlag::ALL) |
in_edge_iterator | in_edge_end (const segment_type &segment, GraphNode N, MethodFlag mflag=MethodFlag::ALL) |
size_t | idFromNode (GraphNode N) |
GraphNode | nodeFromId (size_t N) |
void | createFrom (const std::string &fname) |
Assumes that the graph is symmetric. | |
void | createFrom (const std::string &fname, const std::string &transpose) |
Private Types | |
typedef detail::NodeInfoBase < NodeTy,!HasNoLockable &&!HasOutOfLineLockable > | NodeInfo |
typedef LargeArray< NodeInfo > | NodeData |
Private Member Functions | |
segment_type | computeSegment (size_t startNode, size_t numEdges) |
void | load (segment_type &seg, size_t sizeof_data) |
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) |
Private Attributes | |
NodeData | nodeData |
OCFileGraph | outGraph |
OCFileGraph | inGraphStorage |
OCFileGraph * | inGraph |
uint64_t | numNodes |
uint64_t | numEdges |
Galois::optional< segment_type > | memorySegment |
typedef iterator Galois::Graph::OCImmutableEdgeGraph< NodeTy, EdgeTy, HasNoLockable, HasOutOfLineLockable >::const_iterator |
typedef local_iterator Galois::Graph::OCImmutableEdgeGraph< NodeTy, EdgeTy, HasNoLockable, HasOutOfLineLockable >::const_local_iterator |
typedef OCFileGraph::template EdgeReference<EdgeTy>::type Galois::Graph::OCImmutableEdgeGraph< NodeTy, EdgeTy, HasNoLockable, HasOutOfLineLockable >::edge_data_reference |
typedef EdgeTy Galois::Graph::OCImmutableEdgeGraph< NodeTy, EdgeTy, HasNoLockable, HasOutOfLineLockable >::edge_data_type |
typedef OCFileGraph::edge_iterator Galois::Graph::OCImmutableEdgeGraph< NodeTy, EdgeTy, HasNoLockable, HasOutOfLineLockable >::edge_iterator |
typedef OCFileGraph::GraphNode Galois::Graph::OCImmutableEdgeGraph< NodeTy, EdgeTy, HasNoLockable, HasOutOfLineLockable >::GraphNode |
typedef edge_iterator Galois::Graph::OCImmutableEdgeGraph< NodeTy, EdgeTy, HasNoLockable, HasOutOfLineLockable >::in_edge_iterator |
typedef OCFileGraph::iterator Galois::Graph::OCImmutableEdgeGraph< NodeTy, EdgeTy, HasNoLockable, HasOutOfLineLockable >::iterator |
typedef boost::counting_iterator<GraphNode> Galois::Graph::OCImmutableEdgeGraph< NodeTy, EdgeTy, HasNoLockable, HasOutOfLineLockable >::local_iterator |
typedef NodeInfo::reference Galois::Graph::OCImmutableEdgeGraph< NodeTy, EdgeTy, HasNoLockable, HasOutOfLineLockable >::node_data_reference |
typedef NodeTy Galois::Graph::OCImmutableEdgeGraph< NodeTy, EdgeTy, HasNoLockable, HasOutOfLineLockable >::node_data_type |
typedef LargeArray<NodeInfo> Galois::Graph::OCImmutableEdgeGraph< NodeTy, EdgeTy, HasNoLockable, HasOutOfLineLockable >::NodeData [private] |
typedef detail::NodeInfoBase<NodeTy,!HasNoLockable && !HasOutOfLineLockable> Galois::Graph::OCImmutableEdgeGraph< NodeTy, EdgeTy, HasNoLockable, HasOutOfLineLockable >::NodeInfo [private] |
typedef read_oc_immutable_edge_graph_tag Galois::Graph::OCImmutableEdgeGraph< NodeTy, EdgeTy, HasNoLockable, HasOutOfLineLockable >::read_tag |
typedef int Galois::Graph::OCImmutableEdgeGraph< NodeTy, EdgeTy, HasNoLockable, HasOutOfLineLockable >::tt_is_segmented |
Galois::Graph::OCImmutableEdgeGraph< NodeTy, EdgeTy, HasNoLockable, HasOutOfLineLockable >::~OCImmutableEdgeGraph | ( | ) | [inline] |
void Galois::Graph::OCImmutableEdgeGraph< NodeTy, EdgeTy, HasNoLockable, HasOutOfLineLockable >::acquireNode | ( | GraphNode | N, | |
MethodFlag | mflag, | |||
typename std::enable_if< _A2 >::type * | = 0 | |||
) | [inline, private] |
void Galois::Graph::OCImmutableEdgeGraph< NodeTy, EdgeTy, HasNoLockable, HasOutOfLineLockable >::acquireNode | ( | GraphNode | N, | |
MethodFlag | mflag, | |||
typename std::enable_if< _A1 &&!_A2 >::type * | = 0 | |||
) | [inline, private] |
void Galois::Graph::OCImmutableEdgeGraph< NodeTy, EdgeTy, HasNoLockable, HasOutOfLineLockable >::acquireNode | ( | GraphNode | N, | |
MethodFlag | mflag, | |||
typename std::enable_if<!_A1 &&!_A2 >::type * | = 0 | |||
) | [inline, private] |
iterator Galois::Graph::OCImmutableEdgeGraph< NodeTy, EdgeTy, HasNoLockable, HasOutOfLineLockable >::begin | ( | ) | const [inline] |
iterator Galois::Graph::OCImmutableEdgeGraph< NodeTy, EdgeTy, HasNoLockable, HasOutOfLineLockable >::begin | ( | const segment_type & | cur | ) | [inline] |
segment_type Galois::Graph::OCImmutableEdgeGraph< NodeTy, EdgeTy, HasNoLockable, HasOutOfLineLockable >::computeSegment | ( | size_t | startNode, | |
size_t | numEdges | |||
) | [inline, private] |
void Galois::Graph::OCImmutableEdgeGraph< NodeTy, EdgeTy, HasNoLockable, HasOutOfLineLockable >::createFrom | ( | const std::string & | fname, | |
const std::string & | transpose | |||
) | [inline] |
void Galois::Graph::OCImmutableEdgeGraph< NodeTy, EdgeTy, HasNoLockable, HasOutOfLineLockable >::createFrom | ( | const std::string & | fname | ) | [inline] |
Assumes that the graph is symmetric.
edge_iterator Galois::Graph::OCImmutableEdgeGraph< NodeTy, EdgeTy, HasNoLockable, HasOutOfLineLockable >::edge_begin | ( | const segment_type & | segment, | |
GraphNode | N, | |||
MethodFlag | mflag = MethodFlag::ALL | |||
) | [inline] |
edge_iterator Galois::Graph::OCImmutableEdgeGraph< NodeTy, EdgeTy, HasNoLockable, HasOutOfLineLockable >::edge_end | ( | const segment_type & | segment, | |
GraphNode | N, | |||
MethodFlag | mflag = MethodFlag::ALL | |||
) | [inline] |
iterator Galois::Graph::OCImmutableEdgeGraph< NodeTy, EdgeTy, HasNoLockable, HasOutOfLineLockable >::end | ( | ) | const [inline] |
iterator Galois::Graph::OCImmutableEdgeGraph< NodeTy, EdgeTy, HasNoLockable, HasOutOfLineLockable >::end | ( | const segment_type & | cur | ) | [inline] |
node_data_reference Galois::Graph::OCImmutableEdgeGraph< NodeTy, EdgeTy, HasNoLockable, HasOutOfLineLockable >::getData | ( | GraphNode | N, | |
MethodFlag | mflag = MethodFlag::ALL | |||
) | [inline] |
edge_data_reference Galois::Graph::OCImmutableEdgeGraph< NodeTy, EdgeTy, HasNoLockable, HasOutOfLineLockable >::getEdgeData | ( | const segment_type & | segment, | |
edge_iterator | ni, | |||
MethodFlag | mflag = MethodFlag::NONE | |||
) | [inline] |
GraphNode Galois::Graph::OCImmutableEdgeGraph< NodeTy, EdgeTy, HasNoLockable, HasOutOfLineLockable >::getEdgeDst | ( | const segment_type & | segment, | |
edge_iterator | ni | |||
) | [inline] |
edge_data_reference Galois::Graph::OCImmutableEdgeGraph< NodeTy, EdgeTy, HasNoLockable, HasOutOfLineLockable >::getInEdgeData | ( | const segment_type & | segment, | |
edge_iterator | ni, | |||
MethodFlag | mflag = MethodFlag::NONE | |||
) | [inline] |
GraphNode Galois::Graph::OCImmutableEdgeGraph< NodeTy, EdgeTy, HasNoLockable, HasOutOfLineLockable >::getInEdgeDst | ( | const segment_type & | segment, | |
in_edge_iterator | ni | |||
) | [inline] |
size_t Galois::Graph::OCImmutableEdgeGraph< NodeTy, EdgeTy, HasNoLockable, HasOutOfLineLockable >::idFromNode | ( | GraphNode | N | ) | [inline] |
in_edge_iterator Galois::Graph::OCImmutableEdgeGraph< NodeTy, EdgeTy, HasNoLockable, HasOutOfLineLockable >::in_edge_begin | ( | const segment_type & | segment, | |
GraphNode | N, | |||
MethodFlag | mflag = MethodFlag::ALL | |||
) | [inline] |
in_edge_iterator Galois::Graph::OCImmutableEdgeGraph< NodeTy, EdgeTy, HasNoLockable, HasOutOfLineLockable >::in_edge_end | ( | const segment_type & | segment, | |
GraphNode | N, | |||
MethodFlag | mflag = MethodFlag::ALL | |||
) | [inline] |
void Galois::Graph::OCImmutableEdgeGraph< NodeTy, EdgeTy, HasNoLockable, HasOutOfLineLockable >::keepInMemory | ( | ) | [inline] |
void Galois::Graph::OCImmutableEdgeGraph< NodeTy, EdgeTy, HasNoLockable, HasOutOfLineLockable >::load | ( | segment_type & | seg | ) | [inline] |
void Galois::Graph::OCImmutableEdgeGraph< NodeTy, EdgeTy, HasNoLockable, HasOutOfLineLockable >::load | ( | segment_type & | seg, | |
size_t | sizeof_data | |||
) | [inline, private] |
local_iterator Galois::Graph::OCImmutableEdgeGraph< NodeTy, EdgeTy, HasNoLockable, HasOutOfLineLockable >::local_begin | ( | ) | [inline] |
const_local_iterator Galois::Graph::OCImmutableEdgeGraph< NodeTy, EdgeTy, HasNoLockable, HasOutOfLineLockable >::local_begin | ( | ) | const [inline] |
local_iterator Galois::Graph::OCImmutableEdgeGraph< NodeTy, EdgeTy, HasNoLockable, HasOutOfLineLockable >::local_end | ( | ) | [inline] |
const_local_iterator Galois::Graph::OCImmutableEdgeGraph< NodeTy, EdgeTy, HasNoLockable, HasOutOfLineLockable >::local_end | ( | ) | const [inline] |
segment_type Galois::Graph::OCImmutableEdgeGraph< NodeTy, EdgeTy, HasNoLockable, HasOutOfLineLockable >::nextSegment | ( | const segment_type & | cur, | |
size_t | edges | |||
) | [inline] |
Returns the next segment after cur.
segment_type Galois::Graph::OCImmutableEdgeGraph< NodeTy, EdgeTy, HasNoLockable, HasOutOfLineLockable >::nextSegment | ( | size_t | edges | ) | [inline] |
Returns a segment starting from the beginning of the graph with either (1) some number of nodes with all their edges but no more than numEdges else (2) one node and all its edges.
GraphNode Galois::Graph::OCImmutableEdgeGraph< NodeTy, EdgeTy, HasNoLockable, HasOutOfLineLockable >::nodeFromId | ( | size_t | N | ) | [inline] |
uint64_t Galois::Graph::OCImmutableEdgeGraph< NodeTy, EdgeTy, HasNoLockable, HasOutOfLineLockable >::size | ( | ) | const [inline] |
uint64_t Galois::Graph::OCImmutableEdgeGraph< NodeTy, EdgeTy, HasNoLockable, HasOutOfLineLockable >::sizeEdges | ( | ) | const [inline] |
void Galois::Graph::OCImmutableEdgeGraph< NodeTy, EdgeTy, HasNoLockable, HasOutOfLineLockable >::unload | ( | segment_type & | seg | ) | [inline] |
OCFileGraph* Galois::Graph::OCImmutableEdgeGraph< NodeTy, EdgeTy, HasNoLockable, HasOutOfLineLockable >::inGraph [private] |
OCFileGraph Galois::Graph::OCImmutableEdgeGraph< NodeTy, EdgeTy, HasNoLockable, HasOutOfLineLockable >::inGraphStorage [private] |
Galois::optional<segment_type> Galois::Graph::OCImmutableEdgeGraph< NodeTy, EdgeTy, HasNoLockable, HasOutOfLineLockable >::memorySegment [private] |
NodeData Galois::Graph::OCImmutableEdgeGraph< NodeTy, EdgeTy, HasNoLockable, HasOutOfLineLockable >::nodeData [private] |
uint64_t Galois::Graph::OCImmutableEdgeGraph< NodeTy, EdgeTy, HasNoLockable, HasOutOfLineLockable >::numEdges [private] |
uint64_t Galois::Graph::OCImmutableEdgeGraph< NodeTy, EdgeTy, HasNoLockable, HasOutOfLineLockable >::numNodes [private] |
OCFileGraph Galois::Graph::OCImmutableEdgeGraph< NodeTy, EdgeTy, HasNoLockable, HasOutOfLineLockable >::outGraph [private] |