1. -- 
  2. -- Uwe R. Zimmer, Australia, 2013 
  3. -- 
  4.  
  5. with Queue_Pack_Object_Base_Private; use Queue_Pack_Object_Base_Private; 
  6. with Queue_Pack_Object_Private;      use Queue_Pack_Object_Private; 
  7. with Ada.Text_IO;                    use Ada.Text_IO; 
  8.  
  9. procedure Queue_Test_Object_Private is 
  10.  
  11.    Queue             : Ext_Queue_Type; 
  12.    Item_inside_queue, 
  13.    First_item, 
  14.    Second_item, 
  15.    Third_item, 
  16.    Non_existing_item : Element; 
  17.  
  18. begin 
  19.    Enqueue (Item => 1, Queue => Queue); 
  20.    Enqueue (Item => 3, Queue => Queue); 
  21.  
  22.    Look_Ahead (Item => Item_inside_queue, Depth => 2, Queue => Queue); 
  23.    Put (Element'Image (Item_inside_queue)); 
  24.  
  25.    Enqueue (Item => 5, Queue => Queue); 
  26.  
  27.    Dequeue (First_item,  Queue); 
  28.    Put (Element'Image (First_item)); 
  29.  
  30.    Dequeue (Second_item, Queue); 
  31.    Put (Element'Image (Second_item)); 
  32.  
  33.    Dequeue (Third_item,  Queue); 
  34.    Put (Element'Image (Third_item)); 
  35.  
  36.    Dequeue (Non_existing_item, Queue); -- will produce a 'Queue underflow' 
  37.    Put (Element'Image (Non_existing_item)); 
  38.  
  39.    if Is_Empty (Queue) then 
  40.       Put ("Queue is empty on exit"); 
  41.    else 
  42.       Put ("Queue is not empty on exit"); 
  43.    end if; 
  44.  
  45. exception 
  46.    when Queueunderflow => Put ("Queue underflow"); 
  47.    when Queueoverflow  => Put ("Queue overflow"); 
  48. end Queue_Test_Object_Private;