2 edge_out.hh -- declare Directed_graph_node
4 source file of the GNU LilyPond music typesetter
6 (c) 1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
16 Class to handle two-sided connections between nodes (the Dependencies)
18 class Directed_graph_node {
19 Link_array<Directed_graph_node>edge_out_l_arr_;
21 Link_array<Directed_graph_node> edge_in_l_arr_;
25 /** remove i-th edge_out (and exactly one ref to me in the edge_out)
27 void remove_edge_out_idx (int i);
28 void copy_edges_out (Directed_graph_node const&);
29 bool linked_b() const;
32 void add_edge (Directed_graph_node*);
33 void remove_edge_in (Directed_graph_node *);
34 void remove_edge_out (Directed_graph_node*);
35 bool contains_b (Directed_graph_node const*) const;
37 Directed_graph_node (Directed_graph_node const &);
39 Directed_graph_node();
41 ~Directed_graph_node();
44 ensure that no edge_out exists doubly.
47 Link_array<Directed_graph_node> const& get_out_edge_arr() const;
48 Link_array<Directed_graph_node> const& get_in_edge_arr() const;
51 #endif // DEPENDENCY_HH