restemplate/indy/Protocols/IdQotdServer.pas

100 lines
2.1 KiB
Plaintext

{
$Project$
$Workfile$
$Revision$
$DateUTC$
$Id$
This file is part of the Indy (Internet Direct) project, and is offered
under the dual-licensing agreement described on the Indy website.
(http://www.indyproject.org/)
Copyright:
(c) 1993-2005, Chad Z. Hower and the Indy Pit Crew. All rights reserved.
}
{
$Log$
}
{
Rev 1.5 12/2/2004 4:23:58 PM JPMugaas
Adjusted for changes in Core.
Rev 1.4 1/21/2004 3:27:14 PM JPMugaas
InitComponent
Rev 1.3 2/24/2003 09:29:30 PM JPMugaas
Rev 1.2 1/17/2003 07:10:48 PM JPMugaas
Now compiles under new framework.
Rev 1.1 1/8/2003 05:53:46 PM JPMugaas
Switched stuff to IdContext.
Rev 1.0 11/13/2002 07:58:40 AM JPMugaas
2000-May-15 J. Peter Mugaas
-renamed events to have Id prefix
2000-Apr-22 J Peter Mugaas
Ported to Indy
2000-Jan-13 MTL
Moved to new Palette Scheme (Winshoes Servers)
1999-May-13
Final Version
}
unit IdQotdServer;
interface
{$i IdCompilerDefines.inc}
{
Original Author: Ozz Nixon
(RFC 865) [less than 512 characters total, multiple lines OK!]
}
uses
IdAssignedNumbers,
IdContext,
IdCustomTCPServer;
Type
TIdQOTDGetEvent = procedure(AContext: TIdContext; var AQuote: String) of object;
TIdQOTDServer = class(TIdCustomTCPServer)
protected
FOnCommandQOTD : TIdQOTDGetEvent;
//
function DoExecute(AContext: TIdContext): Boolean; override;
procedure InitComponent; override;
published
property OnCommandQOTD : TIdQOTDGetEvent read fOnCommandQOTD write fOnCommandQOTD;
property DefaultPort default IdPORT_QOTD;
end;
implementation
procedure TIdQOTDServer.InitComponent;
begin
inherited InitComponent;
DefaultPort := IdPORT_QOTD;
end;
function TIdQOTDServer.DoExecute(AContext:TIdContext) : Boolean;
var
LQuote : String;
begin
Result := True;
if Assigned(OnCommandQOTD) then
begin
OnCommandQOTD(AContext, LQuote);
AContext.Connection.IOHandler.Write(LQuote);
end;
AContext.Connection.Disconnect;
end;
end.