--::::::::::
--qutalpad.ads -- -Advanced
--::::::::::
with Queue_LPBase.Advanced;
generic
package Queue_Tag_Lpt.Advanced is
-------------------------------------------------
-- DO NOT USE adv_lpq
package adv_lpq is new lpq.Advanced;
-------------------------------------------------
function Size (Queue: Queue_Type) return natural;
-------------------------------------------------
-- Pre Cond : None
-- Post Cond : Returns #(Queue)
-- Exceptions : None
-------------------------------------------------
procedure Insert (Object : in Object_Type'Class;
Position: in positive;
Queue : in out Queue_Type);
-------------------------------------------------
-- Pre Cond : 1 <= Position <= Size (Queue)
-- Post Cond : Queue'=(a ,...,a ,Object,a ,...,a )
-- 1 position-1 position n
-- Exceptions: Invalid_Position
-------------------------------------------------
procedure Remove (Queue : in out Queue_Type;
Position: in positive;
Pntr : 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 (Queue : Queue_Type;
Position: positive) return Object_Ptr;
-------------------------------------------------
-- Pre Cond : 1 <= Position <= #(Queue)
-- 1 = Front, #(Queue) = Rear
-- Post Cond : Returns Queue(Position)
-- Exceptions : Invalid_Position
-------------------------------------------------
procedure Poke (Queue : in out Queue_Type;
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_Lpt.Advanced;