This file is indexed.

/usr/include/gamera/graph/nodetraverseiterator.hpp is in python-gamera-dev 3.3.3-2ubuntu1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
/*
 *
 * Copyright (C) 2011 Christian Brandt
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License
 * as published by the Free Software Foundation; either version 2
 * of the License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */


#ifndef _NODETRAVERSEITERATOR_HPP_826C06039D50C0
#define _NODETRAVERSEITERATOR_HPP_826C06039D50C0

#include "graph_common.hpp"

namespace Gamera { namespace GraphApi {

   
   
// -----------------------------------------------------------------------------
/**
  * lazy iterator for traversing through a graph node-by-node
  * must be subclassed for using a concrete alrogithm 
  * (BFS, DFS, etc)
  * 
  * next() returns next Node or NULL when there are no more nodes.
  *
  * Please note that chaning the graph invalidates this iterator and 
  * leads to undefined behaviour.
  *
  * initially no nodes are marked as visited
  */
class NodeTraverseIterator {
protected:
   Graph* _graph;
   NodeSet _visited;

public:
   NodeTraverseIterator(Graph* graph) {
      _graph = graph;
   }
   virtual ~NodeTraverseIterator() {}

   /// marks the given node as visited
   inline void visit(Node* node) {
      _visited.insert(node);
   }

   /// marks the given node as not visited
   inline void unvisit(Node* node) {
      if(is_visited(node))
         _visited.erase(node);
   }

   /// returns true when the given node is marked as visited
   inline bool is_visited(Node* node) {
      return _visited.count(node) == 1;
   }

   /// returns pointer to next node or NULL when there is no more node
   virtual Node* next() = 0;
};



}} // end Gamera::GraphApi
#endif /* _NODETRAVERSEITERATOR_HPP_826C06039D50C0 */