Index

Package: Processes.Managers

Description

package Processes.Managers is

Classes

Process_Manager

type Process_Manager is new Object with private;

Ancestors:

Primitive operations:

Adjust (overriding Objects.Adjust)
Construct
Delete (overriding Objects.Delete)
Objects.Construct (Inherited)
Objects.Object_Read (Inherited)
Objects.Object_Write (Inherited)
Objects.To_String (Inherited)

References:

processes-managers.ads:10:10 (declaration)
processes-managers.adb:15:50 (reference)
processes-managers.adb:24:37 (reference)
processes-managers.adb:33:46 (reference)
processes-managers.adb:46:44 (reference)
processes-managers.adb:59:37 (reference)
processes-managers.adb:78:52 (reference)
processes-managers.adb:91:47 (reference)
processes-managers.adb:104:47 (reference)
processes-managers.adb:121:45 (reference)
processes-managers.adb:128:44 (reference)
processes-managers.adb:150:53 (reference)
processes-managers.ads:11:42 (reference)
processes-managers.ads:29:46 (reference)
processes-managers.ads:33:52 (reference)
processes-managers.ads:38:47 (reference)
processes-managers.ads:42:47 (reference)
processes-managers.ads:47:45 (reference)
processes-managers.ads:50:44 (reference)
processes-managers.ads:55:53 (reference)
processes-managers.ads:142:10 (full declaration)
processes-managers.ads:152:37 (reference)
processes-managers.ads:154:44 (reference)
processes-managers.ads:158:37 (reference)

Types

A_Process_Manager

type A_Process_Manager is access all Process_Manager'Class;

References:

processes-managers.ads:11:10 (declaration)
applications.ads:98:27 (reference)
game_views.ads:102:27 (reference)
games.ads:70:27 (reference)
processes-managers.adb:14:45 (reference)
processes-managers.adb:15:25 (reference)
processes-managers.adb:53:27 (reference)
processes-managers.adb:160:37 (reference)
processes-managers.adb:329:45 (reference)
processes-managers.adb:376:21 (reference)
processes-managers.adb:384:29 (reference)
processes-managers.ads:23:71 (reference)
processes-managers.ads:60:37 (reference)
processes-managers.ads:132:28 (reference)
worlds.adb:210:54 (reference)
worlds.ads:63:54 (reference)
worlds.ads:217:24 (reference)

A_Destructor

type A_Destructor is access procedure( process : in out A_Process );

References:

processes-managers.ads:14:10 (declaration)
processes-managers.adb:80:36 (reference)
processes-managers.adb:295:52 (reference)
processes-managers.ads:35:36 (reference)
processes-managers.ads:102:23 (reference)
processes-managers.ads:121:52 (reference)
Reference to a procedure that is responsible for destroying a process.

Subprograms & Entries

Create_Process_Manager

function Create_Process_Manager
( hertz: Natural := 0;
minHertz: Natural := 0 )
return A_Process_Manager;

References:

processes-managers.ads:22:14 (declaration)
game_views.adb:53:22 (reference)
games.adb:56:22 (reference)
processes-managers.adb:12:14 (body)
processes-managers.adb:19:9 (label)
processes-managers.ads:24:27 (reference)

Called by:

Game_Views.Construct defined at game_views.ads:110:15
Games.Construct defined at games.ads:79:15

Calls:

Construct defined at processes-managers.ads:154:15
An update rate of 0 hertz means maximum update rate, without delay between frames. 'minHertz' is not the minimum actual rate of the process manager because it is unable to interupt or skip processes; it is the minimum time delta reported to the processes on tick. If some processes can't handle large time deltas but sometimes they do happen, 'minHertz' will prevent the processes from getting a dt that's too big.

Attach

procedure Attach
( this: not null access Process_Manager'Class;
proc: not null A_Process );

References:

processes-managers.ads:29:15 (declaration)
game_views.adb:43:19 (reference)
game_views.adb:267:23 (reference)
game_views.adb:268:23 (reference)
game_views.adb:269:23 (reference)
game_views.adb:270:23 (reference)
games.adb:234:19 (reference)
games.adb:235:19 (reference)
games.adb:236:19 (reference)
processes-managers.adb:33:15 (body)
processes-managers.adb:41:9 (label)
worlds.adb:216:23 (reference)

Calls:

Ada.Containers.Doubly_Linked_Lists.Append defined at a-cdlili.ads:111:14
Create_Attach_Operation defined at processes-managers.ads:118:14
Locking_Objects.Locking_Object.Lock defined at locking_objects.ads:15:15
Locking_Objects.Locking_Object.Unlock defined at locking_objects.ads:20:19
Attach a process to the process manager for execution. It will be executed last in the rotation of attached processes. This can be done before or after starting the process manager.

Detach

procedure Detach
( this: not null access Process_Manager'Class;
proc: not null A_Process;
destructor: A_Destructor := null );

References:

processes-managers.ads:33:15 (declaration)
game_views.adb:81:19 (reference)
game_views.adb:288:23 (reference)
game_views.adb:289:23 (reference)
game_views.adb:290:23 (reference)
game_views.adb:291:23 (reference)
games.adb:259:19 (reference)
games.adb:260:19 (reference)
games.adb:261:19 (reference)
processes-managers.adb:78:15 (body)
processes-managers.adb:87:9 (label)
worlds.adb:290:23 (reference)

Calls:

Ada.Containers.Doubly_Linked_Lists.Append defined at a-cdlili.ads:111:14
Create_Detach_Operation defined at processes-managers.ads:120:14
Locking_Objects.Locking_Object.Lock defined at locking_objects.ads:15:15
Locking_Objects.Locking_Object.Unlock defined at locking_objects.ads:20:19
Detaches a process from the process manager. This can be done at any time.

Get_Rate

function Get_Rate
( this: not null access Process_Manager'Class )
return Natural;

References:

processes-managers.ads:38:14 (declaration)
processes-managers.adb:91:14 (body)
processes-managers.adb:100:9 (label)
Returns the rate in Hz that the process manager is ticking its processes.

Pause

procedure Pause
( this: not null access Process_Manager'Class;
proc: not null A_Process;
paused: Boolean );

References:

processes-managers.ads:42:15 (declaration)
games.adb:179:19 (reference)
games.adb:180:19 (reference)
games.adb:181:19 (reference)
processes-managers.adb:104:15 (body)
processes-managers.adb:117:9 (label)

Called by:

Games.Pause defined at games.ads:99:15
Games.Pause defined at games.ads:99:15
Games.Pause defined at games.ads:99:15

Calls:

Ada.Containers.Doubly_Linked_Lists.Append defined at a-cdlili.ads:111:14
Create_Pause_Operation defined at processes-managers.ads:123:14
Create_Resume_Operation defined at processes-managers.ads:125:14
Locking_Objects.Locking_Object.Lock defined at locking_objects.ads:15:15
Locking_Objects.Locking_Object.Unlock defined at locking_objects.ads:20:19
Pauses/resumes the given process if it's attached to this manager. If paused, Tick will not be called until after the process has been resumed.

Start

procedure Start
( this: not null access Process_Manager'Class );

References:

processes-managers.ads:47:15 (declaration)
game_views.adb:273:23 (reference)
games.adb:239:19 (reference)
processes-managers.adb:121:15 (body)
processes-managers.adb:124:9 (label)

Calls:

Start defined at processes-managers.ads:133:15
Starts execution of the processes.

Stop

procedure Stop
( this: not null access Process_Manager'Class );

References:

processes-managers.ads:50:15 (declaration)
game_views.adb:285:23 (reference)
games.adb:253:19 (reference)
processes-managers.adb:128:15 (body)
processes-managers.adb:146:9 (label)

Calls:

Debugging.Dbg defined at debugging.ads:58:15
Is_Terminated defined at a-taside.ads:62:13
Stop defined at processes-managers.ads:134:15
Stops execution of the processes.

Track_Rate

procedure Track_Rate
( this: not null access Process_Manager'Class;
enabled: Boolean );

References:

processes-managers.ads:55:15 (declaration)
processes-managers.adb:150:15 (body)
processes-managers.adb:156:9 (label)
Instructs the process manager to track the rate at which it is executing its processes. This is useful for determining frame rates or finding which process manager threads are running too slowly.

Delete

procedure Delete
( this: in out A_Process_Manager );

References:

processes-managers.ads:60:15 (declaration)
applications.adb:177:9 (reference)
game_views.adb:67:9 (reference)
games.adb:81:9 (reference)
processes-managers.adb:160:15 (body)
processes-managers.adb:163:9 (label)

Called by:

Applications.Close defined at applications.ads:39:15
Game_Views.Delete defined at game_views.ads:112:15
Games.Delete defined at games.ads:81:15

Calls:

Objects.Delete defined at objects.ads:46:15
Deletes a process manager. Its attached processes, if it has any at the time of deletion, are detached and left unchanged.