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