with Ada_Store.PoST.Input_Queue; package Ada_Store.PoST.Device.Scanner is type Instance is new Ada_Store.PoST.Device.Instance with private; type Laser_Status is ( On, Off, Unknown ); function Current_Status (Scanner : in Instance) return Laser_Status; procedure Open (Scanner : in out Instance); procedure Flush (Scanner : in out Instance; Flush_Mode : in Device_Mode); procedure Accept_Input (Scanner : in out Instance; Input : in Input_Queue.Message_Ptr); private type Instance is new Ada_Store.PoST.Device.Instance with null record; end Ada_Store.PoST.Device.Scanner;
package body Ada_Store.PoST.Device.Scanner is type Label_Type is ( EAN_8, EAN_13, UPC_E, UPC_A, Unknown ); function Current_Status (Scanner : in Instance) return Laser_Status is begin return Unknown; end Current_Status; procedure Open (Scanner : in out Instance) is begin null; end Open; procedure Flush (Scanner : in out Instance; Flush_Mode : in Device_Mode) is begin null; end Flush; procedure Accept_Input (Scanner : in out Instance; Input : in Input_Queue.Message_Ptr) is begin -- validate scan code -- add message to input queue. Input.Action := Input_Queue.Item_Sale; Input_Queue.Append(Input); end Accept_Input; end Ada_Store.PoST.Device.Scanner;
Copyright ©
1996 Simon Johnston &
Addison Wesley Longman