--::::::::::
--licncnit.ads --  -Iterators
--::::::::::
with List_LPBase.Iterators;
generic
package List_Cntl_Cntl.Iterators is
   ----------------------------------------------------
   -- DO NOT USE it_zqklst
      package it_zqklst is new zqklst.Iterators;
   ----------------------------------------------------

subtype Process_Type is it_zqklst.Process_Type;
-- access procedure (Object  : in out Object_Type;
--                   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_Cntl_Cntl.Iterators;