snapkitty
hardware
ada
sovereign-ada-rtx / src /state_machine.ads
SNAPKITTYWEST's picture
push from SNAPKITTYWEST/sovereign-ada-rtx
52edc5a verified
Raw History Blame Contribute Delete
835 Bytes
with Core_Types; use Core_Types;
with Errors;
with Validation;
package State_Machine is
type Machine is limited private;
procedure Init_Machine (M : in out Machine);
procedure Reset_Machine (M : in out Machine);
function Get_State (M : Machine) return App_State;
function Transition (M : in out Machine; To : App_State; Log : in out Errors.Error_Log) return Status_Code;
function Force_Error (M : in out Machine) return Status_Code;
function Is_Terminal (M : Machine) return Boolean;
function Can_Accept_Input (M : Machine) return Boolean;
function Transition_Count (M : Machine) return Medium_Natural;
private
type Machine is record
Current : App_State := Idle;
Previous : App_State := Idle;
Transition_Count : Medium_Natural := 0;
end record;
end State_Machine;