www.pudn.com > indy10.0.52_source.rar > IdServerIOHandler.pas


{ $HDR$} 
{**********************************************************************} 
{ Unit archived using Team Coherence                                   } 
{ Team Coherence is Copyright 2002 by Quality Software Components      } 
{                                                                      } 
{ For further information / comments, visit our WEB site at            } 
{ http://www.TeamCoherence.com                                         } 
{**********************************************************************} 
{} 
{ $Log:  11964: IdServerIOHandler.pas  
{ 
{   Rev 1.7    2003.10.11 5:49:56 PM  czhower 
{ -VCL fixes for servers 
{ -Chain suport for servers (Super core) 
{ -Scheduler upgrades 
{ -Full yarn support 
} 
{ 
{   Rev 1.6    2003.09.19 11:54:32 AM  czhower 
{ -Completed more features necessary for servers 
{ -Fixed some bugs 
} 
{ 
{   Rev 1.5    2003.09.18 4:10:28 PM  czhower 
{ Preliminary changes for Yarn support. 
} 
{ 
    Rev 1.4    3/23/2003 11:26:08 PM  BGooijen 
  Added SetScheduler,MakeClientIOHandler 
} 
{ 
    Rev 1.3    3/13/2003 10:18:22 AM  BGooijen 
  Server side fibers, bug fixes 
} 
{ 
{   Rev 1.2    1-17-2003 22:22:02  BGooijen 
{ new design 
} 
{ 
{   Rev 1.1    1-1-2003 16:28:58  BGooijen 
{ Changed TIdThread to TIdYarn 
} 
{ 
{   Rev 1.0    11/13/2002 08:46:16 AM  JPMugaas 
} 
unit IdServerIOHandler; 
 
interface 
 
uses 
  Classes, 
  IdSocketHandle, IdComponent, IdIOHandlerStack, IdStackConsts, IdIOHandler, 
  IdThread, IdScheduler, IdYarn, 
  SysUtils; 
 
type 
  TIdServerIOHandler = class(TIdComponent) 
  protected 
    FScheduler: TIdScheduler; 
  public 
    function Accept( 
      ASocket: TIdSocketHandle; 
      // This is a thread and not a yarn. Its the listener thread. 
      AListenerThread: TIdThread; 
      AYarn: TIdYarn 
      ): TIdIOHandler; 
      virtual; 
    function MakeClientIOHandler( 
      AYarn: TIdYarn 
      ): TIdIOHandler; 
      virtual; 
    // Init is called when the server goes active 
    procedure Init; virtual; 
    // SetScheduler is called by the user (normally TCPServer) automatically 
    procedure SetScheduler( 
      AScheduler: TIdScheduler 
      ); virtual; 
  end; 
 
implementation 
 
{ TIdServerIOHandler } 
 
procedure TIdServerIOHandler.Init; 
begin 
  // 
end; 
 
function TIdServerIOHandler.Accept( 
  ASocket: TIdSocketHandle; 
  AListenerThread: TIdThread; 
  AYarn: TIdYarn 
  ): TIdIOHandler; 
begin 
  Result := nil; 
end; 
 
function TIdServerIOHandler.MakeClientIOHandler( 
  AYarn: TIdYarn 
  ): TIdIOHandler; 
begin 
  Result := nil; 
end; 
 
procedure TIdServerIOHandler.SetScheduler( 
  AScheduler: TIdScheduler 
  ); 
begin 
  FScheduler:=AScheduler; 
end; 
 
 
 
end.