-- Copyright (c) 1995/6 John Beidler
-- Computing Sciences Dept.
-- Univ. of Scranton, Scranton, PA 18510
--
-- (717) 941-7446 voice
-- (717) 941-4250 FAX
-- beidler@cs.uofs.edu
--
-- For use by non-profit educational institutions only.
-- This software is GUARANTEED. Please report any errors. All
-- corrections will be made as soon as possible (normally within
-- one working day).
------------------------------------------------------------------
package List_Polymorphic_Cntl.Iterators is
type Process_Type is access
procedure (Object : in out Holder_Class_Ptr;
Continue: in out Boolean);
procedure Front_To_Rear (List : in List_Type;
Process: Process_Type);
----------------------------------------------------
-- Iterate through the list recursively performing
-- Process on each object on the way down the structure
-- until Continue is set to false, or until all objects
-- are visited
----------------------------------------------------
procedure Rear_To_Front (List : in List_Type;
Process: Process_Type);
----------------------------------------------------
-- Iterate through the list recursively performing
-- Process on each object on the way up the structure
-- until Continue is set to false, or until all objects
-- are visited
----------------------------------------------------
procedure Round_Trip (List : in List_Type;
Down_Proc,
Up_Proc : Process_Type);
----------------------------------------------------
-- Iterate through the list recursively performing
-- Down_Proc on each object on the way down the structure
-- and performing Up_Proc on each object on the way back
-- until Continue is set to false, or until all objects
-- are visited in both directions
----------------------------------------------------
end List_Polymorphic_Cntl.Iterators;