mirror of
https://github.com/doublecmd/doublecmd.git
synced 2026-06-28 10:02:14 +00:00
ADD: Some templates for a few file source operations.
This commit is contained in:
parent
5db183d871
commit
ce9aeebc13
5 changed files with 245 additions and 31 deletions
45
src/newdesign/ufilesourcecopyinoperation.pas
Normal file
45
src/newdesign/ufilesourcecopyinoperation.pas
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
unit uFileSourceCopyInOperation;
|
||||
|
||||
{$mode objfpc}{$H+}
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
Classes, SysUtils,
|
||||
uFileSourceOperation;
|
||||
|
||||
type
|
||||
|
||||
{en
|
||||
Operation that copies files from another file source into a file source of specific type
|
||||
(to file system for TFileSystemCopyInOperation,
|
||||
to network for TNetworkCopyInOperation, etc.).
|
||||
|
||||
Source file source must be a file system file source.
|
||||
(Or is it enough if it's a file source with directly accessible files ? (DirectAccess flag))
|
||||
Target file source should match the class type.
|
||||
|
||||
Example meaning of this operation:
|
||||
- archive: pack
|
||||
- network: upload
|
||||
}
|
||||
TFileSourceCopyInOperation = class(TFileSourceOperation)
|
||||
|
||||
public
|
||||
constructor Create; virtual;
|
||||
destructor Destroy; override;
|
||||
|
||||
end;
|
||||
|
||||
implementation
|
||||
|
||||
constructor TFileSourceCopyInOperation.Create;
|
||||
begin
|
||||
end;
|
||||
|
||||
destructor TFileSourceCopyInOperation.Destroy;
|
||||
begin
|
||||
end;
|
||||
|
||||
end.
|
||||
|
||||
45
src/newdesign/ufilesourcecopyoutoperation.pas
Normal file
45
src/newdesign/ufilesourcecopyoutoperation.pas
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
unit uFileSourceCopyOutOperation;
|
||||
|
||||
{$mode objfpc}{$H+}
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
Classes, SysUtils,
|
||||
uFileSourceOperation;
|
||||
|
||||
type
|
||||
|
||||
{en
|
||||
Operation that copies files into another file source from a file source of specific type
|
||||
(from file system for TFileSystemCopyOutOperation,
|
||||
from network for TNetworkCopyOutOperation, etc.).
|
||||
|
||||
Source file source should match the class type.
|
||||
Target file source must be a file system file source.
|
||||
(Or is it enough if it's a file source with directly accessible files ? (DirectAccess flag))
|
||||
|
||||
Example meaning of this operation:
|
||||
- archive: unpack
|
||||
- network: download
|
||||
}
|
||||
TFileSourceCopyOutOperation = class(TFileSourceOperation)
|
||||
|
||||
public
|
||||
constructor Create; virtual;
|
||||
destructor Destroy; override;
|
||||
|
||||
end;
|
||||
|
||||
implementation
|
||||
|
||||
constructor TFileSourceCopyOutOperation.Create;
|
||||
begin
|
||||
end;
|
||||
|
||||
destructor TFileSourceCopyOutOperation.Destroy;
|
||||
begin
|
||||
end;
|
||||
|
||||
end.
|
||||
|
||||
36
src/newdesign/ufilesourcedeleteoperation.pas
Normal file
36
src/newdesign/ufilesourcedeleteoperation.pas
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
unit uFileSourceDeleteOperation;
|
||||
|
||||
{$mode objfpc}{$H+}
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
Classes, SysUtils,
|
||||
uFileSourceOperation;
|
||||
|
||||
type
|
||||
|
||||
{en
|
||||
Operation that deletes files from an arbitrary file source.
|
||||
File source should match the class type.
|
||||
}
|
||||
TFileSourceDeleteOperation = class(TFileSourceOperation)
|
||||
|
||||
public
|
||||
constructor Create; virtual;
|
||||
destructor Destroy; override;
|
||||
|
||||
end;
|
||||
|
||||
implementation
|
||||
|
||||
constructor TFileSourceDeleteOperation.Create;
|
||||
begin
|
||||
end;
|
||||
|
||||
destructor TFileSourceDeleteOperation.Destroy;
|
||||
begin
|
||||
end;
|
||||
|
||||
end.
|
||||
|
||||
|
|
@ -1,31 +1,20 @@
|
|||
unit uFileSourceOperation;
|
||||
|
||||
{$mode objfpc}{$H+}
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
Classes, SysUtils{,
|
||||
uFileSource};
|
||||
|
||||
type
|
||||
|
||||
TFileSourceOperation = class
|
||||
// private
|
||||
// FFileSource: TFileSource;
|
||||
|
||||
public
|
||||
// constructor Create(FileSource: TFileSource); virtual; reintroduce;
|
||||
procedure Execute; virtual abstract;
|
||||
end;
|
||||
|
||||
implementation
|
||||
|
||||
{constructor TFileSourceOperation.Create(FileSource: TFileSource);
|
||||
begin
|
||||
FFileSource := FileSource;
|
||||
inherited Create;
|
||||
end;}
|
||||
|
||||
end.
|
||||
|
||||
unit uFileSourceOperation;
|
||||
|
||||
{$mode objfpc}{$H+}
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
Classes, SysUtils;
|
||||
|
||||
type
|
||||
|
||||
TFileSourceOperation = class
|
||||
public
|
||||
procedure Execute; virtual abstract;
|
||||
end;
|
||||
|
||||
implementation
|
||||
|
||||
end.
|
||||
|
||||
|
|
|
|||
99
src/newdesign/ufilesystemcopyoperation.pas
Normal file
99
src/newdesign/ufilesystemcopyoperation.pas
Normal file
|
|
@ -0,0 +1,99 @@
|
|||
unit uFileSystemCopyOperation;
|
||||
|
||||
{$mode objfpc}{$H+}
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
Classes, SysUtils,
|
||||
uFileSourceCopyInOperation,
|
||||
uFileSourceCopyOutOperation,
|
||||
uFileSystemFileSource,
|
||||
uFileSource,
|
||||
uFile;
|
||||
|
||||
type
|
||||
{
|
||||
Both operations are the same, just source and target reversed.
|
||||
Implement them in terms of the same functions,
|
||||
or have one use the other.
|
||||
}
|
||||
|
||||
TFileSystemCopyInOperation = class(TFileSourceCopyInOperation)
|
||||
|
||||
private
|
||||
FSourceFileSource: TFileSystemFileSource;
|
||||
FTargetFileSource: TFileSystemFileSource;
|
||||
FSourceFiles: TFiles;
|
||||
FTargetFiles: TFiles;
|
||||
|
||||
public
|
||||
constructor Create(SourceFileSource: TFileSystemFileSource;
|
||||
TargetFileSource: TFileSystemFileSource;
|
||||
SourceFiles: TFiles;
|
||||
TargetFiles: TFiles); reintroduce;
|
||||
|
||||
procedure Execute; override;
|
||||
|
||||
end;
|
||||
|
||||
TFileSystemCopyOutOperation = class(TFileSourceCopyOutOperation)
|
||||
|
||||
private
|
||||
FSourceFileSource: TFileSystemFileSource;
|
||||
FTargetFileSource: TFileSystemFileSource;
|
||||
FSourceFiles: TFiles;
|
||||
FTargetFiles: TFiles;
|
||||
|
||||
public
|
||||
constructor Create(SourceFileSource: TFileSystemFileSource;
|
||||
TargetFileSource: TFileSystemFileSource;
|
||||
SourceFiles: TFiles;
|
||||
TargetFiles: TFiles); reintroduce;
|
||||
|
||||
procedure Execute; override;
|
||||
|
||||
end;
|
||||
|
||||
implementation
|
||||
|
||||
// -- TFileSystemCopyInOperation ----------------------------------------------
|
||||
|
||||
constructor TFileSystemCopyInOperation.Create(SourceFileSource: TFileSystemFileSource;
|
||||
TargetFileSource: TFileSystemFileSource;
|
||||
SourceFiles: TFiles;
|
||||
TargetFiles: TFiles);
|
||||
begin
|
||||
inherited Create;
|
||||
|
||||
FSourceFileSource := SourceFileSource;
|
||||
FTargetFileSource := TargetFileSource;
|
||||
FSourceFiles := SourceFiles;
|
||||
FTargetFiles := TargetFiles;
|
||||
end;
|
||||
|
||||
procedure TFileSystemCopyInOperation.Execute;
|
||||
begin
|
||||
end;
|
||||
|
||||
// -- TFileSystemCopyOutOperation ---------------------------------------------
|
||||
|
||||
constructor TFileSystemCopyOutOperation.Create(SourceFileSource: TFileSystemFileSource;
|
||||
TargetFileSource: TFileSystemFileSource;
|
||||
SourceFiles: TFiles;
|
||||
TargetFiles: TFiles);
|
||||
begin
|
||||
inherited Create;
|
||||
|
||||
FSourceFileSource := SourceFileSource;
|
||||
FTargetFileSource := TargetFileSource;
|
||||
FSourceFiles := SourceFiles;
|
||||
FTargetFiles := TargetFiles;
|
||||
end;
|
||||
|
||||
procedure TFileSystemCopyOutOperation.Execute;
|
||||
begin
|
||||
end;
|
||||
|
||||
end.
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue