ADD: Some templates for a few file source operations.

This commit is contained in:
cobines 2009-07-17 02:19:11 +00:00
commit ce9aeebc13
5 changed files with 245 additions and 31 deletions

View 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.

View 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.

View 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.

View file

@ -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.

View 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.