20 #ifndef PALUDIS_GUARD_PALUDIS_UTIL_GRAPH_HH 21 #define PALUDIS_GUARD_PALUDIS_UTIL_GRAPH_HH 1 74 template <
typename Node_>
80 template <
typename Node_>
103 template <
typename Node_>
123 class RemainingNodes;
126 std::shared_ptr<const RemainingNodes> _remaining_nodes;
140 std::shared_ptr<const RemainingNodes> remaining_nodes()
const;
149 template <
typename Node_,
typename Edge_,
typename Comparator_>
155 void operator= (
const DirectedGraph &);
162 DirectedGraph(
const DirectedGraph &);
173 void add_node(
const Node_ &);
178 void delete_node(
const Node_ &);
183 bool has_node(
const Node_ &)
const;
190 class NodeConstIterator;
191 NodeConstIterator begin_nodes()
const;
192 NodeConstIterator end_nodes()
const;
204 void add_edge(
const Node_ &,
const Node_ &,
const Edge_ &);
209 void delete_edge(
const Node_ &,
const Node_ &);
214 void delete_outgoing_edges(
const Node_ &);
219 void delete_incoming_edges(
const Node_ &);
224 bool has_edge(
const Node_ &,
const Node_ &)
const;
231 const Edge_ fetch_edge(
const Node_ &,
const Node_ &)
const;
238 bool has_outgoing_edges(
const Node_ &)
const;
250 template <
typename OutputIterator_>
251 void topological_sort(OutputIterator_ i)
const;
Definition: about_metadata-fwd.hh:23
Definition: exception.hh:74
std::string stringify(const T_ &item)
Definition: stringify.hh:166
#define PALUDIS_VISIBLE
Definition: attributes.hh:59