1. -- 
  2. -- Uwe R. Zimmer, Australia, 2013 
  3. -- 
  4.  
  5. package body Queue_Pack_Object is 
  6.  
  7.    overriding procedure Enqueue (Item : Element; Queue : in out Ext_Queue_Type) is 
  8.  
  9.    begin 
  10.       Enqueue (Item, Queue_Type (Queue)); 
  11.       Queue.Reader_Is_Empty := False; 
  12.    end Enqueue; 
  13.  
  14.    procedure Read_Queue (Item : out Element; Queue : in out Ext_Queue_Type) is 
  15.  
  16.    begin 
  17.       if Queue.Reader_Is_Empty then 
  18.          raise Queue_underflow; 
  19.       end if; 
  20.       Item                  := Queue.Elements (Queue.Reader); 
  21.       Queue.Reader          := Queue.Reader + 1; 
  22.       Queue.Reader_Is_Empty := Queue.Reader = Queue.Free; 
  23.    end Read_Queue; 
  24.  
  25. end Queue_Pack_Object;