AdaCL.Queue.Interfaces (nested)

More...

Entities

Interface types

Object

Dispatching subprograms

Abort_Queue
Available
Current_Use
Dequeue
Enqueue
Finish
Has_Finished
Is_Empty
Is_Finishing
Wait_Finished

Description

Object [source]

64 type Object is limited interface;

Abort_Queue [source]

142 procedure Abort_Queue (This : in out Object) is abstract with
143 Post'Class => (This.Is_Finishing and then This.Is_Empty);

Abort queue. For example because of an error condition

This of type AdaCL.Queue.Interfaces.Object

object itself.

Available [source]

115 function Available (This : Object) return Ada.Containers.Count_Type is abstract;

Free entries available in Object.

This of type AdaCL.Queue.Interfaces.Object

object itself.

Return value

free slots in queue

Current_Use [source]

84 function Current_Use (This : Object) return Ada.Containers.Count_Type is abstract with
85 Inline;

Queue slots currently in use

This of type AdaCL.Queue.Interfaces.Object

object itself.

Return value

elements in queue

Dequeue [source]

132 procedure Dequeue
133 (This : in out Object;
134 Element : out Element_Type;
135 EmptyAndFinished : out Boolean) is abstract with
136 Post'Class => (if EmptyAndFinished then Element = Null_Element);

Remove element from the Object. Blocks when queue is empty and not finished. When queue is finished and is empty returns then Null_Element.

This of type AdaCL.Queue.Interfaces.Object

object itself.

Element of type AdaCL.Queue.Element_Type

Element ot be removed.

EmptyAndFinished of type Boolean

Object is emptys and finshed. Depending on timing you might or might not get a last Dequeue with this flag beeing true.

Enqueue [source]

122 procedure Enqueue (This : in out Object; New_Item : in Element_Type) is abstract;

Add a new element to the Object. Blocks when queue is full.

This of type AdaCL.Queue.Interfaces.Object

object itself.

New_Item of type AdaCL.Queue.Element_Type

Element ot be added.

Finish [source]

70 procedure Finish (This : in out Object) is abstract;

The last element has been added, clear queue and finish processing.

This of type AdaCL.Queue.Interfaces.Object

object itself.

Has_Finished [source]

100 function Has_Finished (This : in Object) return Boolean is abstract with
101 Post'Class => Has_Finished'Result = (This.Is_Finishing and then This.Is_Empty);

The last element has been removed after the queue been signaled to finsh.

This of type AdaCL.Queue.Interfaces.Object

object itself.

Return value

true if the queue has finished processing elements.

Is_Empty [source]

92 function Is_Empty (This : Object) return Boolean is abstract with
93 Post'Class => Is_Empty'Result = (This.Current_Use = 0);

Queue is currently empty.

This of type AdaCL.Queue.Interfaces.Object

object itself.

Return value

true when no elements are in queue.

Is_Finishing [source]

77 function Is_Finishing (This : in Object) return Boolean is abstract;

The queue is finishing. No new entries are allowed.

This of type AdaCL.Queue.Interfaces.Object

object itself.

Return value

true if the queue has been signaled to finsh or has finished

Wait_Finished [source]

107 procedure Wait_Finished (This : in out Object) is abstract with
108 Post'Class => (This.Is_Finishing and then This.Is_Empty);

Wait for queue to finish

This of type AdaCL.Queue.Interfaces.Object

object itself.