00001 // vim:sw=2:ts=8 00017 #ifndef GRAPH__HPP 00018 #define GRAPH__HPP 00019 00020 00021 #include "def_graph.hpp" 00022 #include "ConstGraph.hpp" 00023 #include "IEditGraph.hpp" 00024 #include "PropertyFacility.hpp" 00025 00026 00027 namespace gns { 00028 00029 00042 class Graph : public ConstGraph, public IEditGraph 00043 { 00044 00045 public: 00047 Graph(); 00049 Graph(PropertyFacility *p); 00051 Graph(const Graph&); 00052 00054 virtual ~Graph(); 00055 00057 virtual Node new_node(NodeID id = ""); 00058 00060 virtual void del_node(Node n); 00061 00063 virtual Edge new_edge(Node u, Node v, EdgeID id = ""); 00064 00066 virtual void del_edge(Edge e); 00067 00069 virtual void del_edge(Node u, Node v); 00070 00072 virtual void add_nodes(int num, int start); 00073 }; 00074 00075 } 00076 00077 #endif