1. -- 
  2. -- Uwe R. Zimmer, Australia, 2013 
  3. -- 
  4.  
  5. package body Queue_Pack_Object_Private is 
  6.  
  7.    procedure Look_Ahead (Item :  out Element; 
  8.                          Depth :     Depth_Type; Queue : in out Ext_Queue_Type) is 
  9.  
  10.       Storage    : Queue_Type; 
  11.       ShuffleItem : Element; 
  12.  
  13.    begin 
  14.       for I in 1 .. Depth - 1 loop 
  15.          Dequeue (ShuffleItem, Queue); 
  16.          Enqueue (ShuffleItem, Storage); 
  17.       end loop; 
  18.       Dequeue (Item, Queue); 
  19.       Enqueue (Item, Storage); 
  20.       Read_The_Rest : begin 
  21.          for I in 1 .. Queue_Size - Depth loop 
  22.             Dequeue (ShuffleItem, Queue); 
  23.             Enqueue (ShuffleItem, Storage); 
  24.          end loop; 
  25.       exception 
  26.          when Queueunderflow => null; -- read the rest is done 
  27.       end Read_The_Rest; 
  28.       Restore_The_Queue : begin 
  29.          for I in 1 .. Queue_Size loop 
  30.             Dequeue (ShuffleItem, Storage); 
  31.             Enqueue (ShuffleItem, Queue); 
  32.          end loop; 
  33.       exception 
  34.          when Queueunderflow => null; -- restore is done 
  35.       end Restore_The_Queue; 
  36.  
  37.    end Look_Ahead; 
  38.  
  39. end Queue_Pack_Object_Private;