www.pudn.com > indyprelim.zip > IdLogEvent.pas


{ 
  $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.2    2004.05.20 12:34:28 PM  czhower 
  Removed more non .NET compatible stream read and writes 
 
  Rev 1.1    2003.10.17 8:17:22 PM  czhower 
  Removed const 
 
  Rev 1.0    11/13/2002 07:56:08 AM  JPMugaas 
} 
 
unit IdLogEvent; 
 
interface 
{$I IdCompilerDefines.inc} 
//Put FPC into Delphi mode 
uses 
  IdLogBase, IdObjs; 
 
type 
  TLogItemStatusEvent = procedure(ASender: TIdNativeComponent; AText: string) of object; 
  TLogItemDataEvent = procedure(ASender: TIdNativeComponent; AText: string; AData: string) 
   of object; 
 
  TIdLogEvent = class(TIdLogBase) 
  protected 
    FOnReceived: TLogItemDataEvent; 
    FOnSent: TLogItemDataEvent; 
    FOnStatus: TLogItemStatusEvent; 
    // 
    procedure LogStatus(AText: string); override; 
    procedure LogReceivedData(AText: string; AData: string); override; 
    procedure LogSentData(AText: string; AData: string); override; 
  public 
  published 
    property OnReceived: TLogItemDataEvent read FOnReceived write FOnReceived; 
    property OnSent: TLogItemDataEvent read FOnSent write FOnSent; 
    property OnStatus: TLogItemStatusEvent read FOnStatus write FOnStatus; 
  end; 
 
implementation 
 
{ TIdLogEvent } 
 
procedure TIdLogEvent.LogReceivedData(AText, AData: string); 
begin 
  if Assigned(OnReceived) then begin 
    OnReceived(Self, AText, AData); 
  end; 
end; 
 
procedure TIdLogEvent.LogSentData(AText, AData: string); 
begin 
  if Assigned(OnSent) then begin 
    OnSent(Self, AText, AData); 
  end; 
end; 
 
procedure TIdLogEvent.LogStatus(AText: string); 
begin 
  if Assigned(OnStatus) then begin 
    OnStatus(Self, AText); 
  end; 
end; 
 
end.