12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- // $Id$
- // AsyncIO test by Sebastian Guenther, [email protected]
- // This file is in the public domain
- {$MODE objfpc}
- program asiotest;
- uses SysUtils, Classes, Crt, AsyncIO;
- type
- TASIOTest = class
- protected
- FManager: TAsyncIOManager;
- Input: THandleStream;
- procedure InputAvailable(UserData: TObject);
- procedure Timeout(UserData: TObject);
- public
- constructor Create(AManager: TAsyncIOManager);
- destructor Destroy; override;
- end;
- procedure TASIOTest.InputAvailable(UserData: TObject);
- var
- b: Byte;
- begin
- b := Input.ReadByte;
- Write('Input available: ');
- if b >= 32 then
- WriteLn('"', Chr(b), '"')
- else
- WriteLn('#', b);
- case b of
- Ord('q'): FManager.BreakRun;
- Ord('t'): FManager.ClearTimeoutHandler;
- end;
- end;
- procedure TASIOTest.Timeout(UserData: TObject);
- begin
- WriteLn('Timeout');
- end;
- constructor TASIOTest.Create(AManager: TAsyncIOManager);
- begin
- inherited Create;
- FManager := AManager;
- Input := THandleStream.Create(StdInputHandle);
- AManager.SetReadHandler(Input.Handle, @InputAvailable, nil);
- AManager.SetTimeoutHandler(@Timeout, nil);
- AManager.Timeout := 1000;
- end;
- destructor TASIOTest.Destroy;
- begin
- Input.Free;
- end;
- var
- AsyncIOManager: TAsyncIOManager;
- app: TASIOTest;
- begin
- WriteLn('Exit with "q", use "t" to stop the timeout handler');
- AsyncIOManager := TAsyncIOManager.Create;
- app := TASIOTest.Create(AsyncIOManager);
- AsyncIOManager.Run;
- app.Free;
- AsyncIOManager.Free;
- end.
- {
- $Log$
- Revision 1.2 2000-07-13 11:33:03 michael
- + removed logs
-
- }
|