Files
lazarus-ccr/wst/trunk/samples/http_server/http_server.pas
2011-08-06 17:10:39 +00:00

55 lines
1.5 KiB
ObjectPascal

program http_server;
{$mode objfpc}{$H+}
{$IFDEF UNIX}
{$DEFINE UseCThreads}
{$DEFINE USE_THREAD}
{$ENDIF}
{$IFDEF WINDOWS}
{$DEFINE USE_THREAD}
{$ENDIF}
uses
{$IFDEF UNIX}{$IFDEF UseCThreads}
cthreads,
{$ENDIF}{$ENDIF}
Classes, SysUtils,
fpc_http_server, // indy_http_server,
metadata_service, logger_extension, server_listener,
server_service_soap, server_binary_formatter, server_service_xmlrpc, server_service_json, config_objects,
user_service_intf, user_service_intf_binder, user_service_intf_imp, server_service_intf;
var
AppObject : TwstListener;
begin
Server_service_RegisterBinaryFormat();
Server_service_RegisterSoapFormat();
Server_service_RegisterXmlRpcFormat();
Server_service_RegisterJsonFormat();
RegisterUserServiceImplementationFactory();
Server_service_RegisterUserServiceService();
GetServiceImplementationRegistry().FindFactory('UserService').RegisterExtension(['TLoggerServiceExtension']);
//wst_CreateDefaultFile(wst_GetConfigFileName(),nil);
//AppObject := TwstIndyHttpListener.Create('');
AppObject := TwstFPHttpListener.Create('');
try
{$IFDEF USE_THREAD}
TwstFPHttpListener(AppObject).Options := [loExecuteInThread, loHandleRequestInThread];
{$ENDIF}
WriteLn('"Web Service Toolkit" HTTP Server sample listening at:');
WriteLn('');
WriteLn('http://127.0.0.1:8000/');
WriteLn('');
WriteLn('Press enter to quit.');
AppObject.Start();
ReadLn();
finally
FreeAndNil(AppObject);
end;
end.