File : queue_pack_object.adb


package body Queue_Pack_Object is

   procedure Enqueue (Item: in  Element; Queue: in out Ext_Queue_Type) is
   begin
      Enqueue (Item, Queue_Type (Queue));
      Queue.Reader_State := Filled;
   end Enqueue;

   procedure Read_Queue (Item: out Element; Queue: in out Ext_Queue_Type) is
   begin
      if Queue.Reader_State = Empty then
         raise Queueunderflow;
      end if;
      Item         := Queue.Elements (Queue.Reader);
      Queue.Reader := Queue.Reader - 1;
      if Queue.Reader = Queue.Free then Queue.Reader_State := Empty; end if;
   end Read_Queue;

end Queue_Pack_Object;