btllib
graph.hpp
1 // #ifndef BTLLIB_GRAPH_HPP
2 // #define BTLLIB_GRAPH_HPP
3 
4 // #include <boost/graph/adjacency_list.hpp>
5 // #include <boost/graph/graphviz.hpp>
6 
7 // #include <iostream>
8 // #include <sstream>
9 // #include <string>
10 
11 // namespace btllib {
12 
13 // class Graph;
14 
15 // class Vertex
16 // {
17 
18 // public:
19 // private:
20 // friend class Graph;
21 
22 // Vertex(long id)
23 // : id(id)
24 // {}
25 
26 // long id;
27 // };
28 
29 // class Edge
30 // {
31 
32 // public:
33 // private:
34 // friend class Graph;
35 
36 // Edge(Vertex u, Vertex v)
37 // : u(u)
38 // , v(v)
39 // {}
40 
41 // Vertex u, v;
42 // };
43 
44 // class Graph
45 // {
46 
47 // public:
48 // Graph() {}
49 
50 // Vertex add_vertex();
51 // void remove_vertex(Vertex v);
52 
53 // Edge add_edge(Vertex u, Vertex v);
54 // void remove_edge(Edge e);
55 
56 // std::string to_string();
57 
58 // private:
59 // boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS>
60 // graph;
61 // };
62 
63 // inline Vertex
64 // Graph::add_vertex()
65 // {
66 // return boost::add_vertex(graph);
67 // }
68 
69 // inline void
70 // Graph::remove_vertex(Vertex v)
71 // {}
72 
73 // inline Edge
74 // Graph::add_edge(Vertex u, Vertex v)
75 // {
76 // boost::add_edge(u.id, v.id, graph);
77 // return Edge(u, v);
78 // }
79 
80 // inline void
81 // Graph::remove_edge(Edge e)
82 // {
83 // boost::remove_edge(e.u.id, e.v.id, graph);
84 // }
85 
86 // inline std::string
87 // Graph::to_string()
88 // {
89 // std::stringstream ss;
90 // boost::write_graphviz(ss, graph);
91 // return ss.str();
92 // }
93 
94 // } // namespace btllib
95 
96 // #endif