⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 idlogstream.pas

📁 网络控件适用于Delphi6
💻 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:  11655: IdLogStream.pas
{
{   Rev 1.5    2004.05.20 12:34:32 PM  czhower
{ Removed more non .NET compatible stream read and writes
}
{
{   Rev 1.4    2004.01.20 10:03:30 PM  czhower
{ InitComponent
}
{
{   Rev 1.3    2003.10.17 6:15:56 PM  czhower
{ Upgrades
}
{
{   Rev 1.2    2003.10.17 4:28:54 PM  czhower
{ Changed stream names to be consistent with IOHandlerStream
}
{
{   Rev 1.1    2003.10.14 1:27:12 PM  czhower
{ Uupdates + Intercept support
}
{
{   Rev 1.0    11/13/2002 07:56:18 AM  JPMugaas
}
unit IdLogStream;

interface

uses
  Classes,
  IdLogBase, IdStreamVCL;

type
  TIdLogStream = class(TIdLogBase)
  protected
    FFreeStreams: Boolean;
    FReceiveStream: TIdStreamVCL;
    FSendStream: TIdStreamVCL;
    //
    procedure InitComponent; override;
    procedure LogStatus(AText: string); override;
    procedure LogReceivedData(AText: string; AData: string); override;
    procedure LogSentData(AText: string; AData: string); override;
  public
    procedure Disconnect; override;
    //
    property FreeStreams: Boolean read FFreeStreams write FFreeStreams;
    property ReceiveStream: TIdStreamVCL read FReceiveStream write FReceiveStream;
    property SendStream: TIdStreamVCL read FSendStream write FSendStream;
  end;

implementation

uses
  SysUtils;

// TODO: This was orginally for VCL. For .Net what do we do? Convert back to
// 7 bit? Log all? Logging all seems to be a disaster.
// Text seems to be best, users are expecting text in this class. But
// this write stream will dump unicode out in .net.....
// So just convert it again back to 7 bit? How is proper to write
// 7 bit to file? Use AnsiString?

{ TIdLogStream }

procedure TIdLogStream.Disconnect;
begin
  inherited;
  if FreeStreams then begin
    FreeAndNil(FReceiveStream);
    FreeAndNil(FSendStream);
  end;
end;

procedure TIdLogStream.InitComponent;
begin
  inherited;
  FFreeStreams := True;
end;

procedure TIdLogStream.LogReceivedData(AText, AData: string);
begin
  if FReceiveStream <> nil then begin
    FReceiveStream.Write(AData);
  end;
end;

procedure TIdLogStream.LogSentData(AText, AData: string);
begin
  if FSendStream <> nil then begin
    FSendStream.Write(AData);
  end;
end;

procedure TIdLogStream.LogStatus(AText: string);
begin
  // We just leave this empty because the AText is not part of the stream and we
  // do not want to raise an abstract method exception.
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -