delphimvcframework/unittests/TestServer/TestServer.dpr

74 lines
2.5 KiB
ObjectPascal

program TestServer;
{$APPTYPE CONSOLE}
uses
System.SysUtils,
Winapi.Windows,
IdHTTPWebBrokerBridge,
Web.WebReq,
Web.WebBroker,
WebModuleUnit in 'WebModuleUnit.pas' {wm: TWebModule},
MVCFramework.Commons in '..\..\sources\MVCFramework.Commons.pas',
MVCFramework in '..\..\sources\MVCFramework.pas',
MVCFramework.RESTClient in '..\..\sources\MVCFramework.RESTClient.pas',
MVCFramework.Router in '..\..\sources\MVCFramework.Router.pas',
MVCFramework.View.Cache in '..\..\sources\MVCFramework.View.Cache.pas',
MVCFramework.View in '..\..\sources\MVCFramework.View.pas',
TestServerControllerU in 'TestServerControllerU.pas',
MVCFramework.ApplicationSession in '..\..\sources\MVCFramework.ApplicationSession.pas',
MVCFramework.Session in '..\..\sources\MVCFramework.Session.pas',
MVCFramework.Logger in '..\..\sources\MVCFramework.Logger.pas',
StompClient in '..\..\lib\delphistompclient\StompClient.pas',
StompTypes in '..\..\lib\delphistompclient\StompTypes.pas',
RTTIUtilsU in '..\..\sources\RTTIUtilsU.pas',
ObjectsMappers in '..\..\sources\ObjectsMappers.pas',
DuckListU in '..\..\sources\DuckListU.pas',
MVCFramework.BUSController in '..\..\sources\MVCFramework.BUSController.pas',
BusinessObjectsU in '..\..\samples\commons\BusinessObjectsU.pas',
TestServerControllerExceptionU in 'TestServerControllerExceptionU.pas',
SpeedMiddlewareU in 'SpeedMiddlewareU.pas',
uGlobalVars in '..\..\sources\uGlobalVars.pas';
{$R *.res}
procedure RunServer(APort: Integer);
var
LInputRecord: TInputRecord;
LEvent: DWord;
LHandle: THandle;
LServer: TIdHTTPWebBrokerBridge;
begin
Writeln(Format('Starting HTTP Server or port %d', [APort]));
LServer := TIdHTTPWebBrokerBridge.Create(nil);
try
LServer.DefaultPort := APort;
LServer.Active := True;
Writeln('Press ESC to stop the server');
LHandle := GetStdHandle(STD_INPUT_HANDLE);
while True do
begin
Win32Check(ReadConsoleInput(LHandle, LInputRecord, 1, LEvent));
if (LInputRecord.EventType = KEY_EVENT) and
LInputRecord.Event.KeyEvent.bKeyDown and
(LInputRecord.Event.KeyEvent.wVirtualKeyCode = VK_ESCAPE) then
break;
end;
finally
LServer.Free;
end;
end;
begin
ReportMemoryLeaksOnShutdown := True;
try
if WebRequestHandler <> nil then
WebRequestHandler.WebModuleClass := WebModuleClass;
RunServer(9999);
except
on E: Exception do
Writeln(E.ClassName, ': ', E.Message);
end
end.