You've already forked lazarus-ccr
Provide a property manager to the filters so a "Password" can be store and retrieved.
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2379 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
@ -227,7 +227,11 @@ var
|
|||||||
locOldPos : Int64;
|
locOldPos : Int64;
|
||||||
begin
|
begin
|
||||||
if ASource.InheritsFrom(TMemoryStream) then begin
|
if ASource.InheritsFrom(TMemoryStream) then begin
|
||||||
locBuffer := FFilter.ExecuteInput(TMemoryStream(ASource).Memory^,ASource.Size);
|
locBuffer := FFilter.ExecuteInput(
|
||||||
|
TMemoryStream(ASource).Memory^,
|
||||||
|
ASource.Size,
|
||||||
|
FFilter.GetPropertyManager()
|
||||||
|
);
|
||||||
end else begin
|
end else begin
|
||||||
SetLength(locInBuffer,ASource.Size);
|
SetLength(locInBuffer,ASource.Size);
|
||||||
locOldPos := ASource.Position;
|
locOldPos := ASource.Position;
|
||||||
@ -237,7 +241,7 @@ begin
|
|||||||
finally
|
finally
|
||||||
ASource.Position := locOldPos;
|
ASource.Position := locOldPos;
|
||||||
end;
|
end;
|
||||||
locBuffer := FFilter.ExecuteInput(locInBuffer[0],Length(locInBuffer));
|
locBuffer := FFilter.ExecuteInput(locInBuffer[0],Length(locInBuffer),FFilter.GetPropertyManager());
|
||||||
end;
|
end;
|
||||||
ADest.Size := Length(locBuffer);
|
ADest.Size := Length(locBuffer);
|
||||||
ADest.Position := 0;
|
ADest.Position := 0;
|
||||||
@ -251,7 +255,7 @@ var
|
|||||||
locOldPos : Int64;
|
locOldPos : Int64;
|
||||||
begin
|
begin
|
||||||
if ASource.InheritsFrom(TMemoryStream) then begin
|
if ASource.InheritsFrom(TMemoryStream) then begin
|
||||||
locBuffer := FFilter.ExecuteOutput(TMemoryStream(ASource).Memory^,ASource.Size);
|
locBuffer := FFilter.ExecuteOutput(TMemoryStream(ASource).Memory^,ASource.Size,FFilter.GetPropertyManager());
|
||||||
end else begin
|
end else begin
|
||||||
SetLength(locInBuffer,ASource.Size);
|
SetLength(locInBuffer,ASource.Size);
|
||||||
locOldPos := ASource.Position;
|
locOldPos := ASource.Position;
|
||||||
@ -261,7 +265,7 @@ begin
|
|||||||
finally
|
finally
|
||||||
ASource.Position := locOldPos;
|
ASource.Position := locOldPos;
|
||||||
end;
|
end;
|
||||||
locBuffer := FFilter.ExecuteOutput(locInBuffer[0],Length(locInBuffer));
|
locBuffer := FFilter.ExecuteOutput(locInBuffer[0],Length(locInBuffer),FFilter.GetPropertyManager());
|
||||||
end;
|
end;
|
||||||
ADest.Size := Length(locBuffer);
|
ADest.Size := Length(locBuffer);
|
||||||
ADest.Position := 0;
|
ADest.Position := 0;
|
||||||
|
@ -28,8 +28,16 @@ type
|
|||||||
['{9D9886A4-37B6-4D62-BD3B-603A8EF00A13}']
|
['{9D9886A4-37B6-4D62-BD3B-603A8EF00A13}']
|
||||||
function GetPropertyManager() : IPropertyManager;
|
function GetPropertyManager() : IPropertyManager;
|
||||||
function GetName() : string;
|
function GetName() : string;
|
||||||
function ExecuteInput(const AData; const ASize : Integer) : TByteDynArray;
|
function ExecuteInput(
|
||||||
function ExecuteOutput(const AData; const ASize : Integer) : TByteDynArray;
|
const AData;
|
||||||
|
const ASize : Integer;
|
||||||
|
ADataProps : IPropertyManager
|
||||||
|
) : TByteDynArray;
|
||||||
|
function ExecuteOutput(
|
||||||
|
const AData;
|
||||||
|
const ASize : Integer;
|
||||||
|
ADataProps : IPropertyManager
|
||||||
|
) : TByteDynArray;
|
||||||
function GetNext() : IDataFilter;
|
function GetNext() : IDataFilter;
|
||||||
procedure SetNext(AItem: IDataFilter);
|
procedure SetNext(AItem: IDataFilter);
|
||||||
end;
|
end;
|
||||||
@ -55,13 +63,29 @@ type
|
|||||||
FPropertyManager : IPropertyManager;
|
FPropertyManager : IPropertyManager;
|
||||||
FNext : IDataFilter;
|
FNext : IDataFilter;
|
||||||
protected
|
protected
|
||||||
function DoExecuteInput(const AData; const ASize : Integer) : TByteDynArray;virtual;abstract;
|
function DoExecuteInput(
|
||||||
function DoExecuteOutput(const AData; const ASize : Integer) : TByteDynArray;virtual;abstract;
|
const AData;
|
||||||
|
const ASize : Integer;
|
||||||
|
ADataProps : IPropertyManager
|
||||||
|
) : TByteDynArray;virtual;abstract;
|
||||||
|
function DoExecuteOutput(
|
||||||
|
const AData;
|
||||||
|
const ASize : Integer;
|
||||||
|
ADataProps : IPropertyManager
|
||||||
|
) : TByteDynArray;virtual;abstract;
|
||||||
protected
|
protected
|
||||||
function GetPropertyManager() : IPropertyManager;
|
function GetPropertyManager() : IPropertyManager;
|
||||||
function GetName() : string;virtual;abstract;
|
function GetName() : string;virtual;abstract;
|
||||||
function ExecuteInput(const AData; const ASize : Integer) : TByteDynArray;
|
function ExecuteInput(
|
||||||
function ExecuteOutput(const AData; const ASize : Integer) : TByteDynArray;
|
const AData;
|
||||||
|
const ASize : Integer;
|
||||||
|
ADataProps : IPropertyManager
|
||||||
|
) : TByteDynArray;
|
||||||
|
function ExecuteOutput(
|
||||||
|
const AData;
|
||||||
|
const ASize : Integer;
|
||||||
|
ADataProps : IPropertyManager
|
||||||
|
) : TByteDynArray;
|
||||||
function GetNext() : IDataFilter;
|
function GetNext() : IDataFilter;
|
||||||
procedure SetNext(AItem: IDataFilter);
|
procedure SetNext(AItem: IDataFilter);
|
||||||
public
|
public
|
||||||
@ -197,30 +221,38 @@ begin
|
|||||||
Result := FPropertyManager;
|
Result := FPropertyManager;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TBaseFilter.ExecuteInput(const AData; const ASize : Integer) : TByteDynArray;
|
function TBaseFilter.ExecuteInput(
|
||||||
|
const AData;
|
||||||
|
const ASize : Integer;
|
||||||
|
ADataProps : IPropertyManager
|
||||||
|
) : TByteDynArray;
|
||||||
var
|
var
|
||||||
n : IDataFilter;
|
n : IDataFilter;
|
||||||
r : TByteDynArray;
|
r : TByteDynArray;
|
||||||
begin
|
begin
|
||||||
Result := DoExecuteInput(AData,ASize);
|
Result := DoExecuteInput(AData,ASize,ADataProps);
|
||||||
n := GetNext();
|
n := GetNext();
|
||||||
if (n <> nil) then begin
|
if (n <> nil) then begin
|
||||||
r := Result;
|
r := Result;
|
||||||
Result := n.ExecuteInput(r[Low(r)],Length(r));
|
Result := n.ExecuteInput(r[Low(r)],Length(r),ADataProps);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TBaseFilter.ExecuteOutput(const AData; const ASize : Integer) : TByteDynArray;
|
function TBaseFilter.ExecuteOutput(
|
||||||
|
const AData;
|
||||||
|
const ASize : Integer;
|
||||||
|
ADataProps : IPropertyManager
|
||||||
|
) : TByteDynArray;
|
||||||
var
|
var
|
||||||
n : IDataFilter;
|
n : IDataFilter;
|
||||||
r : TByteDynArray;
|
r : TByteDynArray;
|
||||||
begin
|
begin
|
||||||
n := GetNext();
|
n := GetNext();
|
||||||
if (n = nil) then begin
|
if (n = nil) then begin
|
||||||
Result := DoExecuteOutput(AData,ASize);
|
Result := DoExecuteOutput(AData,ASize,ADataProps);
|
||||||
end else begin
|
end else begin
|
||||||
r := n.ExecuteOutput(AData,ASize);
|
r := n.ExecuteOutput(AData,ASize,ADataProps);
|
||||||
Result := DoExecuteOutput(r[Low(r)],Length(r));
|
Result := DoExecuteOutput(r[Low(r)],Length(r),ADataProps);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -238,7 +270,7 @@ end;
|
|||||||
constructor TBaseFilter.Create();
|
constructor TBaseFilter.Create();
|
||||||
begin
|
begin
|
||||||
inherited;
|
inherited;
|
||||||
FPropertyManager := TPublishedPropertyManager.Create(Self);
|
FPropertyManager := TPublishedPropertyManager.Create(Self,True);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{ TDataFilterRegistry }
|
{ TDataFilterRegistry }
|
||||||
|
Reference in New Issue
Block a user