Index

Package: Queues (generic)

Description

generic

   type Element is private;
   type Index   is mod <>;  -- Modulo defines size of the queue.

   type Queue_Enum is (<>); -- Allows for multiple readers without loosing items.

package Queues is
Uwe R. Zimmer, Australia, 2014

Tasks & Protected

Protected_Queue (protected type)

References:

queues.ads:18:19 (declaration)
queues.adb:7:19 (body)
queues.adb:69:8 (label)
queues.ads:51:8 (label)
queues_test.adb:35:12 (reference)

Called by:

Queues_Test defined at queues_test.adb:22:11

Types

Element

type Element is private;

References:

queues.ads:9:9 (declaration)
queues.adb:9:37 (reference)
queues.adb:16:41 (reference)
queues.adb:31:55 (reference)
queues.adb:63:49 (reference)
queues.adb:66:65 (reference)
queues.ads:32:41 (reference)
queues.ads:34:41 (reference)
queues.ads:36:46 (reference)
queues.ads:43:54 (reference)
queues.ads:45:54 (reference)
queues.ads:61:15 (reference)
queues_test.adb:32:18 (reference)
Modulo defines size of the queue.

Index

type Index   is mod <>;

References:

queues.ads:10:9 (declaration)
queues.adb:58:36 (reference)
queues.adb:61:36 (reference)
queues.adb:63:35 (reference)
queues.adb:66:51 (reference)
queues.ads:43:35 (reference)
queues.ads:45:35 (reference)
queues.ads:54:42 (reference)
queues.ads:64:24 (reference)
queues.ads:68:18 (reference)
queues.ads:68:29 (reference)
queues.ads:69:40 (reference)
queues_test.adb:32:62 (reference)

Queue_Enum

type Queue_Enum is (<>);

References:

queues.ads:12:9 (declaration)
queues.adb:23:19 (reference)
queues.adb:31:31 (reference)
queues.adb:33:23 (reference)
queues.adb:34:46 (reference)
queues.adb:34:69 (reference)
queues.adb:49:24 (reference)
queues.adb:51:30 (reference)
queues.adb:60:28 (reference)
queues.adb:66:31 (reference)
queues.ads:36:22 (reference)
queues.ads:39:35 (reference)
queues.ads:42:35 (reference)
queues.ads:44:35 (reference)
queues.ads:54:27 (reference)
queues.ads:56:28 (reference)
queues_test.adb:32:39 (reference)

Queue_Type

type Queue_Type is limited private;

References:

queues.ads:16:9 (declaration)
queues.ads:49:15 (reference)
queues.ads:66:9 (full declaration)

Markers (private)

type Markers is array (Queue_Enum) of Index;

References:

queues.ads:54:9 (declaration)
queues.ads:69:18 (reference)

Readouts (private)

type Readouts is array (Queue_Enum) of Boolean;

References:

queues.ads:56:9 (declaration)
queues.ads:57:25 (reference)
queues.ads:58:25 (reference)
queues.ads:62:15 (reference)

Element_and_Readouts (private)

type Element_and_Readouts is record
      Elem  : Element; -- Initialized to invalids
      Reads : Readouts := All_Read;
   end record;

References:

queues.ads:60:9 (declaration)
queues.ads:64:34 (reference)

List (private)

type List is array (Index) of Element_and_Readouts;

References:

queues.ads:64:9 (declaration)
queues.ads:70:18 (reference)

Constants & Global variables

All_Read (private) (Readouts)

All_Read  : constant Readouts := (others => True);

References:

queues.ads:57:4 (declaration)
queues.adb:22:46 (reference)
queues.adb:43:56 (reference)
queues.adb:55:47 (reference)
queues.ads:62:27 (reference)

None_Read (private) (Readouts)

None_Read : constant Readouts := (others => False);

References:

queues.ads:58:4 (declaration)
queues.adb:12:65 (reference)

Subprograms & Entries

Protected_Queue. Enqueue_For_All (abstract)

entry Enqueue_For_All 
(Item: Element);

References:

queues.ads:32:13 (declaration)
queues.adb:18:19 (reference)
queues.adb:36:19 (reference)

Protected_Queue. Dequeue_For_All (abstract)

entry Dequeue_For_All 
(Item: out Element);

References:

queues.ads:34:13 (declaration)
queues.adb:37:19 (reference)

Called by:

Protected_Queue. Dequeue (abstract)

entry Dequeue 
(Queue_Enum) (Item: out Element);

References:

queues.ads:36:13 (declaration)
queues.adb:35:32 (reference)

Protected_Queue. Is_Empty

function Is_Empty                       return Boolean;

References:

queues.ads:38:16 (declaration)

Called by:

Protected_Queue. Is_Empty

function Is_Empty  
(Q: Queue_Enum) return Boolean;

References:

queues.ads:39:16 (declaration)

Called by:

Protected_Queue. Is_Full

function Is_Full                        return Boolean;

References:

queues.ads:40:16 (declaration)

Protected_Queue. Length

function Length                         return Natural;

References:

queues.ads:41:16 (declaration)

Protected_Queue. Length

function Length    
(Q: Queue_Enum) return Natural;

References:

queues.ads:42:16 (declaration)

Protected_Queue. Lookahead

function Lookahead 
(Depth: Index) return Element;

References:

queues.ads:43:16 (declaration)

Protected_Queue. Lookahead

function Lookahead 
(Q: Queue_Enum;
Depth: Index) return Element;

References:

queues.ads:44:16 (declaration)

Protected_Queue. Queue (private)

Queue: Queue_Type;

References:

queues.ads:49:7 (declaration)
queues.adb:12:10 (write reference)
queues.adb:12:26 (reference)
queues.adb:13:10 (write reference)
queues.adb:13:24 (reference)
queues.adb:21:18 (reference)
queues.adb:21:34 (reference)
queues.adb:22:10 (write reference)
queues.adb:22:26 (reference)
queues.adb:24:16 (reference)
queues.adb:24:36 (reference)
queues.adb:25:16 (write reference)
queues.adb:25:37 (reference)
queues.adb:28:10 (write reference)
queues.adb:28:23 (reference)
queues.adb:40:18 (reference)
queues.adb:40:34 (reference)
queues.adb:41:10 (write reference)
queues.adb:41:26 (reference)
queues.adb:42:10 (write reference)
queues.adb:42:31 (reference)
queues.adb:43:13 (reference)
queues.adb:43:29 (reference)
queues.adb:44:13 (write reference)
queues.adb:44:26 (reference)
queues.adb:52:10 (reference)
queues.adb:52:26 (reference)
queues.adb:55:10 (reference)
queues.adb:55:26 (reference)
queues.adb:58:66 (reference)
queues.adb:58:79 (reference)
queues.adb:61:66 (reference)
queues.adb:61:79 (reference)
queues.adb:64:10 (reference)
queues.adb:64:26 (reference)
queues.adb:67:10 (reference)
queues.adb:67:26 (reference)