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;
|
||||
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
|
||||
SetLength(locInBuffer,ASource.Size);
|
||||
locOldPos := ASource.Position;
|
||||
@ -237,7 +241,7 @@ begin
|
||||
finally
|
||||
ASource.Position := locOldPos;
|
||||
end;
|
||||
locBuffer := FFilter.ExecuteInput(locInBuffer[0],Length(locInBuffer));
|
||||
locBuffer := FFilter.ExecuteInput(locInBuffer[0],Length(locInBuffer),FFilter.GetPropertyManager());
|
||||
end;
|
||||
ADest.Size := Length(locBuffer);
|
||||
ADest.Position := 0;
|
||||
@ -251,7 +255,7 @@ var
|
||||
locOldPos : Int64;
|
||||
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
|
||||
SetLength(locInBuffer,ASource.Size);
|
||||
locOldPos := ASource.Position;
|
||||
@ -261,7 +265,7 @@ begin
|
||||
finally
|
||||
ASource.Position := locOldPos;
|
||||
end;
|
||||
locBuffer := FFilter.ExecuteOutput(locInBuffer[0],Length(locInBuffer));
|
||||
locBuffer := FFilter.ExecuteOutput(locInBuffer[0],Length(locInBuffer),FFilter.GetPropertyManager());
|
||||
end;
|
||||
ADest.Size := Length(locBuffer);
|
||||
ADest.Position := 0;
|
||||
|
@ -28,8 +28,16 @@ type
|
||||
['{9D9886A4-37B6-4D62-BD3B-603A8EF00A13}']
|
||||
function GetPropertyManager() : IPropertyManager;
|
||||
function GetName() : string;
|
||||
function ExecuteInput(const AData; const ASize : Integer) : TByteDynArray;
|
||||
function ExecuteOutput(const AData; const ASize : Integer) : TByteDynArray;
|
||||
function ExecuteInput(
|
||||
const AData;
|
||||
const ASize : Integer;
|
||||
ADataProps : IPropertyManager
|
||||
) : TByteDynArray;
|
||||
function ExecuteOutput(
|
||||
const AData;
|
||||
const ASize : Integer;
|
||||
ADataProps : IPropertyManager
|
||||
) : TByteDynArray;
|
||||
function GetNext() : IDataFilter;
|
||||
procedure SetNext(AItem: IDataFilter);
|
||||
end;
|
||||
@ -55,13 +63,29 @@ type
|
||||
FPropertyManager : IPropertyManager;
|
||||
FNext : IDataFilter;
|
||||
protected
|
||||
function DoExecuteInput(const AData; const ASize : Integer) : TByteDynArray;virtual;abstract;
|
||||
function DoExecuteOutput(const AData; const ASize : Integer) : TByteDynArray;virtual;abstract;
|
||||
function DoExecuteInput(
|
||||
const AData;
|
||||
const ASize : Integer;
|
||||
ADataProps : IPropertyManager
|
||||
) : TByteDynArray;virtual;abstract;
|
||||
function DoExecuteOutput(
|
||||
const AData;
|
||||
const ASize : Integer;
|
||||
ADataProps : IPropertyManager
|
||||
) : TByteDynArray;virtual;abstract;
|
||||
protected
|
||||
function GetPropertyManager() : IPropertyManager;
|
||||
function GetName() : string;virtual;abstract;
|
||||
function ExecuteInput(const AData; const ASize : Integer) : TByteDynArray;
|
||||
function ExecuteOutput(const AData; const ASize : Integer) : TByteDynArray;
|
||||
function ExecuteInput(
|
||||
const AData;
|
||||
const ASize : Integer;
|
||||
ADataProps : IPropertyManager
|
||||
) : TByteDynArray;
|
||||
function ExecuteOutput(
|
||||
const AData;
|
||||
const ASize : Integer;
|
||||
ADataProps : IPropertyManager
|
||||
) : TByteDynArray;
|
||||
function GetNext() : IDataFilter;
|
||||
procedure SetNext(AItem: IDataFilter);
|
||||
public
|
||||
@ -197,30 +221,38 @@ begin
|
||||
Result := FPropertyManager;
|
||||
end;
|
||||
|
||||
function TBaseFilter.ExecuteInput(const AData; const ASize : Integer) : TByteDynArray;
|
||||
function TBaseFilter.ExecuteInput(
|
||||
const AData;
|
||||
const ASize : Integer;
|
||||
ADataProps : IPropertyManager
|
||||
) : TByteDynArray;
|
||||
var
|
||||
n : IDataFilter;
|
||||
r : TByteDynArray;
|
||||
begin
|
||||
Result := DoExecuteInput(AData,ASize);
|
||||
Result := DoExecuteInput(AData,ASize,ADataProps);
|
||||
n := GetNext();
|
||||
if (n <> nil) then begin
|
||||
r := Result;
|
||||
Result := n.ExecuteInput(r[Low(r)],Length(r));
|
||||
Result := n.ExecuteInput(r[Low(r)],Length(r),ADataProps);
|
||||
end;
|
||||
end;
|
||||
|
||||
function TBaseFilter.ExecuteOutput(const AData; const ASize : Integer) : TByteDynArray;
|
||||
function TBaseFilter.ExecuteOutput(
|
||||
const AData;
|
||||
const ASize : Integer;
|
||||
ADataProps : IPropertyManager
|
||||
) : TByteDynArray;
|
||||
var
|
||||
n : IDataFilter;
|
||||
r : TByteDynArray;
|
||||
begin
|
||||
n := GetNext();
|
||||
if (n = nil) then begin
|
||||
Result := DoExecuteOutput(AData,ASize);
|
||||
Result := DoExecuteOutput(AData,ASize,ADataProps);
|
||||
end else begin
|
||||
r := n.ExecuteOutput(AData,ASize);
|
||||
Result := DoExecuteOutput(r[Low(r)],Length(r));
|
||||
r := n.ExecuteOutput(AData,ASize,ADataProps);
|
||||
Result := DoExecuteOutput(r[Low(r)],Length(r),ADataProps);
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -238,7 +270,7 @@ end;
|
||||
constructor TBaseFilter.Create();
|
||||
begin
|
||||
inherited;
|
||||
FPropertyManager := TPublishedPropertyManager.Create(Self);
|
||||
FPropertyManager := TPublishedPropertyManager.Create(Self,True);
|
||||
end;
|
||||
|
||||
{ TDataFilterRegistry }
|
||||
|
Reference in New Issue
Block a user