--::::::::::
--qutaenad.ads -- -Advanced
--::::::::::
with Queue_Tag_Cntl.Advanced;
generic
package Queue_Tag_En.Advanced is
-----------------------------------------------
-- DO NOT USE adv_lpq
package adv_lpq is new lpq.Advanced;
-----------------------------------------------
function Size return natural;
-----------------------------------------------
-- Pre Cond : None
-- Post Cond : Returns #(Queue)
-- Exceptions : None
-----------------------------------------------
procedure Insert (Object : in Object_Type'Class;
Position: in positive);
-----------------------------------------------
-- Pre Cond : 1 <= Position <= Size (Queue)
-- Post Cond : Queue'=(a ,...,a ,Object,a ,...,a )
-- 1 position-1 position n
-- Exceptions: Invalid_Position
-----------------------------------------------
procedure Remove (Position: in positive;
Object : in out Object_Ptr);
-----------------------------------------------
-- Pre Cond : 1 <= Position <= Size (Queue)
-- Post Cond : Queue'=(a ,...,a ,a ,...,a )
-- 1 position-1 position+1 n
-- Object' = Queue(position)
-- Exceptions: Invalid_Position
-----------------------------------------------
function Peek (Position: positive ) return Object_Ptr;
-----------------------------------------------
-- Pre Cond : 1 <= Position <= #(Queue)
-- 1 = Front, #(Queue) = Rear
-- Post Cond : Returns Queue(Position)
-- Exceptions : Invalid_Position
-----------------------------------------------
procedure Poke (Position: in positive;
Object : in Object_Type'Class);
-----------------------------------------------
-- Pre Cond : 1 <= Position <= #(Queue)
-- 1 = Front, #(Queue) = Rear
-- Post Cond : Object' = Queue(Position)
-- Exceptions : Invalid_Position
-----------------------------------------------
end Queue_Tag_En.Advanced;