122 lines
3.4 KiB
ObjectPascal
122 lines
3.4 KiB
ObjectPascal
|
|
{******************************************}
|
|
{ }
|
|
{ FastReport VCL }
|
|
{ HTTP connection client }
|
|
{ }
|
|
{ Copyright (c) 1998-2021 }
|
|
{ Fast Reports Inc. }
|
|
{ }
|
|
{******************************************}
|
|
|
|
unit frxTransportIndyConnector;
|
|
|
|
{$I frx.inc}
|
|
interface
|
|
|
|
uses
|
|
Windows, SysUtils, Classes, frxBaseTransportConnection,
|
|
IdComponent, IdTCPConnection;
|
|
|
|
type
|
|
{$IFDEF DELPHI16}
|
|
[ComponentPlatformsAttribute(pidWin32 or pidWin64)]
|
|
{$ENDIF}
|
|
TfrxTransportIndyConnector = class(TfrxBaseTransportConnection)
|
|
private
|
|
procedure SetIdConnection(const Value: TIdTCPConnection);
|
|
procedure ConnectionWorkBegin(Sender: TObject; AWorkMode: TWorkMode;
|
|
{$IfDef INDYPARAM_INT}{$IfDef INDY10_2005} AWorkCount: Integer
|
|
{$ELSE}
|
|
const AWorkCount: Integer
|
|
{$ENDIF}
|
|
{$Else} AWorkCount: Int64 {$EndIf});
|
|
procedure ConnectionWork(Sender: TObject; AWorkMode: TWorkMode;
|
|
{$IfDef INDYPARAM_INT}{$IfDef INDY10_2005} AWorkCount: Integer
|
|
{$ELSE}
|
|
const AWorkCount: Integer
|
|
{$ENDIF}
|
|
{$Else} AWorkCount: Int64 {$EndIf});
|
|
protected
|
|
FIdConnection: TIdTCPConnection;
|
|
public
|
|
constructor Create(AOwner: TComponent); override;
|
|
destructor Destroy; override;
|
|
procedure Connect; override;
|
|
procedure Disconnect; override;
|
|
property IdConnection: TIdTCPConnection read FIdConnection write SetIdConnection;
|
|
published
|
|
property ProxyHost;
|
|
property ProxyPort;
|
|
property ProxyLogin;
|
|
property ProxyPassword;
|
|
property OnWork;
|
|
property OnWorkBegin;
|
|
property OnWorkEnd;
|
|
end;
|
|
|
|
implementation
|
|
|
|
uses
|
|
StrUtils,
|
|
frxFileUtils, frxUtils
|
|
{$IFDEF DELPHI12}
|
|
,AnsiStrings
|
|
{$ENDIF};
|
|
|
|
{ TfrxTransportIndyConnector }
|
|
|
|
procedure TfrxTransportIndyConnector.ConnectionWork(Sender: TObject; AWorkMode: TWorkMode;
|
|
{$IfDef INDYPARAM_INT}{$IfDef INDY10_2005} AWorkCount: Integer
|
|
{$ELSE}
|
|
const AWorkCount: Integer
|
|
{$EndIf}
|
|
{$Else} AWorkCount: Int64 {$EndIf});
|
|
begin
|
|
if Assigned(OnWork) then
|
|
OnWork(Sender, TfrxHTTPWorkMode(AWorkMode), AWorkCount);
|
|
end;
|
|
|
|
procedure TfrxTransportIndyConnector.ConnectionWorkBegin(Sender: TObject; AWorkMode: TWorkMode;
|
|
{$IfDef INDYPARAM_INT}{$IfDef INDY10_2005} AWorkCount: Integer
|
|
{$ELSE}
|
|
const AWorkCount: Integer
|
|
{$EndIf}
|
|
{$Else} AWorkCount: Int64 {$EndIf});
|
|
begin
|
|
if Assigned(OnWorkBegin) then
|
|
OnWorkBegin(Sender, TfrxHTTPWorkMode(AWorkMode), AWorkCount);
|
|
end;
|
|
|
|
constructor TfrxTransportIndyConnector.Create(AOwner: TComponent);
|
|
begin
|
|
inherited;
|
|
end;
|
|
|
|
procedure TfrxTransportIndyConnector.Connect;
|
|
begin
|
|
FIdConnection.OnWorkBegin := ConnectionWorkBegin;
|
|
FIdConnection.OnWork := ConnectionWork;
|
|
//FIdConnection.Socket.Open;
|
|
end;
|
|
|
|
destructor TfrxTransportIndyConnector.Destroy;
|
|
begin
|
|
FIdConnection.Disconnect;
|
|
end;
|
|
|
|
procedure TfrxTransportIndyConnector.Disconnect;
|
|
begin
|
|
FIdConnection.Disconnect;
|
|
end;
|
|
|
|
procedure TfrxTransportIndyConnector.SetIdConnection(
|
|
const Value: TIdTCPConnection);
|
|
begin
|
|
FIdConnection := Value;
|
|
FIdConnection.OnWorkBegin := ConnectionWorkBegin;
|
|
FIdConnection.OnWork := ConnectionWork;
|
|
end;
|
|
|
|
end.
|