-- PragmAda Reusable Component (PragmARC) -- Copyright (C) 2020 by PragmAda Software Engineering. All rights reserved. -- Released under the terms of the BSD 3-Clause license; see https://opensource.org/licenses -- ************************************************************************** -- -- Bounded queue ADT for concurrent use only -- Each queue has a preset maximum size -- A call to Put when the queue is full blocks the caller until another task calls Get -- A call to Get when the queue is empty blocks the caller until another task calls Put -- Implements a single-instantiation form of Ada.Containers.Bounded_Synchronized_Queues -- -- History: -- 2020 Dec 01 J. Carter V2.1--Changed elaboration pragmas to aspects -- 2020 Nov 01 J. Carter V2.0--Initial Ada-12 version ---------------------------------------------------------------------------- -- 2013 Mar 01 J. Carter V1.0--Initial Ada-07 version --------------------------------------------------------------------------------------------------- -- 2002 Oct 01 J. Carter V1.3--Added Context to Iterate; use mode out to allow scalars -- 2001 Dec 01 J. Carter V1.2--Added Ceiling_Priority to Handle -- 2001 Jun 01 J. Carter V1.1--Added Peek -- 2000 May 01 J. Carter V1.0--Initial release -- pragma Assertion_Policy (Check); pragma Unsuppress (All_Checks); with Ada.Containers.Synchronized_Queue_Interfaces; with Ada.Containers.Bounded_Synchronized_Queues; generic -- PragmARC.Data_Structures.Queues.Bounded.Protection.Blocking type Element is private; package PragmARC.Data_Structures.Queues.Bounded.Protection.Blocking with Preelaborate is package Interfaces is new Ada.Containers.Synchronized_Queue_Interfaces (Element_Type => Element); package Queues is new Ada.Containers.Bounded_Synchronized_Queues (Queue_Interfaces => Interfaces, Default_Capacity => 1000); -- Type Queues.Queue implements the queues end PragmARC.Data_Structures.Queues.Bounded.Protection.Blocking;