Ada Conformity Assessment Authority      Home Conformity Assessment   Test Suite ARGAda Standard
 
Ada Reference Manual (Ada 2022 with Amendment 1)Legal Information
Contents   Index   References   Search   Previous   Next 

A.18.29 The Generic Package Containers.Bounded_Synchronized_Queues

Static Semantics

1/3
The language-defined generic package Containers.Bounded_Synchronized_Queues provides type Queue, which implements the interface type Containers.Synchronized_Queue_Interfaces.Queue.
2/6
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;
   Max_Capacity : Count_Type := Count_Type'Last;
package Ada.Containers.Bounded_Synchronized_Queues
   with Preelaborate,
        Nonblocking, Global => in out synchronized is
3/3
   package Implementation is
      ... -- not specified by the language
   end Implementation;
3.1/6
   subtype Bounded_Capacity is
      Count_Type range Count_Type'First .. Max_Capacity;
4/6
   protected type Queue
        (Capacity : Bounded_Capacity := Default_Capacity;
         Ceiling  : System.Any_Priority := Default_Ceiling)
           with Priority => Ceiling is
        new Queue_Interfaces.Queue with
5/3
      overriding
      entry Enqueue (New_Item : in Queue_Interfaces.Element_Type);
      overriding
      entry Dequeue (Element : out Queue_Interfaces.Element_Type);
6/5
      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;
7/3
   private
      ... -- not specified by the language
   end Queue;
8/3
private
9/3
   ... -- not specified by the language
10/3
end Ada.Containers.Bounded_Synchronized_Queues;
11/3
The semantics are the same as for Unbounded_Synchronized_Queues, except:
12/3
The capacity for instances of type Queue is bounded and specified by the discriminant Capacity. 

Implementation Advice

13/3
Bounded queue objects should be implemented without implicit pointers or dynamic allocation. 

Contents   Index   References   Search   Previous   Next 
Ada-Europe Ada 2005 and 2012 Editions sponsored in part by Ada-Europe