* Implement flushbuffer abstract method in TFiler (bug ID 33062)

git-svn-id: trunk@38655 -
This commit is contained in:
michael 2018-04-01 07:16:34 +00:00
parent ab606d3c8d
commit a137486439
3 changed files with 28 additions and 3 deletions

View File

@ -1135,6 +1135,7 @@ type
procedure DefineBinaryProperty(const Name: string;
ReadData, WriteData: TStreamProc;
HasData: Boolean); virtual; abstract;
Procedure FlushBuffer; virtual; abstract;
property Root: TComponent read FRoot write SetRoot;
property LookupRoot: TComponent read FLookupRoot;
property Ancestor: TPersistent read FAncestor write FAncestor;
@ -1149,8 +1150,11 @@ type
{ TReader }
{ TAbstractObjectReader }
TAbstractObjectReader = class
public
Procedure FlushBuffer; virtual;
function NextValue: TValueType; virtual; abstract;
function ReadValue: TValueType; virtual; abstract;
procedure BeginRootComponent; virtual; abstract;
@ -1204,7 +1208,6 @@ type
public
constructor Create(Stream: TStream; BufSize: Integer);
destructor Destroy; override;
function NextValue: TValueType; override;
function ReadValue: TValueType; override;
procedure BeginRootComponent; override;
@ -1298,6 +1301,7 @@ type
public
constructor Create(Stream: TStream; BufSize: Integer);
destructor Destroy; override;
Procedure FlushBuffer; override;
procedure BeginReferences;
procedure CheckValue(Value: TValueType);
procedure DefineProperty(const Name: string;
@ -1360,6 +1364,8 @@ type
{ TWriter }
{ TAbstractObjectWriter }
TAbstractObjectWriter = class
public
{ Begin/End markers. Those ones who don't have an end indicator, use
@ -1374,6 +1380,7 @@ type
procedure EndList; virtual; abstract;
procedure BeginProperty(const PropName: String); virtual; abstract;
procedure EndProperty; virtual; abstract;
Procedure FlushBuffer; virtual;
//Please don't use write, better use WriteBinary whenever possible
procedure Write(const Buffer; Count: Longint); virtual;abstract;
@ -1412,13 +1419,12 @@ type
{$ifndef FPUNONE}
procedure WriteExtended(e : extended); {$ifdef CLASSESINLINE}inline;{$endif CLASSESINLINE}
{$endif}
procedure FlushBuffer;
procedure WriteValue(Value: TValueType);
public
constructor Create(Stream: TStream; BufSize: Integer);
destructor Destroy; override;
procedure WriteSignature; override;
procedure FlushBuffer; override;
procedure BeginCollection; override;
procedure BeginComponent(Component: TComponent; Flags: TFilerFlags;
ChildPos: Integer); override;

View File

@ -617,6 +617,11 @@ begin
inherited Destroy;
end;
procedure TReader.FlushBuffer;
begin
Driver.FlushBuffer;
end;
function TReader.CreateDriver(Stream: TStream; BufSize: Integer): TAbstractObjectReader;
begin
Result := TBinaryObjectReader.Create(Stream, BufSize);
@ -1758,3 +1763,10 @@ begin
end;
{ TAbstractObjectReader }
procedure TAbstractObjectReader.FlushBuffer;
begin
// Do nothing
end;

View File

@ -1288,3 +1288,10 @@ begin
Driver.WriteUnicodeString(Value);
end;
{ TAbstractObjectWriter }
procedure TAbstractObjectWriter.FlushBuffer;
begin
// Do nothing
end;