A.18.29 The Generic Package Containers.Bounded_Synchronized_Queues
Static Semantics
The language-defined generic package Containers.Bounded_Synchronized_Queues
provides type Queue, which implements the interface type Containers.Synchronized_Queue_Interfaces.Queue.
with System;
with Ada.Containers.Synchronized_Queue_Interfaces;
generic
with package Queue_Interfaces
is
new Ada.Containers.Synchronized_Queue_Interfaces (<>);
Default_Capacity : Count_Type;
Default_Ceiling : System.Any_Priority := System.Priority'Last;
package Ada.Containers.Bounded_Synchronized_Queues
with Preelaborate,
Nonblocking, Global =>
in out synchronized is
package Implementation is
... -- not specified by the language
end Implementation;
protected type Queue
(Capacity : Count_Type := Default_Capacity;
Ceiling : System.Any_Priority := Default_Ceiling)
with Priority => Ceiling
is
new Queue_Interfaces.Queue
with
overriding
entry Enqueue (New_Item :
in Queue_Interfaces.Element_Type);
overriding
entry Dequeue (Element :
out Queue_Interfaces.Element_Type);
overriding
function Current_Use
return Count_Type
with Nonblocking, Global =>
null, Use_Formal =>
null;
overriding
function Peak_Use
return Count_Type
with Nonblocking, Global =>
null, Use_Formal =>
null;
private
... -- not specified by the language
end Queue;
private
... -- not specified by the language
end Ada.Containers.Bounded_Synchronized_Queues;
The semantics are the
same as for Unbounded_Synchronized_Queues, except:
The capacity for instances of type Queue is bounded
and specified by the discriminant Capacity.
Implementation Advice
Bounded queue objects should be implemented without
implicit pointers or dynamic allocation.
Ada 2005 and 2012 Editions sponsored in part by Ada-Europe