21 #ifndef TULIP_GRAPHITERATORS_H 22 #define TULIP_GRAPHITERATORS_H 23 #include <tulip/BasicIterators.h> 24 #include <tulip/tulipconf.h> 34 class TLP_SCOPE OutNodesIterator :
public FactorNodeIterator,
public MemoryPool<OutNodesIterator> {
37 #if !defined(NDEBUG) && !defined(_OPENMP) 41 OutNodesIterator(
const GraphView *sG, node n);
42 ~OutNodesIterator()
override;
44 bool hasNext()
override;
48 class InNodesIterator :
public FactorNodeIterator,
public MemoryPool<InNodesIterator> {
51 #if !defined(NDEBUG) && !defined(_OPENMP) 55 InNodesIterator(
const GraphView *sG, node n);
56 ~InNodesIterator()
override;
58 bool hasNext()
override;
62 class TLP_SCOPE InOutNodesIterator :
public FactorNodeIterator,
63 public MemoryPool<InOutNodesIterator> {
67 #if !defined(NDEBUG) && !defined(_OPENMP) 71 InOutNodesIterator(
const GraphView *sG, node n);
72 ~InOutNodesIterator()
override;
74 bool hasNext()
override;
78 class TLP_SCOPE OutEdgesIterator :
public FactorEdgeIterator,
public MemoryPool<OutEdgesIterator> {
85 OutEdgesIterator(
const GraphView *sG, node n);
86 ~OutEdgesIterator()
override;
88 bool hasNext()
override;
95 class TLP_SCOPE InEdgesIterator :
public FactorEdgeIterator,
public MemoryPool<InEdgesIterator> {
102 InEdgesIterator(
const GraphView *sG, node n);
103 ~InEdgesIterator()
override;
104 edge next()
override;
105 bool hasNext()
override;
112 class TLP_SCOPE InOutEdgesIterator :
public FactorEdgeIterator,
113 public MemoryPool<InOutEdgesIterator> {
120 InOutEdgesIterator(
const GraphView *sG, node n);
121 ~InOutEdgesIterator()
override;
122 edge next()
override;
123 bool hasNext()
override;
132 class TLP_SCOPE GraphNodeIterator :
public NodeIterator
133 #if defined(NDEBUG) || defined(_OPENMP) 135 public MemoryPool<GraphNodeIterator>
139 #if !defined(NDEBUG) && !defined(_OPENMP) 143 Iterator<node> *itId;
146 GraphNodeIterator(
const Graph *g, Iterator<node> *it);
147 ~GraphNodeIterator()
override;
148 node next()
override;
149 bool hasNext()
override;
153 class TLP_SCOPE GraphEdgeIterator :
public EdgeIterator
154 #if defined(NDEBUG) || defined(_OPENMP) 156 public MemoryPool<GraphEdgeIterator>
160 #if !defined(NDEBUG) && !defined(_OPENMP) 164 Iterator<edge> *itId;
167 GraphEdgeIterator(
const Graph *g, Iterator<edge> *it);
168 ~GraphEdgeIterator()
override;
169 edge next()
override;
170 bool hasNext()
override;