ROSE 2.1.0
Loading...
Searching...
No Matches
Public Types | Public Member Functions | List of all members
Rose::FlowGraphInterface::SawyerCtrlflowGraph< NodeInfo, EdgeInfo > Class Template Reference

Description

template<class NodeInfo, class EdgeInfo>
class Rose::FlowGraphInterface::SawyerCtrlflowGraph< NodeInfo, EdgeInfo >

Definition at line 12 of file SawyerGraphConnection.h.

Inheritance diagram for Rose::FlowGraphInterface::SawyerCtrlflowGraph< NodeInfo, EdgeInfo >:
Inheritance graph
[legend]
Collaboration diagram for Rose::FlowGraphInterface::SawyerCtrlflowGraph< NodeInfo, EdgeInfo >:
Collaboration graph
[legend]

Public Types

typedef Sawyer::Container::Graph< NodeInfo, EdgeInfo >::ConstVertexIterator NodeIterator
 
typedef Sawyer::Container::Graph< NodeInfo, EdgeInfo >::ConstEdgeIterator EdgeIterator
 
typedef Sawyer::Container::Graph< NodeInfo, EdgeInfo > SawyerBase
 
typedef boost::iterator_range< EdgeIteratorEdgeCollectionType
 
typedef boost::iterator_range< NodeIteratorNodeCollectionType
 
typedef Rose::FlowGraphInterface::CtrlflowGraphInterface< typename Sawyer::Container::Graph< NodeInfo, EdgeInfo >::ConstVertexIterator, typename Sawyer::Container::Graph< NodeInfo, EdgeInfo >::ConstEdgeIterator, NodeInfo, EdgeInfo > FlowGraphInterfaceType
 
- Public Types inherited from Sawyer::Container::Graph< NodeInfo, EdgeInfo >
typedef NodeInfo VertexValue
 User-level data associated with vertices.
 
typedef EdgeInfo EdgeValue
 User-level data associated with edges.
 
typedef GraphVertexNoKey< NodeInfo > VertexKey
 Type for looking up a vertex.
 
typedef GraphEdgeNoKey< EdgeInfo > EdgeKey
 Type for looking up an edge.
 
typedef DefaultAllocator Allocator
 Allocator for vertex and edge nodes.
 
typedef Edge EdgeNode __attribute__((deprecated))
 
typedef Vertex VertexNode __attribute__((deprecated))
 
typedef EdgeIterator EdgeNodeIterator __attribute__((deprecated))
 
typedef ConstEdgeIterator ConstEdgeNodeIterator __attribute__((deprecated))
 
typedef VertexIterator VertexNodeIterator __attribute__((deprecated))
 
typedef ConstVertexIterator ConstVertexNodeIterator __attribute__((deprecated))
 
- Public Types inherited from Rose::FlowGraphInterface::CtrlflowGraphInterface< Sawyer::Container::Graph< NodeInfo, EdgeInfo >::ConstVertexIterator, Sawyer::Container::Graph< NodeInfo, EdgeInfo >::ConstEdgeIterator, NodeInfo, EdgeInfo >
using NodeCollectionType = boost::iterator_range< Sawyer::Container::Graph< NodeInfo, EdgeInfo >::ConstVertexIterator >
 
using EdgeCollectionType = boost::iterator_range< Sawyer::Container::Graph< NodeInfo, EdgeInfo >::ConstEdgeIterator >
 
- Public Types inherited from Rose::FlowGraphInterface::FlowGraphAccessInterface< NodeIterator, EdgeIterator, NodeCollection, EdgeCollection >
using NodeCollectionType = NodeCollection
 
using EdgeCollectionType = EdgeCollection
 
using NodePredicate = std::function< bool(NodeIterator)>
 
using EdgePredicate = std::function< bool(EdgeIterator)>
 

Public Member Functions

virtual NodeCollectionType getNodes (NodePredicate=noFilter< NodeIterator >()) const override
 
virtual EdgeCollectionType getEdges (EdgePredicate=noFilter< EdgeIterator >()) const override
 
virtual const NodeInfo & dereferenceNode (const NodeIterator &p) const
 
virtual const EdgeInfo & dereferenceEdge (const EdgeIterator &p) const
 
virtual NodeIterator edgeSource (const EdgeIterator &p) const override
 
virtual NodeIterator edgeTarget (const EdgeIterator &p) const override
 
virtual EdgeCollectionType getEdgesFrom (const NodeIterator &p, EdgePredicate=noFilter< EdgeIterator >()) const override
 
virtual EdgeCollectionType getEdgesTo (const NodeIterator &p, EdgePredicate=noFilter< EdgeIterator >()) const override
 
virtual NodeIterator addNode (const NodeInfo &node) override
 
virtual EdgeIterator addEdge (const NodeIterator &p1, const NodeIterator &p2, const EdgeInfo &t) override
 
- Public Member Functions inherited from Sawyer::Container::Graph< NodeInfo, EdgeInfo >
 Graph (const Allocator &allocator=Allocator())
 Default constructor.
 
 Graph (const Graph &other)
 Copy constructor.
 
 Graph (const Graph< V2, E2, VKey2, EKey2, Alloc2 > &other, const Allocator &allocator=Allocator())
 Copy constructor.
 
Graphoperator= (const Graph &other)
 Assignment.
 
Graphoperator= (const Graph< V2, E2, VKey2, EKey2, Alloc2 > &other)
 Assignment.
 
const Allocatorallocator ()
 Allocator.
 
bool isValidVertex (const ConstVertexIterator &vertex) const
 Determines whether the vertex iterator is valid.
 
bool isValidEdge (const ConstEdgeIterator &edge) const
 Determines whether the edge iterator is valid.
 
size_t nVertices () const
 Total number of vertices.
 
size_t nEdges () const
 Total number of edges.
 
bool isEmpty () const
 True if graph is empty.
 
VertexIterator insertVertex (const VertexValue &value=VertexValue())
 Insert a new vertex.
 
VertexIterator insertVertexMaybe (const VertexValue &value)
 Optionally insert a new vertex.
 
EdgeIterator insertEdgeWithVertices (const VertexValue &sourceValue, const VertexValue &targetValue, const EdgeValue &edgeValue=EdgeValue())
 Insert an edge and its vertex end points.
 
EdgeIterator eraseEdgeWithVertices (const EdgeIterator &edge)
 Erases and edge and possibly vertices.
 
void clearEdges ()
 Erase all edges, but leave all vertices.
 
void clear ()
 Remove all vertices and edges.
 
boost::iterator_range< VertexIterator > vertices ()
 Iterators for all vertices.
 
boost::iterator_range< ConstVertexIterator > vertices () const
 Iterators for all vertices.
 
boost::iterator_range< VertexValueIterator > vertexValues ()
 Iterators for all vertices.
 
boost::iterator_range< ConstVertexValueIterator > vertexValues () const
 Iterators for all vertices.
 
VertexIterator findVertex (size_t id)
 Finds the vertex with specified ID number.
 
ConstVertexIterator findVertex (size_t id) const
 Finds the vertex with specified ID number.
 
VertexIterator findVertexKey (const VertexKey &key)
 Finds a vertex given its key.
 
ConstVertexIterator findVertexKey (const VertexKey &key) const
 Finds a vertex given its key.
 
VertexIterator findVertexValue (const VertexValue &value)
 Finds a vertex given its value.
 
ConstVertexIterator findVertexValue (const VertexValue &value) const
 Finds a vertex given its value.
 
boost::iterator_range< EdgeIterator > edges ()
 Iterators for all edges.
 
boost::iterator_range< ConstEdgeIterator > edges () const
 Iterators for all edges.
 
boost::iterator_range< EdgeValueIterator > edgeValues ()
 Iterators for all edges.
 
boost::iterator_range< ConstEdgeValueIterator > edgeValues () const
 Iterators for all edges.
 
EdgeIterator findEdge (size_t id)
 Finds the edge with specified ID number.
 
ConstEdgeIterator findEdge (size_t id) const
 Finds the edge with specified ID number.
 
EdgeIterator findEdgeKey (const EdgeKey &key)
 Finds an edge given its key.
 
ConstEdgeIterator findEdgeKey (const EdgeKey &key) const
 Finds an edge given its key.
 
EdgeIterator findEdgeValue (const EdgeValue &value)
 Finds an edge given its value.
 
ConstEdgeIterator findEdgeValue (const EdgeValue &value) const
 Finds an edge given its value.
 
EdgeIterator insertEdge (const VertexIterator &sourceVertex, const VertexIterator &targetVertex, const EdgeValue &value=EdgeValue())
 Insert a new edge.
 
EdgeIterator insertEdge (const ConstVertexIterator &sourceVertex, const ConstVertexIterator &targetVertex, const EdgeValue &value=EdgeValue())
 Insert a new edge.
 
EdgeIterator insertEdgeMaybe (const VertexIterator &sourceVertex, const VertexIterator &targetVertex, const EdgeValue &value=EdgeValue())
 Optionally insert a new edge.
 
EdgeIterator insertEdgeMaybe (const ConstVertexIterator &sourceVertex, const ConstVertexIterator &targetVertex, const EdgeValue &value=EdgeValue())
 Optionally insert a new edge.
 
EdgeIterator eraseEdge (const EdgeIterator &edge)
 Erases an edge.
 
EdgeIterator eraseEdge (const ConstEdgeIterator &edge)
 Erases an edge.
 
void eraseEdges (const VertexIterator &source, const VertexIterator &target)
 Erases all edges connecting two vertices.
 
void eraseEdges (const ConstVertexIterator &source, const ConstVertexIterator &target)
 Erases all edges connecting two vertices.
 
VertexIterator eraseVertex (const VertexIterator &vertex)
 Erases a vertex and its incident edges.
 
VertexIterator eraseVertex (const ConstVertexIterator &vertex)
 Erases a vertex and its incident edges.
 
void clearEdges (const VertexIterator &vertex)
 Erase all edges incident to a vertex.
 
void clearEdges (const ConstVertexIterator &vertex)
 Erase all edges incident to a vertex.
 
void clearOutEdges (const VertexIterator &vertex)
 Erase all edges emanating from a vertex.
 
void clearOutEdges (const ConstVertexIterator &vertex)
 Erase all edges emanating from a vertex.
 
void clearInEdges (const VertexIterator &vertex)
 Erase all edges targeting a vertex.
 
void clearInEdges (const ConstVertexIterator &vertex)
 Erase all edges targeting a vertex.
 
- Public Member Functions inherited from Rose::FlowGraphInterface::CtrlflowGraphInterface< Sawyer::Container::Graph< NodeInfo, EdgeInfo >::ConstVertexIterator, Sawyer::Container::Graph< NodeInfo, EdgeInfo >::ConstEdgeIterator, NodeInfo, EdgeInfo >
virtual const NodeInfo & dereferenceNode (const Sawyer::Container::Graph< NodeInfo, EdgeInfo >::ConstVertexIterator &p) const=0
 
virtual const EdgeInfo & dereferenceEdge (const Sawyer::Container::Graph< NodeInfo, EdgeInfo >::ConstEdgeIterator &p) const=0
 
- Public Member Functions inherited from Rose::FlowGraphInterface::FlowGraphAccessInterface< NodeIterator, EdgeIterator, NodeCollection, EdgeCollection >
virtual NodeIterator edgeSource (const EdgeIterator &p) const =0
 
virtual NodeIterator edgeTarget (const EdgeIterator &p) const =0
 
virtual EdgeCollection getEdgesFrom (const NodeIterator &, EdgePredicate=noFilter< EdgeIterator >()) const
 
virtual EdgeCollection getEdgesTo (const NodeIterator &, EdgePredicate=noFilter< EdgeIterator >()) const
 
virtual enum MutationSupportOption allowMutationDuringTraversal () const
 
virtual TraversalSupportOption getTraversalSupport () const
 
- Public Member Functions inherited from Rose::FlowGraphInterface::FlowGraphCreateInterface< NodeInfo, EdgeInfo, NodeIterator, EdgeIterator >
virtual EdgeIterator addEdge (const NodeIterator &p1, const NodeIterator &p2, const EdgeInfo &t)=0
 

Member Typedef Documentation

◆ NodeIterator

template<class NodeInfo , class EdgeInfo >
typedef Sawyer::Container::Graph<NodeInfo,EdgeInfo>::ConstVertexIterator Rose::FlowGraphInterface::SawyerCtrlflowGraph< NodeInfo, EdgeInfo >::NodeIterator

Definition at line 18 of file SawyerGraphConnection.h.

◆ EdgeIterator

template<class NodeInfo , class EdgeInfo >
typedef Sawyer::Container::Graph<NodeInfo,EdgeInfo>::ConstEdgeIterator Rose::FlowGraphInterface::SawyerCtrlflowGraph< NodeInfo, EdgeInfo >::EdgeIterator

Definition at line 19 of file SawyerGraphConnection.h.

◆ SawyerBase

template<class NodeInfo , class EdgeInfo >
typedef Sawyer::Container::Graph<NodeInfo, EdgeInfo> Rose::FlowGraphInterface::SawyerCtrlflowGraph< NodeInfo, EdgeInfo >::SawyerBase

Definition at line 20 of file SawyerGraphConnection.h.

◆ EdgeCollectionType

template<class NodeInfo , class EdgeInfo >
typedef boost::iterator_range<EdgeIterator> Rose::FlowGraphInterface::SawyerCtrlflowGraph< NodeInfo, EdgeInfo >::EdgeCollectionType

Definition at line 21 of file SawyerGraphConnection.h.

◆ NodeCollectionType

template<class NodeInfo , class EdgeInfo >
typedef boost::iterator_range<NodeIterator> Rose::FlowGraphInterface::SawyerCtrlflowGraph< NodeInfo, EdgeInfo >::NodeCollectionType

Definition at line 22 of file SawyerGraphConnection.h.

◆ FlowGraphInterfaceType

template<class NodeInfo , class EdgeInfo >
typedef Rose::FlowGraphInterface::CtrlflowGraphInterface< typename Sawyer::Container::Graph<NodeInfo,EdgeInfo>::ConstVertexIterator, typename Sawyer::Container::Graph<NodeInfo,EdgeInfo>::ConstEdgeIterator, NodeInfo, EdgeInfo> Rose::FlowGraphInterface::SawyerCtrlflowGraph< NodeInfo, EdgeInfo >::FlowGraphInterfaceType

Definition at line 25 of file SawyerGraphConnection.h.

Member Function Documentation

◆ getNodes()

template<class NodeInfo , class EdgeInfo >
virtual NodeCollectionType Rose::FlowGraphInterface::SawyerCtrlflowGraph< NodeInfo, EdgeInfo >::getNodes ( NodePredicate  = noFilter<NodeIterator>()) const
inlineoverridevirtual

◆ getEdges()

template<class NodeInfo , class EdgeInfo >
virtual EdgeCollectionType Rose::FlowGraphInterface::SawyerCtrlflowGraph< NodeInfo, EdgeInfo >::getEdges ( EdgePredicate  = noFilter<EdgeIterator>()) const
inlineoverridevirtual

◆ dereferenceNode()

template<class NodeInfo , class EdgeInfo >
virtual const NodeInfo & Rose::FlowGraphInterface::SawyerCtrlflowGraph< NodeInfo, EdgeInfo >::dereferenceNode ( const NodeIterator p) const
inlinevirtual

Definition at line 34 of file SawyerGraphConnection.h.

◆ dereferenceEdge()

template<class NodeInfo , class EdgeInfo >
virtual const EdgeInfo & Rose::FlowGraphInterface::SawyerCtrlflowGraph< NodeInfo, EdgeInfo >::dereferenceEdge ( const EdgeIterator p) const
inlinevirtual

Definition at line 35 of file SawyerGraphConnection.h.

◆ edgeSource()

template<class NodeInfo , class EdgeInfo >
virtual NodeIterator Rose::FlowGraphInterface::SawyerCtrlflowGraph< NodeInfo, EdgeInfo >::edgeSource ( const EdgeIterator p) const
inlineoverridevirtual

Definition at line 37 of file SawyerGraphConnection.h.

◆ edgeTarget()

template<class NodeInfo , class EdgeInfo >
virtual NodeIterator Rose::FlowGraphInterface::SawyerCtrlflowGraph< NodeInfo, EdgeInfo >::edgeTarget ( const EdgeIterator p) const
inlineoverridevirtual

Definition at line 39 of file SawyerGraphConnection.h.

◆ getEdgesFrom()

template<class NodeInfo , class EdgeInfo >
virtual EdgeCollectionType Rose::FlowGraphInterface::SawyerCtrlflowGraph< NodeInfo, EdgeInfo >::getEdgesFrom ( const NodeIterator p,
EdgePredicate  = noFilter<EdgeIterator>() 
) const
inlineoverridevirtual

Definition at line 42 of file SawyerGraphConnection.h.

◆ getEdgesTo()

template<class NodeInfo , class EdgeInfo >
virtual EdgeCollectionType Rose::FlowGraphInterface::SawyerCtrlflowGraph< NodeInfo, EdgeInfo >::getEdgesTo ( const NodeIterator p,
EdgePredicate  = noFilter<EdgeIterator>() 
) const
inlineoverridevirtual

Definition at line 44 of file SawyerGraphConnection.h.

◆ addNode()

template<class NodeInfo , class EdgeInfo >
virtual NodeIterator Rose::FlowGraphInterface::SawyerCtrlflowGraph< NodeInfo, EdgeInfo >::addNode ( const NodeInfo &  node)
inlineoverridevirtual

◆ addEdge()

template<class NodeInfo , class EdgeInfo >
virtual EdgeIterator Rose::FlowGraphInterface::SawyerCtrlflowGraph< NodeInfo, EdgeInfo >::addEdge ( const NodeIterator p1,
const NodeIterator p2,
const EdgeInfo &  t 
)
inlineoverridevirtual

Definition at line 49 of file SawyerGraphConnection.h.


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