--::::::::::
--qulpenad.ads -- -Advanced
--::::::::::
with Queue_Lpt_Cntl.Advanced;
generic
package Queue_Lpt_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 out Object_Type;
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
-- NOTE: Swap used to exchange value of Object_Type
-----------------------------------------------
procedure Remove (Position: in positive;
Object : in out Object_Type);
-----------------------------------------------
-- 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
-- NOTE: Swap used to exchange value of Object_Type
-----------------------------------------------
function Peek (Position: positive) return Object_Type;
-----------------------------------------------
-- Pre Cond : 1 <= Position <= #(Queue)
-- 1 = Front, #(Queue) = Rear
-- Post Cond : Returns Queue(Position)
-- Exceptions : Invalid_Position
-----------------------------------------------
procedure Poke (Position: in positive;
Object : in out Object_Type);
-----------------------------------------------
-- Pre Cond : 1 <= Position <= #(Queue)
-- 1 = Front, #(Queue) = Rear
-- Post Cond : Object' = Queue(Position)
-- Exceptions : Invalid_Position
-- NOTE: Swap used to exchange value of Object_Type
-----------------------------------------------
end Queue_Lpt_En.Advanced;