Go to the documentation of this file.00001 #ifndef _TRANSFORM_GRAPH_GRAPH_INTERNAL_H_
00002 #define _TRANSFORM_GRAPH_GRAPH_INTERNAL_H_
00003
00004 #include <map>
00005 #include <set>
00006 #include <string>
00007 #include <vector>
00008
00009 namespace transform_graph {
00010 namespace internal {
00013 class Graph {
00014 public:
00015 Graph();
00016
00018 void AddEdge(const std::string& v1, const std::string& v2);
00019
00025 bool Path(const std::string& source, const std::string& target,
00026 std::vector<std::string>* path) const;
00027
00030 bool HasVertex(const std::string& v) const;
00031
00032 private:
00033 std::map<std::string, std::set<std::string> > adjacencies_;
00034 };
00035 }
00036 }
00037
00038 #endif // _TRANSFORM_GRAPH_GRAPH_INTERNAL_H_