package Ada_Store.Trading is type State is ( Trading, Not_Trading, Consolidating ); procedure Start; procedure Stop; function Current_State return State; Invalid_Trading_Time : exception; end Ada_Store.Trading;
with Ada.Calendar; use Ada.Calendar; package body Ada_Store.Trading is subtype Trading_Time is Day_Duration range 30_600.0 .. 66_600.0; -- above is from 8:30am to 6:30pm Trading_State : State := Not_Trading; procedure Start is Time_Now : Day_Duration := Seconds(Clock); begin if Time_Now in Trading_Time'Range then Trading_State := Trading; else raise Invalid_Trading_Time; end if; end Start; procedure Stop is Time_Now : Day_Duration := Seconds(Clock); begin if Time_Now not in Trading_Time'Range then Trading_State := Not_Trading; else raise Invalid_Trading_Time; end if; end Stop; function Current_State return State is begin return Trading_State; end Current_State; end Ada_Store.Trading;
Copyright ©
1996 Simon Johnston &
Addison Wesley Longman