with Ada.Real_Time; use Ada.Real_Time;
package Processes is
type Process is limited interface;
type A_Process is access all Process'Class;
-- Returns a name string identifying the process.
function Get_Process_Name( this : access Process ) return String is abstract;
-- Executes one frame of the process. 'upTime' is the amount of time the
-- process manager has been running (real time since start, not execution
-- time.) 'dt' is the difference in time since the previous execution frame.
procedure Tick( this : access Process; upTime, dt : Time_Span ) is abstract;
end Processes;