1
0
mirror of synced 2024-09-07 21:45:03 +00:00
x2utils/X2UtPersistIntf.pas

101 lines
3.0 KiB
ObjectPascal

{
:: X2UtPersistIntf declares the interfaces used for X2UtPersist.
::
:: Last changed: $Date$
:: Revision: $Rev$
:: Author: $Author$
}
unit X2UtPersistIntf;
interface
uses
Classes;
const
SectionSeparator = '.';
CollectionCountName = 'Count';
CollectionItemNamePrefix = 'Item';
type
IX2PersistFiler = interface;
IX2PersistReader = interface;
IX2PersistWriter = interface;
IX2Persist = interface
['{E490D44F-EF97-45C6-A0B1-11D592A292F5}']
function Read(AObject: TObject): Boolean;
procedure Write(AObject: TObject);
function CreateReader: IX2PersistReader;
function CreateWriter: IX2PersistWriter;
function CreateSectionReader(const ASection: String): IX2PersistReader;
function CreateSectionWriter(const ASection: String): IX2PersistWriter;
end;
IX2PersistFiler = interface
['{BF63CDAA-98D4-42EE-A937-DFCD0074A0ED}']
function BeginSection(const AName: String): Boolean;
procedure EndSection;
procedure GetKeys(const ADest: TStrings);
procedure GetSections(const ADest: TStrings);
end;
IX2PersistReader = interface(IX2PersistFiler)
['{250C0BFB-734D-438A-A692-0B4B50771D97}']
function Read(AObject: TObject): Boolean;
function ReadBoolean(const AName: String; out AValue: Boolean): Boolean;
function ReadInteger(const AName: String; out AValue: Integer): Boolean;
function ReadFloat(const AName: String; out AValue: Extended): Boolean;
function ReadString(const AName: String; out AValue: String): Boolean;
function ReadInt64(const AName: String; out AValue: Int64): Boolean;
function ReadStream(const AName: String; AStream: TStream): Boolean;
end;
IX2PersistWriter = interface(IX2PersistFiler)
['{2F8D1B01-D1EA-48D7-A727-D32A6DBA5EA3}']
procedure Write(AObject: TObject);
function WriteBoolean(const AName: String; AValue: Boolean): Boolean;
function WriteInteger(const AName: String; AValue: Integer): Boolean;
function WriteFloat(const AName: String; AValue: Extended): Boolean;
function WriteString(const AName, AValue: String): Boolean;
function WriteInt64(const AName: String; AValue: Int64): Boolean;
function WriteStream(const AName: String; AStream: TStream): Boolean;
procedure DeleteKey(const AName: String);
procedure DeleteSection(const AName: String);
end;
IX2PersistCustomData = interface
['{43E3348B-F48B-4F9B-A877-A92F8B417E0E}']
procedure Read(AReader: IX2PersistReader);
procedure Write(AWriter: IX2PersistWriter);
end;
IX2PersistReader2 = interface(IX2PersistReader)
['{50566396-7D47-4975-BD01-465366F9216F}']
function ReadVariant(const AName: String; out AValue: Variant): Boolean;
end;
IX2PersistWriter2 = interface(IX2PersistWriter)
['{AAC47A18-A5F9-47D3-AF00-A06E1779268C}']
function WriteVariant(const AName, AValue: Variant): Boolean;
end;
implementation
end.