My Project
graphtools.hpp
1 
20 #ifndef _GRAPHTOOLS_HPP_
21 #define _GRAPHTOOLS_HPP_ 1
22 #include <functional>
23 #include <set>
24 #include <queue>
25 #include <stack>
26 #include <vector>
28 struct PortInfo;
29 namespace raft
30 {
31  class kernel;
32 }
33 
42 using edge_func = std::function< void( PortInfo&,
43  PortInfo&,
44  void* ) >;
52 using vertex_func = std::function< void( raft::kernel*,
53  void* ) >;
54 
55 
57 {
58 public:
59  GraphTools() = delete;
60 
74  static void BFS( std::set< raft::kernel* > &source_kernels,
75  edge_func func,
76  void *data = nullptr,
77  bool connected_error = false );
78 
79 
93  static void BFS( std::vector< raft::kernel* > &source_kernels,
94  edge_func func,
95  void *data = nullptr,
96  bool connected_error = false );
97 
98 
99 
100  static void
101  BFS( std::set< raft::kernel* > &source_kernels,
102  vertex_func func,
103  void *data );
104 
105 private:
118  //FIXME - you need to finish this
119  static void __BFS( std::queue< raft::kernel* > &q,
120  std::set< raft::kernel* > &s,
121  edge_func func,
122  void *data,
123  bool connected_error );
124  static void __BFS( std::queue< raft::kernel* > &q,
125  std::set< raft::kernel* > &s,
126  vertex_func func,
127  void *data );
128  static void __DFS( std::stack< raft::kernel* > &stack,
129  std::set< raft::kernel* > &visited_set,
130  edge_func func,
131  void *data );
132  static void __DFS( std::stack< raft::kernel* > &stack,
133  std::set< raft::kernel* > &visited_set,
134  vertex_func func,
135  void *data );
136 };
137 #endif /* END _GRAPHTOOLS_HPP_ */
Definition: graphtools.hpp:56
Definition: port_info.hpp:39
Definition: kernel.hpp:57
Definition: globalmap.cpp:3
static void BFS(std::set< raft::kernel * > &source_kernels, edge_func func, void *data=nullptr, bool connected_error=false)
Definition: graphtools.cpp:36