| ASCL User's Guide: ASCL, ADA Standard Component Library; Version 0.1.0; Document Revision $Revision: 1.7 $ | ||
|---|---|---|
| Prev | Chapter 34. ASCL.Data_Structures.Queue_Bounded_Unprotected | Next |
type Handle (Max_Size : Positive) is limited private;
procedure Clear (Queue : in out Handle);
Makes Queue empty.
Contents of Queue are lost. All queues are initially empty.
Time: O(1).
procedure Assign (To : out Handle; From : in Handle);
Makes To a copy of From.
Raises Too_Short if To.Max_Size < Length (From). To is unchanged if Too_Short is Raised.
Time: O(N).
procedure Put (Into : in out Handle; Item : in Element); -- raise Full.
Adds Item to Into.
Raises Full if Into is already full. Into is unchanged if Full is raised.
Time: O(1).
Precondition: not Is_Full (Into) raise Full if violated.
procedure Get (From : in out Handle; Item : in out Element); -- raise Empty.
Removes the next Element from From and puts it in Item. Raises Empty if From is empty.
From is unchanged if Empty is raised.
Contents of Item are undefined if Empty is raised.
Time: O(1).
Precondition: not Is_Empty (From) raise Empty if violated.
function Is_Full (Queue : Handle) return Boolean;
Returns True if Queue is full; False otherwise.
function Is_Empty (Queue : Handle) return Boolean;
Returns True if Queue is empty; False otherwise.
function Length (Queue : Handle) return Natural;
Returns the number of Elements in Queue.
function Peek (Queue : Handle) return Element;
Returnss the Element at the head of Queue without altering Queue.
Raises Empty if Queue is empty.
Time: O(1).
generic -- Iterate
type Context_Data (<>) is limited private;
with procedure Action (Item : in out Element;
Context : in out Context_Data;
Continue : out Boolean);
procedure Iterate (Over : in out Handle; Context : in out Context_Data); Applies Action to each Element in Over, from head to tail. Iterate terminates immediately if Continue is set to False (remainder of Over is not processed).