package Ada_Store.Trading

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;

Contents Page

Copyright © 1996 Simon Johnston &
Addison Wesley Longman