link_repository_rep::~link_repository_rep () { while (!is_nil (loci)) { tree t= obtain_tree (loci->item); unregister_pointer (ids->item, loci->item); detach_observer (t, loci->item); ids= ids->next; loci= loci->next; } while (!is_nil (links)) { unregister_link (links->item); links= links->next; } }
void tree_addendum_delete (observer obs) { tree ref= obtain_tree (obs); detach_observer (ref, obs); }
list<tree> as_trees (list<observer> l) { if (is_nil (l)) return list<tree> (); else return list<tree> (obtain_tree (l->item), as_trees (l->next)); }