home *** CD-ROM | disk | FTP | other *** search
Text File | 1997-04-13 | 1.2 KB | 81 lines | [TEXT/ttxt] |
- -- Part of SmallEiffel -- Read DISCLAIMER file -- Copyright (C)
- -- Dominique COLNET and Suzanne COLLIN -- colnet@loria.fr
- --
- class LINK[E]
- --
- -- To implement LINKED_COLLECTION[E] (see LINK_LIST[E} and
- -- LINK2_LIST[E]).
- --
-
- creation {LINKED_COLLECTION}
- make
-
- feature {LINKED_COLLECTION,LINK}
-
- item: E;
-
- next: like Current;
-
- feature {LINKED_COLLECTION}
-
- make(i: like item; n: like next) is
- do
- item := i;
- next := n;
- ensure
- item = i;
- next = n
- end;
-
- feature {LINKED_COLLECTION,LINK}
-
- set_item(i: like item) is
- do
- item := i;
- ensure
- item = i
- end;
-
- set_next(n: like next) is
- do
- next := n;
- ensure
- next = n
- end;
-
- set_all_with(v: like item) is
- local
- lnk: like Current;
- do
- from
- lnk := Current;
- until
- lnk = Void
- loop
- lnk.set_item(v);
- lnk := lnk.next;
- end;
- end;
-
- feature {LINKED_COLLECTION} -- The Guru section :
-
- free is
- local
- p1, p2: like Current;
- mem: MEMORY;
- do
- from
- p1 := next;
- until
- p1 = Void
- loop
- p2 := p1;
- p1 := p1.next;
- mem.free(p2.to_pointer);
- end;
- mem.free(Current.to_pointer);
- end;
-
- end -- LINK[E]
-
-