git-svn-id: https://192.168.0.254/svn/Componentes.Terceros.jcl@20 c37d764d-f447-7644-a108-883140d013fb
4528 lines
187 KiB
ObjectPascal
4528 lines
187 KiB
ObjectPascal
{**************************************************************************************************}
|
|
{ WARNING: JEDI preprocessor generated unit. Do not edit. }
|
|
{**************************************************************************************************}
|
|
|
|
{**************************************************************************************************}
|
|
{ }
|
|
{ Project JEDI Code Library (JCL) }
|
|
{ }
|
|
{ The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); }
|
|
{ you may not use this file except in compliance with the License. You may obtain a copy of the }
|
|
{ License at http://www.mozilla.org/MPL/ }
|
|
{ }
|
|
{ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF }
|
|
{ ANY KIND, either express or implied. See the License for the specific language governing rights }
|
|
{ and limitations under the License. }
|
|
{ }
|
|
{ The Original Code is DCL_intf.pas. }
|
|
{ }
|
|
{ The Initial Developer of the Original Code is Jean-Philippe BEMPEL aka RDM. Portions created by }
|
|
{ Jean-Philippe BEMPEL are Copyright (C) Jean-Philippe BEMPEL (rdm_30 att yahoo dott com) }
|
|
{ All rights reserved. }
|
|
{ }
|
|
{ Contributors: }
|
|
{ Robert Marquardt (marquardt) }
|
|
{ Robert Rossmair (rrossmair) }
|
|
{ Florent Ouchet (outchy) }
|
|
{ }
|
|
{**************************************************************************************************}
|
|
{ }
|
|
{ The Delphi Container Library }
|
|
{ }
|
|
{**************************************************************************************************}
|
|
{ }
|
|
{ Last modified: $Date:: 2009-08-10 19:54:31 +0200 (lun., 10 août 2009) $ }
|
|
{ Revision: $Rev:: 2940 $ }
|
|
{ Author: $Author:: outchy $ }
|
|
{ }
|
|
{**************************************************************************************************}
|
|
|
|
unit JclContainerIntf;
|
|
|
|
{$I jcl.inc}
|
|
|
|
interface
|
|
|
|
uses
|
|
{$IFDEF UNITVERSIONING}
|
|
JclUnitVersioning,
|
|
{$ENDIF UNITVERSIONING}
|
|
Classes,
|
|
JclBase,
|
|
JclAnsiStrings,
|
|
JclWideStrings;
|
|
|
|
{$IFDEF BCB6}
|
|
{$DEFINE BUGGY_DEFAULT_INDEXED_PROP}
|
|
{$ENDIF BCB6}
|
|
{$IFDEF BCB10}
|
|
{$DEFINE BUGGY_DEFAULT_INDEXED_PROP}
|
|
{$ENDIF BCB10}
|
|
{$IFDEF BCB11}
|
|
{$DEFINE BUGGY_DEFAULT_INDEXED_PROP}
|
|
{$ENDIF BCB11}
|
|
|
|
const
|
|
DefaultContainerCapacity = 16;
|
|
|
|
type
|
|
// function pointer types
|
|
|
|
// apply functions Type -> Type
|
|
TIntfApplyFunction = function(const AInterface: IInterface): IInterface;
|
|
TAnsiStrApplyFunction = function(const AString: AnsiString): AnsiString;
|
|
TWideStrApplyFunction = function(const AString: WideString): WideString;
|
|
{$IFDEF SUPPORTS_UNICODE_STRING}
|
|
TUnicodeStrApplyFunction = function(const AString: UnicodeString): UnicodeString;
|
|
{$ENDIF SUPPORTS_UNICODE_STRING}
|
|
{$IFDEF CONTAINER_ANSISTR}
|
|
TStrApplyFunction = TAnsiStrApplyFunction;
|
|
{$ENDIF CONTAINER_ANSISTR}
|
|
{$IFDEF CONTAINER_WIDESTR}
|
|
TStrApplyFunction = TWideStrApplyFunction;
|
|
{$ENDIF CONTAINER_WIDESTR}
|
|
{$IFDEF CONTAINER_UNICODESTR}
|
|
TStrApplyFunction = TUnicodeStrApplyFunction;
|
|
{$ENDIF CONTAINER_UNICODESTR}
|
|
TSingleApplyFunction = function(const AValue: Single): Single;
|
|
TDoubleApplyFunction = function(const AValue: Double): Double;
|
|
TExtendedApplyFunction = function(const AValue: Extended): Extended;
|
|
{$IFDEF MATH_SINGLE_PRECISION}
|
|
TFloatApplyFunction = TSingleApplyFunction;
|
|
{$ENDIF MATH_SINGLE_PRECISION}
|
|
{$IFDEF MATH_DOUBLE_PRECISION}
|
|
TFloatApplyFunction = TDoubleApplyFunction;
|
|
{$ENDIF MATH_DOUBLE_PRECISION}
|
|
{$IFDEF MATH_EXTENDED_PRECISION}
|
|
TFloatApplyFunction = TExtendedApplyFunction;
|
|
{$ENDIF MATH_EXTENDED_PRECISION}
|
|
TIntegerApplyFunction = function(AValue: Integer): Integer;
|
|
TCardinalApplyFunction = function(AValue: Cardinal): Cardinal;
|
|
TInt64ApplyFunction = function(const AValue: Int64): Int64;
|
|
TPtrApplyFunction = function(APtr: Pointer): Pointer;
|
|
TApplyFunction = function(AObject: TObject): TObject;
|
|
{$IFDEF SUPPORTS_GENERICS}
|
|
TApplyFunction<T> = function(const AItem: T): T;
|
|
{$ENDIF SUPPORTS_GENERICS}
|
|
|
|
// comparison functions Type -> Type -> Integer
|
|
TIntfCompare = function(const Obj1, Obj2: IInterface): Integer;
|
|
TAnsiStrCompare = function(const Obj1, Obj2: AnsiString): Integer;
|
|
TWideStrCompare = function(const Obj1, Obj2: WideString): Integer;
|
|
{$IFDEF SUPPORTS_UNICODE_STRING}
|
|
TUnicodeStrCompare = function(const Obj1, Obj2: UnicodeString): Integer;
|
|
{$ENDIF SUPPORTS_UNICODE_STRING}
|
|
{$IFDEF CONTAINER_ANSISTR}
|
|
TStrCompare = TAnsiStrCompare;
|
|
{$ENDIF CONTAINER_ANSISTR}
|
|
{$IFDEF CONTAINER_WIDESTR}
|
|
TStrCompare = TWideStrCompare;
|
|
{$ENDIF CONTAINER_WIDESTR}
|
|
{$IFDEF CONTAINER_UNICODESTR}
|
|
TStrCompare = TUnicodeStrCompare;
|
|
{$ENDIF CONTAINER_UNICODESTR}
|
|
TSingleCompare = function(const Obj1, Obj2: Single): Integer;
|
|
TDoubleCompare = function(const Obj1, Obj2: Double): Integer;
|
|
TExtendedCompare = function(const Obj1, Obj2: Extended): Integer;
|
|
{$IFDEF MATH_SINGLE_PRECISION}
|
|
TFloatCompare = TSingleCompare;
|
|
{$ENDIF MATH_SINGLE_PRECISION}
|
|
{$IFDEF MATH_DOUBLE_PRECISION}
|
|
TFloatCompare = TDoubleCompare;
|
|
{$ENDIF MATH_DOUBLE_PRECISION}
|
|
{$IFDEF MATH_EXTENDED_PRECISION}
|
|
TFloatCompare = TExtendedCompare;
|
|
{$ENDIF MATH_EXTENDED_PRECISION}
|
|
TIntegerCompare = function(Obj1, Obj2: Integer): Integer;
|
|
TCardinalCompare = function(Obj1, Obj2: Cardinal): Integer;
|
|
TInt64Compare = function(Obj1, Obj2: Int64): Integer;
|
|
TPtrCompare = function(Obj1, Obj2: Pointer): Integer;
|
|
TCompare = function(Obj1, Obj2: TObject): Integer;
|
|
{$IFDEF SUPPORTS_GENERICS}
|
|
TCompare<T> = function(const Obj1, Obj2: T): Integer;
|
|
{$ENDIF SUPPORTS_GENERICS}
|
|
|
|
// comparison for equality functions Type -> Type -> Boolean
|
|
TIntfEqualityCompare = function(const Obj1, Obj2: IInterface): Boolean;
|
|
TAnsiStrEqualityCompare = function(const Obj1, Obj2: AnsiString): Boolean;
|
|
TWideStrEqualityCompare = function(const Obj1, Obj2: WideString): Boolean;
|
|
{$IFDEF SUPPORTS_UNICODE_STRING}
|
|
TUnicodeStrEqualityCompare = function(const Obj1, Obj2: UnicodeString): Boolean;
|
|
{$ENDIF SUPPORTS_UNICODE_STRING}
|
|
{$IFDEF CONTAINER_ANSISTR}
|
|
TStrEqualityCompare = TAnsiStrEqualityCompare;
|
|
{$ENDIF CONTAINER_ANSISTR}
|
|
{$IFDEF CONTAINER_WIDESTR}
|
|
TStrEqualityCompare = TWideStrEqualityCompare;
|
|
{$ENDIF CONTAINER_WIDESTR}
|
|
{$IFDEF CONTAINER_UNICODESTR}
|
|
TStrEqualityCompare = TUnicodeStrEqualityCompare;
|
|
{$ENDIF CONTAINER_UNICODESTR}
|
|
TSingleEqualityCompare = function(const Obj1, Obj2: Single): Boolean;
|
|
TDoubleEqualityCompare = function(const Obj1, Obj2: Double): Boolean;
|
|
TExtendedEqualityCompare = function(const Obj1, Obj2: Extended): Boolean;
|
|
{$IFDEF MATH_SINGLE_PRECISION}
|
|
TFloatEqualityCompare = TSingleEqualityCompare;
|
|
{$ENDIF MATH_SINGLE_PRECISION}
|
|
{$IFDEF MATH_DOUBLE_PRECISION}
|
|
TFloatEqualityCompare = TDoubleEqualityCompare;
|
|
{$ENDIF MATH_DOUBLE_PRECISION}
|
|
{$IFDEF MATH_EXTENDED_PRECISION}
|
|
TFloatEqualityCompare = TExtendedEqualityCompare;
|
|
{$ENDIF MATH_EXTENDED_PRECISION}
|
|
TIntegerEqualityCompare = function(Obj1, Obj2: Integer): Boolean;
|
|
TCardinalEqualityCompare = function(Obj1, Obj2: Cardinal): Boolean;
|
|
TInt64EqualityCompare = function(const Obj1, Obj2: Int64): Boolean;
|
|
TPtrEqualityCompare = function(Obj1, Obj2: Pointer): Boolean;
|
|
TEqualityCompare = function(Obj1, Obj2: TObject): Boolean;
|
|
{$IFDEF SUPPORTS_GENERICS}
|
|
TEqualityCompare<T> = function(const Obj1, Obj2: T): Boolean;
|
|
{$ENDIF SUPPORTS_GENERICS}
|
|
|
|
// hash functions Type -> Integer
|
|
TIntfHashConvert = function(const AInterface: IInterface): Integer;
|
|
TAnsiStrHashConvert = function(const AString: AnsiString): Integer;
|
|
TWideStrHashConvert = function(const AString: WideString): Integer;
|
|
{$IFDEF SUPPORTS_UNICODE_STRING}
|
|
TUnicodeStrHashConvert = function(const AString: UnicodeString): Integer;
|
|
{$ENDIF SUPPORTS_UNICODE_STRING}
|
|
{$IFDEF CONTAINER_ANSISTR}
|
|
TStrHashConvert = TAnsiStrHashConvert;
|
|
{$ENDIF CONTAINER_ANSISTR}
|
|
{$IFDEF CONTAINER_WIDESTR}
|
|
TStrHashConvert = TWideStrHashConvert;
|
|
{$ENDIF CONTAINER_WIDESTR}
|
|
{$IFDEF CONTAINER_UNICODESTR}
|
|
TStrHashConvert = TUnicodeStrHashConvert;
|
|
{$ENDIF CONTAINER_UNICODESTR}
|
|
TSingleHashConvert = function(const AValue: Single): Integer;
|
|
TDoubleHashConvert = function(const AValue: Double): Integer;
|
|
TExtendedHashConvert = function(const AValue: Extended): Integer;
|
|
{$IFDEF MATH_SINGLE_PRECISION}
|
|
TFloatHashConvert = TSingleHashConvert;
|
|
{$ENDIF MATH_SINGLE_PRECISION}
|
|
{$IFDEF MATH_DOUBLE_PRECISION}
|
|
TFloatHashConvert = TDoubleHashConvert;
|
|
{$ENDIF MATH_DOUBLE_PRECISION}
|
|
{$IFDEF MATH_EXTENDED_PRECISION}
|
|
TFloatHashConvert = TExtendedHashConvert;
|
|
{$ENDIF MATH_EXTENDED_PRECISION}
|
|
TIntegerHashConvert = function(AValue: Integer): Integer;
|
|
TCardinalHashConvert = function(AValue: Cardinal): Integer;
|
|
TInt64HashConvert = function(const AValue: Int64): Integer;
|
|
TPtrHashConvert = function(APtr: Pointer): Integer;
|
|
THashConvert = function(AObject: TObject): Integer;
|
|
{$IFDEF SUPPORTS_GENERICS}
|
|
THashConvert<T> = function(const AItem: T): Integer;
|
|
{$ENDIF SUPPORTS_GENERICS}
|
|
|
|
IJclLockable = interface
|
|
['{524AD65E-AE1B-4BC6-91C8-8181F0198BA9}']
|
|
procedure ReadLock;
|
|
procedure ReadUnlock;
|
|
procedure WriteLock;
|
|
procedure WriteUnlock;
|
|
end;
|
|
|
|
IJclAbstractIterator = interface{$IFDEF THREADSAFE}(IJclLockable){$ENDIF THREADSAFE}
|
|
['{1064D0B4-D9FC-475D-88BE-520490013B46}']
|
|
procedure Assign(const Source: IJclAbstractIterator);
|
|
procedure AssignTo(const Dest: IJclAbstractIterator);
|
|
function GetIteratorReference: TObject;
|
|
end;
|
|
|
|
IJclContainer = interface{$IFDEF THREADSAFE}(IJclLockable){$ENDIF THREADSAFE}
|
|
['{C517175A-028E-486A-BF27-5EF7FC3101D9}']
|
|
procedure Assign(const Source: IJclContainer);
|
|
procedure AssignTo(const Dest: IJclContainer);
|
|
function GetAllowDefaultElements: Boolean;
|
|
function GetContainerReference: TObject;
|
|
function GetDuplicates: TDuplicates;
|
|
function GetReadOnly: Boolean;
|
|
function GetRemoveSingleElement: Boolean;
|
|
function GetReturnDefaultElements: Boolean;
|
|
function GetThreadSafe: Boolean;
|
|
procedure SetAllowDefaultElements(Value: Boolean);
|
|
procedure SetDuplicates(Value: TDuplicates);
|
|
procedure SetReadOnly(Value: Boolean);
|
|
procedure SetRemoveSingleElement(Value: Boolean);
|
|
procedure SetReturnDefaultElements(Value: Boolean);
|
|
procedure SetThreadSafe(Value: Boolean);
|
|
property AllowDefaultElements: Boolean read GetAllowDefaultElements write SetAllowDefaultElements;
|
|
property Duplicates: TDuplicates read GetDuplicates write SetDuplicates;
|
|
property ReadOnly: Boolean read GetReadOnly write SetReadOnly;
|
|
property RemoveSingleElement: Boolean read GetRemoveSingleElement write SetRemoveSingleElement;
|
|
property ReturnDefaultElements: Boolean read GetReturnDefaultElements write SetReturnDefaultElements;
|
|
property ThreadSafe: Boolean read GetThreadSafe write SetThreadSafe;
|
|
end;
|
|
|
|
IJclStrContainer = interface(IJclContainer)
|
|
['{9753E1D7-F093-4D5C-8B32-40403F6F700E}']
|
|
function GetCaseSensitive: Boolean;
|
|
procedure SetCaseSensitive(Value: Boolean);
|
|
property CaseSensitive: Boolean read GetCaseSensitive write SetCaseSensitive;
|
|
end;
|
|
|
|
TJclAnsiStrEncoding = (seISO, seUTF8);
|
|
|
|
IJclAnsiStrContainer = interface(IJclStrContainer)
|
|
['{F8239357-B96F-46F1-A48E-B5DF25B5F1FA}']
|
|
function GetEncoding: TJclAnsiStrEncoding;
|
|
procedure SetEncoding(Value: TJclAnsiStrEncoding);
|
|
property Encoding: TJclAnsiStrEncoding read GetEncoding write SetEncoding;
|
|
end;
|
|
|
|
IJclAnsiStrFlatContainer = interface(IJclAnsiStrContainer)
|
|
['{8A45A4D4-6317-4CDF-8314-C3E5CC6899F4}']
|
|
procedure LoadFromStrings(Strings: TJclAnsiStrings);
|
|
procedure SaveToStrings(Strings: TJclAnsiStrings);
|
|
procedure AppendToStrings(Strings: TJclAnsiStrings);
|
|
procedure AppendFromStrings(Strings: TJclAnsiStrings);
|
|
function GetAsStrings: TJclAnsiStrings;
|
|
function GetAsDelimited(const Separator: AnsiString = AnsiLineBreak): AnsiString;
|
|
procedure AppendDelimited(const AString: AnsiString; const Separator: AnsiString = AnsiLineBreak);
|
|
procedure LoadDelimited(const AString: AnsiString; const Separator: AnsiString = AnsiLineBreak);
|
|
end;
|
|
|
|
TJclWideStrEncoding = (seUTF16);
|
|
|
|
IJclWideStrContainer = interface(IJclStrContainer)
|
|
['{875E1AC4-CA22-46BC-8999-048E5B9BF11D}']
|
|
function GetEncoding: TJclWideStrEncoding;
|
|
procedure SetEncoding(Value: TJclWideStrEncoding);
|
|
property Encoding: TJclWideStrEncoding read GetEncoding write SetEncoding;
|
|
end;
|
|
|
|
IJclWideStrFlatContainer = interface(IJclWideStrContainer)
|
|
['{5B001B93-CA1C-47A8-98B8-451CCB444930}']
|
|
procedure LoadFromStrings(Strings: TJclWideStrings);
|
|
procedure SaveToStrings(Strings: TJclWideStrings);
|
|
procedure AppendToStrings(Strings: TJclWideStrings);
|
|
procedure AppendFromStrings(Strings: TJclWideStrings);
|
|
function GetAsStrings: TJclWideStrings;
|
|
function GetAsDelimited(const Separator: WideString = WideLineBreak): WideString;
|
|
procedure AppendDelimited(const AString: WideString; const Separator: WideString = WideLineBreak);
|
|
procedure LoadDelimited(const AString: WideString; const Separator: WideString = WideLineBreak);
|
|
end;
|
|
|
|
{$IFDEF SUPPORTS_UNICODE_STRING}
|
|
IJclUnicodeStrContainer = interface(IJclStrContainer)
|
|
['{619BA29F-5E05-464D-B472-1C8453DBC707}']
|
|
end;
|
|
|
|
IJclUnicodeStrFlatContainer = interface(IJclUnicodeStrContainer)
|
|
['{3343D73E-4ADC-458E-8289-A4B83D1479D1}']
|
|
procedure LoadFromStrings(Strings: TJclUnicodeStrings);
|
|
procedure SaveToStrings(Strings: TJclUnicodeStrings);
|
|
procedure AppendToStrings(Strings: TJclUnicodeStrings);
|
|
procedure AppendFromStrings(Strings: TJclUnicodeStrings);
|
|
function GetAsStrings: TJclUnicodeStrings;
|
|
function GetAsDelimited(const Separator: UnicodeString = WideLineBreak): UnicodeString;
|
|
procedure AppendDelimited(const AString: UnicodeString; const Separator: UnicodeString = WideLineBreak);
|
|
procedure LoadDelimited(const AString: UnicodeString; const Separator: UnicodeString = WideLineBreak);
|
|
end;
|
|
{$ENDIF SUPPORTS_UNICODE_STRING}
|
|
|
|
IJclSingleContainer = interface(IJclContainer)
|
|
['{22BE88BD-87D1-4B4D-9FAB-F1B6D555C6A9}']
|
|
function GetPrecision: Single;
|
|
procedure SetPrecision(const Value: Single);
|
|
property Precision: Single read GetPrecision write SetPrecision;
|
|
end;
|
|
|
|
IJclDoubleContainer = interface(IJclContainer)
|
|
['{372B9354-DF6D-4CAA-A5A9-C50E1FEE5525}']
|
|
function GetPrecision: Double;
|
|
procedure SetPrecision(const Value: Double);
|
|
property Precision: Double read GetPrecision write SetPrecision;
|
|
end;
|
|
|
|
IJclExtendedContainer = interface(IJclContainer)
|
|
['{431A6482-FD5C-45A7-BE53-339A3CF75AC9}']
|
|
function GetPrecision: Extended;
|
|
procedure SetPrecision(const Value: Extended);
|
|
property Precision: Extended read GetPrecision write SetPrecision;
|
|
end;
|
|
|
|
{$IFDEF MATH_EXTENDED_PRECISION}
|
|
IJclFloatContainer = IJclExtendedContainer;
|
|
{$ENDIF MATH_EXTENDED_PRECISION}
|
|
{$IFDEF MATH_DOUBLE_PRECISION}
|
|
IJclFloatContainer = IJclDoubleContainer;
|
|
{$ENDIF MATH_DOUBLE_PRECISION}
|
|
{$IFDEF MATH_SINGLE_PRECISION}
|
|
IJclFloatContainer = IJclSingleContainer;
|
|
{$ENDIF MATH_SINGLE_PRECISION}
|
|
|
|
IJclIntfEqualityComparer = interface
|
|
['{5CC2DF51-BE56-4D02-A171-31BAAC097632}']
|
|
function GetEqualityCompare: TIntfEqualityCompare;
|
|
procedure SetEqualityCompare(Value: TIntfEqualityCompare);
|
|
function ItemsEqual(const A, B: IInterface): Boolean;
|
|
property EqualityCompare: TIntfEqualityCompare read GetEqualityCompare write SetEqualityCompare;
|
|
end;
|
|
|
|
IJclAnsiStrEqualityComparer = interface
|
|
['{E3DB9016-F0D0-4CE0-B156-4C5DCA47FD3B}']
|
|
function GetEqualityCompare: TAnsiStrEqualityCompare;
|
|
procedure SetEqualityCompare(Value: TAnsiStrEqualityCompare);
|
|
function ItemsEqual(const A, B: AnsiString): Boolean;
|
|
property EqualityCompare: TAnsiStrEqualityCompare read GetEqualityCompare write SetEqualityCompare;
|
|
end;
|
|
|
|
IJclWideStrEqualityComparer = interface
|
|
['{2E5696C9-8374-4347-9DC9-B3722F47F5FB}']
|
|
function GetEqualityCompare: TWideStrEqualityCompare;
|
|
procedure SetEqualityCompare(Value: TWideStrEqualityCompare);
|
|
function ItemsEqual(const A, B: WideString): Boolean;
|
|
property EqualityCompare: TWideStrEqualityCompare read GetEqualityCompare write SetEqualityCompare;
|
|
end;
|
|
|
|
{$IFDEF SUPPORTS_UNICODE_STRING}
|
|
IJclUnicodeStrEqualityComparer = interface
|
|
['{EDFCC1C7-79DB-4F58-BD64-5016B44EEAC0}']
|
|
function GetEqualityCompare: TUnicodeStrEqualityCompare;
|
|
procedure SetEqualityCompare(Value: TUnicodeStrEqualityCompare);
|
|
function ItemsEqual(const A, B: UnicodeString): Boolean;
|
|
property EqualityCompare: TUnicodeStrEqualityCompare read GetEqualityCompare write SetEqualityCompare;
|
|
end;
|
|
{$ENDIF SUPPORTS_UNICODE_STRING}
|
|
|
|
{$IFDEF CONTAINER_ANSISTR}
|
|
IJclStrEqualityComparer = IJclAnsiStrEqualityComparer;
|
|
{$ENDIF CONTAINER_ANSISTR}
|
|
{$IFDEF CONTAINER_WIDESTR}
|
|
IJclStrEqualityComparer = IJclWideStrEqualityComparer;
|
|
{$ENDIF CONTAINER_WIDESTR}
|
|
{$IFDEF CONTAINER_UNICODESTR}
|
|
IJclStrEqualityComparer = IJclUnicodeStrEqualityComparer;
|
|
{$ENDIF CONTAINER_UNICODESTR}
|
|
|
|
IJclSingleEqualityComparer = interface
|
|
['{4835BC5B-1A87-4864-BFE1-778F3BAF26B1}']
|
|
function GetEqualityCompare: TSingleEqualityCompare;
|
|
procedure SetEqualityCompare(Value: TSingleEqualityCompare);
|
|
function ItemsEqual(const A, B: Single): Boolean;
|
|
property EqualityCompare: TSingleEqualityCompare read GetEqualityCompare write SetEqualityCompare;
|
|
end;
|
|
|
|
IJclDoubleEqualityComparer = interface
|
|
['{15F0A9F0-D5DC-4978-8CDB-53B6E510262C}']
|
|
function GetEqualityCompare: TDoubleEqualityCompare;
|
|
procedure SetEqualityCompare(Value: TDoubleEqualityCompare);
|
|
function ItemsEqual(const A, B: Double): Boolean;
|
|
property EqualityCompare: TDoubleEqualityCompare read GetEqualityCompare write SetEqualityCompare;
|
|
end;
|
|
|
|
IJclExtendedEqualityComparer = interface
|
|
['{149883D5-4138-4570-8C5C-99F186B7E646}']
|
|
function GetEqualityCompare: TExtendedEqualityCompare;
|
|
procedure SetEqualityCompare(Value: TExtendedEqualityCompare);
|
|
function ItemsEqual(const A, B: Extended): Boolean;
|
|
property EqualityCompare: TExtendedEqualityCompare read GetEqualityCompare write SetEqualityCompare;
|
|
end;
|
|
|
|
{$IFDEF MATH_EXTENDED_PRECISION}
|
|
IJclFloatEqualityComparer = IJclExtendedEqualityComparer;
|
|
{$ENDIF MATH_EXTENDED_PRECISION}
|
|
{$IFDEF MATH_DOUBLE_PRECISION}
|
|
IJclFloatEqualityComparer = IJclDoubleEqualityComparer;
|
|
{$ENDIF MATH_DOUBLE_PRECISION}
|
|
{$IFDEF MATH_SINGLE_PRECISION}
|
|
IJclFloatEqualityComparer = IJclSingleEqualityComparer;
|
|
{$ENDIF MATH_SINGLE_PRECISION}
|
|
|
|
IJclIntegerEqualityComparer = interface
|
|
['{AABC35E6-A779-4A44-B748-27BFCB34FDFB}']
|
|
function GetEqualityCompare: TIntegerEqualityCompare;
|
|
procedure SetEqualityCompare(Value: TIntegerEqualityCompare);
|
|
function ItemsEqual(A, B: Integer): Boolean;
|
|
property EqualityCompare: TIntegerEqualityCompare read GetEqualityCompare write SetEqualityCompare;
|
|
end;
|
|
|
|
IJclCardinalEqualityComparer = interface
|
|
['{B2DECF81-6ECE-4D9F-80E1-C8C884DB407C}']
|
|
function GetEqualityCompare: TCardinalEqualityCompare;
|
|
procedure SetEqualityCompare(Value: TCardinalEqualityCompare);
|
|
function ItemsEqual(A, B: Cardinal): Boolean;
|
|
property EqualityCompare: TCardinalEqualityCompare read GetEqualityCompare write SetEqualityCompare;
|
|
end;
|
|
|
|
IJclInt64EqualityComparer = interface
|
|
['{8B2825E2-0C81-42BA-AC0D-104344CE7E56}']
|
|
function GetEqualityCompare: TInt64EqualityCompare;
|
|
procedure SetEqualityCompare(Value: TInt64EqualityCompare);
|
|
function ItemsEqual(const A, B: Int64): Boolean;
|
|
property EqualityCompare: TInt64EqualityCompare read GetEqualityCompare write SetEqualityCompare;
|
|
end;
|
|
|
|
IJclPtrEqualityComparer = interface
|
|
['{C6B7CBF9-ECD9-4D70-85CC-4E2367A1D806}']
|
|
function GetEqualityCompare: TPtrEqualityCompare;
|
|
procedure SetEqualityCompare(Value: TPtrEqualityCompare);
|
|
function ItemsEqual(A, B: Pointer): Boolean;
|
|
property EqualityCompare: TPtrEqualityCompare read GetEqualityCompare write SetEqualityCompare;
|
|
end;
|
|
|
|
IJclEqualityComparer = interface
|
|
['{82C67986-8365-44AB-8D56-7B0CF4F6B918}']
|
|
function GetEqualityCompare: TEqualityCompare;
|
|
procedure SetEqualityCompare(Value: TEqualityCompare);
|
|
function ItemsEqual(A, B: TObject): Boolean;
|
|
property EqualityCompare: TEqualityCompare read GetEqualityCompare write SetEqualityCompare;
|
|
end;
|
|
|
|
{$IFDEF SUPPORTS_GENERICS}
|
|
IJclEqualityComparer<T> = interface
|
|
['{4AF79AD6-D9F4-424B-BEAA-68857F9222B4}']
|
|
function GetEqualityCompare: TEqualityCompare<T>;
|
|
procedure SetEqualityCompare(Value: TEqualityCompare<T>);
|
|
function ItemsEqual(const A, B: T): Boolean;
|
|
property EqualityCompare: TEqualityCompare<T> read GetEqualityCompare write SetEqualityCompare;
|
|
end;
|
|
{$ENDIF SUPPORTS_GENERICS}
|
|
|
|
IJclIntfComparer = interface
|
|
['{EB41B843-184B-420D-B5DA-27D055B4CD55}']
|
|
function GetCompare: TIntfCompare;
|
|
procedure SetCompare(Value: TIntfCompare);
|
|
function ItemsCompare(const A, B: IInterface): Integer;
|
|
property Compare: TIntfCompare read GetCompare write SetCompare;
|
|
end;
|
|
|
|
IJclAnsiStrComparer = interface
|
|
['{09063CBB-9226-4734-B2A0-A178C2343176}']
|
|
function GetCompare: TAnsiStrCompare;
|
|
procedure SetCompare(Value: TAnsiStrCompare);
|
|
function ItemsCompare(const A, B: AnsiString): Integer;
|
|
property Compare: TAnsiStrCompare read GetCompare write SetCompare;
|
|
end;
|
|
|
|
IJclWideStrComparer = interface
|
|
['{7A24AEDA-25B1-4E73-B2E9-5D74011E4C9C}']
|
|
function GetCompare: TWideStrCompare;
|
|
procedure SetCompare(Value: TWideStrCompare);
|
|
function ItemsCompare(const A, B: WideString): Integer;
|
|
property Compare: TWideStrCompare read GetCompare write SetCompare;
|
|
end;
|
|
|
|
{$IFDEF SUPPORTS_UNICODE_STRING}
|
|
IJclUnicodeStrComparer = interface
|
|
['{E81E2705-0CA0-4DBD-BECC-5F9AA623A6E4}']
|
|
function GetCompare: TUnicodeStrCompare;
|
|
procedure SetCompare(Value: TUnicodeStrCompare);
|
|
function ItemsCompare(const A, B: UnicodeString): Integer;
|
|
property Compare: TUnicodeStrCompare read GetCompare write SetCompare;
|
|
end;
|
|
{$ENDIF SUPPORTS_UNICODE_STRING}
|
|
|
|
{$IFDEF CONTAINER_ANSISTR}
|
|
IJclStrComparer = IJclAnsiStrComparer;
|
|
{$ENDIF CONTAINER_ANSISTR}
|
|
{$IFDEF CONTAINER_WIDESTR}
|
|
IJclStrComparer = IJclWideStrComparer;
|
|
{$ENDIF CONTAINER_WIDESTR}
|
|
{$IFDEF CONTAINER_UNICODESTR}
|
|
IJclStrComparer = IJclUnicodeStrComparer;
|
|
{$ENDIF CONTAINER_UNICODESTR}
|
|
|
|
IJclSingleComparer = interface
|
|
['{008225CE-075E-4450-B9DE-9863CB6D347C}']
|
|
function GetCompare: TSingleCompare;
|
|
procedure SetCompare(Value: TSingleCompare);
|
|
function ItemsCompare(const A, B: Single): Integer;
|
|
property Compare: TSingleCompare read GetCompare write SetCompare;
|
|
end;
|
|
|
|
IJclDoubleComparer = interface
|
|
['{BC245D7F-7EB9-43D0-81B4-EE215486A5AA}']
|
|
function GetCompare: TDoubleCompare;
|
|
procedure SetCompare(Value: TDoubleCompare);
|
|
function ItemsCompare(const A, B: Double): Integer;
|
|
property Compare: TDoubleCompare read GetCompare write SetCompare;
|
|
end;
|
|
|
|
IJclExtendedComparer = interface
|
|
['{92657C66-C18D-4BF8-A538-A3B0140320BB}']
|
|
function GetCompare: TExtendedCompare;
|
|
procedure SetCompare(Value: TExtendedCompare);
|
|
function ItemsCompare(const A, B: Extended): Integer;
|
|
property Compare: TExtendedCompare read GetCompare write SetCompare;
|
|
end;
|
|
|
|
{$IFDEF MATH_EXTENDED_PRECISION}
|
|
IJclFloatComparer = IJclExtendedComparer;
|
|
{$ENDIF MATH_EXTENDED_PRECISION}
|
|
{$IFDEF MATH_DOUBLE_PRECISION}
|
|
IJclFloatComparer = IJclDoubleComparer;
|
|
{$ENDIF MATH_DOUBLE_PRECISION}
|
|
{$IFDEF MATH_SINGLE_PRECISION}
|
|
IJclFloatComparer = IJclSingleComparer;
|
|
{$ENDIF MATH_SINGLE_PRECISION}
|
|
|
|
IJclIntegerComparer = interface
|
|
['{362C3A6A-CBC1-4D5F-8652-158913DC9865}']
|
|
function GetCompare: TIntegerCompare;
|
|
procedure SetCompare(Value: TIntegerCompare);
|
|
function ItemsCompare(A, B: Integer): Integer;
|
|
property Compare: TIntegerCompare read GetCompare write SetCompare;
|
|
end;
|
|
|
|
IJclCardinalComparer = interface
|
|
['{56E44725-00B9-4530-8CC2-72DCA9171EE0}']
|
|
function GetCompare: TCardinalCompare;
|
|
procedure SetCompare(Value: TCardinalCompare);
|
|
function ItemsCompare(A, B: Cardinal): Integer;
|
|
property Compare: TCardinalCompare read GetCompare write SetCompare;
|
|
end;
|
|
|
|
IJclInt64Comparer = interface
|
|
['{87C935BF-3A42-4F1F-A474-9C823939EE1C}']
|
|
function GetCompare: TInt64Compare;
|
|
procedure SetCompare(Value: TInt64Compare);
|
|
function ItemsCompare(const A, B: Int64): Integer;
|
|
property Compare: TInt64Compare read GetCompare write SetCompare;
|
|
end;
|
|
|
|
IJclPtrComparer = interface
|
|
['{85557D4C-A036-477E-BA73-B5EEF43A8696}']
|
|
function GetCompare: TPtrCompare;
|
|
procedure SetCompare(Value: TPtrCompare);
|
|
function ItemsCompare(A, B: Pointer): Integer;
|
|
property Compare: TPtrCompare read GetCompare write SetCompare;
|
|
end;
|
|
|
|
IJclComparer = interface
|
|
['{7B376028-56DC-4C4A-86A9-1AC19E3EDF75}']
|
|
function GetCompare: TCompare;
|
|
procedure SetCompare(Value: TCompare);
|
|
function ItemsCompare(A, B: TObject): Integer;
|
|
property Compare: TCompare read GetCompare write SetCompare;
|
|
end;
|
|
|
|
{$IFDEF SUPPORTS_GENERICS}
|
|
IJclComparer<T> = interface
|
|
['{830AFC8C-AA06-46F5-AABD-8EB46B2A9986}']
|
|
function GetCompare: TCompare<T>;
|
|
procedure SetCompare(Value: TCompare<T>);
|
|
function ItemsCompare(const A, B: T): Integer;
|
|
property Compare: TCompare<T> read GetCompare write SetCompare;
|
|
end;
|
|
{$ENDIF SUPPORTS_GENERICS}
|
|
|
|
IJclIntfHashConverter = interface
|
|
['{7BAA0791-3B45-4D0F-9CD8-D13B81694786}']
|
|
function GetHashConvert: TIntfHashConvert;
|
|
procedure SetHashConvert(Value: TIntfHashConvert);
|
|
function Hash(const AInterface: IInterface): Integer;
|
|
property HashConvert: TIntfHashConvert read GetHashConvert write SetHashConvert;
|
|
end;
|
|
|
|
IJclAnsiStrHashConverter = interface
|
|
['{9841014E-8A31-4C79-8AD5-EB03C4E85533}']
|
|
function GetHashConvert: TAnsiStrHashConvert;
|
|
procedure SetHashConvert(Value: TAnsiStrHashConvert);
|
|
function Hash(const AString: AnsiString): Integer;
|
|
property HashConvert: TAnsiStrHashConvert read GetHashConvert write SetHashConvert;
|
|
end;
|
|
|
|
IJclWideStrHashConverter = interface
|
|
['{2584118F-19AE-443E-939B-0DB18BCD0117}']
|
|
function GetHashConvert: TWideStrHashConvert;
|
|
procedure SetHashConvert(Value: TWideStrHashConvert);
|
|
function Hash(const AString: WideString): Integer;
|
|
property HashConvert: TWideStrHashConvert read GetHashConvert write SetHashConvert;
|
|
end;
|
|
|
|
{$IFDEF SUPPORTS_UNICODE_STRING}
|
|
IJclUnicodeStrHashConverter = interface
|
|
['{08CD8171-DBAF-405F-9802-46D955C8BBE6}']
|
|
function GetHashConvert: TUnicodeStrHashConvert;
|
|
procedure SetHashConvert(Value: TUnicodeStrHashConvert);
|
|
function Hash(const AString: UnicodeString): Integer;
|
|
property HashConvert: TUnicodeStrHashConvert read GetHashConvert write SetHashConvert;
|
|
end;
|
|
{$ENDIF SUPPORTS_UNICODE_STRING}
|
|
|
|
{$IFDEF CONTAINER_ANSISTR}
|
|
IJclStrHashConverter = IJclAnsiStrHashConverter;
|
|
{$ENDIF CONTAINER_ANSISTR}
|
|
{$IFDEF CONTAINER_WIDESTR}
|
|
IJclStrHashConverter = IJclWideStrHashConverter;
|
|
{$ENDIF CONTAINER_WIDESTR}
|
|
{$IFDEF CONTAINER_UNICODESTR}
|
|
IJclStrHashConverter = IJclUnicodeStrHashConverter;
|
|
{$ENDIF CONTAINER_UNICODESTR}
|
|
|
|
IJclSingleHashConverter = interface
|
|
['{20F0E481-F1D2-48B6-A95D-FBB56AF119F5}']
|
|
function GetHashConvert: TSingleHashConvert;
|
|
procedure SetHashConvert(Value: TSingleHashConvert);
|
|
function Hash(const AValue: Single): Integer;
|
|
property HashConvert: TSingleHashConvert read GetHashConvert write SetHashConvert;
|
|
end;
|
|
|
|
IJclDoubleHashConverter = interface
|
|
['{193A2881-535B-4AF4-B0C3-6845A2800F80}']
|
|
function GetHashConvert: TDoubleHashConvert;
|
|
procedure SetHashConvert(Value: TDoubleHashConvert);
|
|
function Hash(const AValue: Double): Integer;
|
|
property HashConvert: TDoubleHashConvert read GetHashConvert write SetHashConvert;
|
|
end;
|
|
|
|
IJclExtendedHashConverter = interface
|
|
['{77CECDB9-2774-4FDC-8E5A-A80325626434}']
|
|
function GetHashConvert: TExtendedHashConvert;
|
|
procedure SetHashConvert(Value: TExtendedHashConvert);
|
|
function Hash(const AValue: Extended): Integer;
|
|
property HashConvert: TExtendedHashConvert read GetHashConvert write SetHashConvert;
|
|
end;
|
|
|
|
{$IFDEF MATH_EXTENDED_PRECISION}
|
|
IJclFloatHashConverter = IJclExtendedHashConverter;
|
|
{$ENDIF MATH_EXTENDED_PRECISION}
|
|
{$IFDEF MATH_DOUBLE_PRECISION}
|
|
IJclFloatHashConverter = IJclDoubleHashConverter;
|
|
{$ENDIF MATH_DOUBLE_PRECISION}
|
|
{$IFDEF MATH_SINGLE_PRECISION}
|
|
IJclFloatHashConverter = IJclSingleHashConverter;
|
|
{$ENDIF MATH_SINGLE_PRECISION}
|
|
|
|
IJclIntegerHashConverter = interface
|
|
['{92C540B2-C16C-47E4-995A-644BE71878B1}']
|
|
function GetHashConvert: TIntegerHashConvert;
|
|
procedure SetHashConvert(Value: TIntegerHashConvert);
|
|
function Hash(AValue: Integer): Integer;
|
|
property HashConvert: TIntegerHashConvert read GetHashConvert write SetHashConvert;
|
|
end;
|
|
|
|
IJclCardinalHashConverter = interface
|
|
['{2DF04C8A-16B8-4712-BC5D-AD35014EC9F7}']
|
|
function GetHashConvert: TCardinalHashConvert;
|
|
procedure SetHashConvert(Value: TCardinalHashConvert);
|
|
function Hash(AValue: Cardinal): Integer;
|
|
property HashConvert: TCardinalHashConvert read GetHashConvert write SetHashConvert;
|
|
end;
|
|
|
|
IJclInt64HashConverter = interface
|
|
['{96CF2A71-9185-4E26-B283-457ABC3584E7}']
|
|
function GetHashConvert: TInt64HashConvert;
|
|
procedure SetHashConvert(Value: TInt64HashConvert);
|
|
function Hash(const AValue: Int64): Integer;
|
|
property HashConvert: TInt64HashConvert read GetHashConvert write SetHashConvert;
|
|
end;
|
|
|
|
IJclPtrHashConverter = interface
|
|
['{D704CC67-CFED-44E6-9504-65D5E468FCAF}']
|
|
function GetHashConvert: TPtrHashConvert;
|
|
procedure SetHashConvert(Value: TPtrHashConvert);
|
|
function Hash(Ptr: Pointer): Integer;
|
|
property HashConvert: TPtrHashConvert read GetHashConvert write SetHashConvert;
|
|
end;
|
|
|
|
IJclHashConverter = interface
|
|
['{2D0DD6F4-162E-41D6-8A34-489E7EACABCD}']
|
|
function GetHashConvert: THashConvert;
|
|
procedure SetHashConvert(Value: THashConvert);
|
|
function Hash(AObject: TObject): Integer;
|
|
property HashConvert: THashConvert read GetHashConvert write SetHashConvert;
|
|
end;
|
|
|
|
{$IFDEF SUPPORTS_GENERICS}
|
|
IJclHashConverter<T> = interface
|
|
['{300AEA0E-7433-4C3E-99A6-E533212ACF42}']
|
|
function GetHashConvert: THashConvert<T>;
|
|
procedure SetHashConvert(Value: THashConvert<T>);
|
|
function Hash(const AItem: T): Integer;
|
|
property HashConvert: THashConvert<T> read GetHashConvert write SetHashConvert;
|
|
end;
|
|
{$ENDIF SUPPORTS_GENERICS}
|
|
|
|
IJclIntfCloneable = interface
|
|
['{BCF77740-FB60-4306-9BD1-448AADE5FF4E}']
|
|
function IntfClone: IInterface;
|
|
end;
|
|
|
|
IJclCloneable = interface
|
|
['{D224AE70-2C93-4998-9479-1D513D75F2B2}']
|
|
function ObjectClone: TObject;
|
|
end;
|
|
|
|
TJclAutoPackStrategy = (apsDisabled, apsAgressive, apsProportional, apsIncremental);
|
|
|
|
// parameter signification depends on strategy
|
|
// - Disabled = unused (arrays are never packed)
|
|
// - Agressive = unused (arrays are always packed)
|
|
// - Proportional = ratio of empty slots before the array is packed
|
|
// number of empty slots is computed by this formula: Capacity div Parameter
|
|
// - Incremental = amount of empty slots before the array is packed
|
|
|
|
IJclPackable = interface
|
|
['{03802D2B-E0AB-4300-A777-0B8A2BD993DF}']
|
|
function CalcGrowCapacity(ACapacity, ASize: Integer): Integer;
|
|
function GetAutoPackParameter: Integer;
|
|
function GetAutoPackStrategy: TJclAutoPackStrategy;
|
|
function GetCapacity: Integer;
|
|
procedure Pack; // reduce used memory by eliminating empty storage area (force)
|
|
procedure SetAutoPackParameter(Value: Integer);
|
|
procedure SetAutoPackStrategy(Value: TJclAutoPackStrategy);
|
|
procedure SetCapacity(Value: Integer);
|
|
property AutoPackParameter: Integer read GetAutoPackParameter write SetAutoPackParameter;
|
|
property AutoPackStrategy: TJclAutoPackStrategy read GetAutoPackStrategy write SetAutoPackStrategy;
|
|
property Capacity: Integer read GetCapacity write SetCapacity;
|
|
end;
|
|
|
|
TJclAutoGrowStrategy = (agsDisabled, agsAgressive, agsProportional, agsIncremental);
|
|
|
|
// parameter signification depends on strategy
|
|
// - Disabled = unused (arrays never grow)
|
|
// - Agressive = unused (arrays always grow by 1 element)
|
|
// - Proportional = ratio of empty slots to add to the array
|
|
// number of empty slots is computed by this formula: Capacity div Parameter
|
|
// - Incremental = amount of empty slots to add to the array
|
|
|
|
IJclGrowable = interface(IJclPackable)
|
|
['{C71E8586-5688-444C-9BDD-9969D988123B}']
|
|
function CalcPackCapacity(ACapacity, ASize: Integer): Integer;
|
|
function GetAutoGrowParameter: Integer;
|
|
function GetAutoGrowStrategy: TJclAutoGrowStrategy;
|
|
procedure Grow;
|
|
procedure SetAutoGrowParameter(Value: Integer);
|
|
procedure SetAutoGrowStrategy(Value: TJclAutoGrowStrategy);
|
|
property AutoGrowParameter: Integer read GetAutoGrowParameter write SetAutoGrowParameter;
|
|
property AutoGrowStrategy: TJclAutoGrowStrategy read GetAutoGrowStrategy write SetAutoGrowStrategy;
|
|
end;
|
|
|
|
IJclObjectOwner = interface
|
|
['{5157EA13-924E-4A56-995D-36956441025C}']
|
|
function FreeObject(var AObject: TObject): TObject;
|
|
function GetOwnsObjects: Boolean;
|
|
property OwnsObjects: Boolean read GetOwnsObjects;
|
|
end;
|
|
|
|
IJclKeyOwner = interface
|
|
['{8BE209E6-2F85-44FD-B0CD-A8363C95349A}']
|
|
function FreeKey(var Key: TObject): TObject;
|
|
function GetOwnsKeys: Boolean;
|
|
property OwnsKeys: Boolean read GetOwnsKeys;
|
|
end;
|
|
|
|
IJclValueOwner = interface
|
|
['{3BCD98CE-7056-416A-A9E7-AE3AB2A62E54}']
|
|
function FreeValue(var Value: TObject): TObject;
|
|
function GetOwnsValues: Boolean;
|
|
property OwnsValues: Boolean read GetOwnsValues;
|
|
end;
|
|
|
|
{$IFDEF SUPPORTS_GENERICS}
|
|
IJclItemOwner<T> = interface
|
|
['{0CC220C1-E705-4B21-9F53-4AD340952165}']
|
|
function FreeItem(var AItem: T): T;
|
|
function GetOwnsItems: Boolean;
|
|
property OwnsItems: Boolean read GetOwnsItems;
|
|
end;
|
|
|
|
IJclPairOwner<TKey, TValue> = interface
|
|
['{321C1FF7-AA2E-4229-966A-7EC6417EA16D}']
|
|
function FreeKey(var Key: TKey): TKey;
|
|
function FreeValue(var Value: TValue): TValue;
|
|
function GetOwnsKeys: Boolean;
|
|
function GetOwnsValues: Boolean;
|
|
property OwnsKeys: Boolean read GetOwnsKeys;
|
|
property OwnsValues: Boolean read GetOwnsValues;
|
|
end;
|
|
{$ENDIF SUPPORTS_GENERICS}
|
|
|
|
IJclIntfIterator = interface(IJclAbstractIterator)
|
|
['{E121A98A-7C43-4587-806B-9189E8B2F106}']
|
|
function Add(const AInterface: IInterface): Boolean;
|
|
procedure Extract;
|
|
function GetObject: IInterface;
|
|
function HasNext: Boolean;
|
|
function HasPrevious: Boolean;
|
|
function Insert(const AInterface: IInterface): Boolean;
|
|
function IteratorEquals(const AIterator: IJclIntfIterator): Boolean;
|
|
function Next: IInterface;
|
|
function NextIndex: Integer;
|
|
function Previous: IInterface;
|
|
function PreviousIndex: Integer;
|
|
procedure Remove;
|
|
procedure Reset;
|
|
procedure SetObject(const AInterface: IInterface);
|
|
{$IFDEF SUPPORTS_FOR_IN}
|
|
function MoveNext: Boolean;
|
|
property Current: IInterface read GetObject;
|
|
{$ENDIF SUPPORTS_FOR_IN}
|
|
end;
|
|
|
|
IJclAnsiStrIterator = interface(IJclAbstractIterator)
|
|
['{D5D4B681-F902-49C7-B9E1-73007C9D64F0}']
|
|
function Add(const AString: AnsiString): Boolean;
|
|
procedure Extract;
|
|
function GetString: AnsiString;
|
|
function HasNext: Boolean;
|
|
function HasPrevious: Boolean;
|
|
function Insert(const AString: AnsiString): Boolean;
|
|
function IteratorEquals(const AIterator: IJclAnsiStrIterator): Boolean;
|
|
function Next: AnsiString;
|
|
function NextIndex: Integer;
|
|
function Previous: AnsiString;
|
|
function PreviousIndex: Integer;
|
|
procedure Remove;
|
|
procedure Reset;
|
|
procedure SetString(const AString: AnsiString);
|
|
{$IFDEF SUPPORTS_FOR_IN}
|
|
function MoveNext: Boolean;
|
|
property Current: AnsiString read GetString;
|
|
{$ENDIF SUPPORTS_FOR_IN}
|
|
end;
|
|
|
|
IJclWideStrIterator = interface(IJclAbstractIterator)
|
|
['{F03BC7D4-CCDA-4C4A-AF3A-E51FDCDE8ADE}']
|
|
function Add(const AString: WideString): Boolean;
|
|
procedure Extract;
|
|
function GetString: WideString;
|
|
function HasNext: Boolean;
|
|
function HasPrevious: Boolean;
|
|
function Insert(const AString: WideString): Boolean;
|
|
function IteratorEquals(const AIterator: IJclWideStrIterator): Boolean;
|
|
function Next: WideString;
|
|
function NextIndex: Integer;
|
|
function Previous: WideString;
|
|
function PreviousIndex: Integer;
|
|
procedure Remove;
|
|
procedure Reset;
|
|
procedure SetString(const AString: WideString);
|
|
{$IFDEF SUPPORTS_FOR_IN}
|
|
function MoveNext: Boolean;
|
|
property Current: WideString read GetString;
|
|
{$ENDIF SUPPORTS_FOR_IN}
|
|
end;
|
|
|
|
{$IFDEF SUPPORTS_UNICODE_STRING}
|
|
IJclUnicodeStrIterator = interface(IJclAbstractIterator)
|
|
['{B913FFDC-792A-48FB-B58E-763EFDEBA15C}']
|
|
function Add(const AString: UnicodeString): Boolean;
|
|
procedure Extract;
|
|
function GetString: UnicodeString;
|
|
function HasNext: Boolean;
|
|
function HasPrevious: Boolean;
|
|
function Insert(const AString: UnicodeString): Boolean;
|
|
function IteratorEquals(const AIterator: IJclUnicodeStrIterator): Boolean;
|
|
function Next: UnicodeString;
|
|
function NextIndex: Integer;
|
|
function Previous: UnicodeString;
|
|
function PreviousIndex: Integer;
|
|
procedure Remove;
|
|
procedure Reset;
|
|
procedure SetString(const AString: UnicodeString);
|
|
{$IFDEF SUPPORTS_FOR_IN}
|
|
function MoveNext: Boolean;
|
|
property Current: UnicodeString read GetString;
|
|
{$ENDIF SUPPORTS_FOR_IN}
|
|
end;
|
|
{$ENDIF SUPPORTS_UNICODE_STRING}
|
|
|
|
{$IFDEF CONTAINER_ANSISTR}
|
|
IJclStrIterator = IJclAnsiStrIterator;
|
|
{$ENDIF CONTAINER_ANSISTR}
|
|
{$IFDEF CONTAINER_WIDESTR}
|
|
IJclStrIterator = IJclWideStrIterator;
|
|
{$ENDIF CONTAINER_WIDESTR}
|
|
{$IFDEF CONTAINER_UNICODESTR}
|
|
IJclStrIterator = IJclUnicodeStrIterator;
|
|
{$ENDIF CONTAINER_UNICODESTR}
|
|
|
|
IJclSingleIterator = interface(IJclAbstractIterator)
|
|
['{FD1124F8-CB2B-4AD7-B12D-C05702F4204B}']
|
|
function Add(const AValue: Single): Boolean;
|
|
procedure Extract;
|
|
function GetValue: Single;
|
|
function HasNext: Boolean;
|
|
function HasPrevious: Boolean;
|
|
function Insert(const AValue: Single): Boolean;
|
|
function IteratorEquals(const AIterator: IJclSingleIterator): Boolean;
|
|
function Next: Single;
|
|
function NextIndex: Integer;
|
|
function Previous: Single;
|
|
function PreviousIndex: Integer;
|
|
procedure Remove;
|
|
procedure Reset;
|
|
procedure SetValue(const AValue: Single);
|
|
{$IFDEF SUPPORTS_FOR_IN}
|
|
function MoveNext: Boolean;
|
|
property Current: Single read GetValue;
|
|
{$ENDIF SUPPORTS_FOR_IN}
|
|
end;
|
|
|
|
IJclDoubleIterator = interface(IJclAbstractIterator)
|
|
['{004C154A-281C-4DA7-BF64-F3EE80ACF640}']
|
|
function Add(const AValue: Double): Boolean;
|
|
procedure Extract;
|
|
function GetValue: Double;
|
|
function HasNext: Boolean;
|
|
function HasPrevious: Boolean;
|
|
function Insert(const AValue: Double): Boolean;
|
|
function IteratorEquals(const AIterator: IJclDoubleIterator): Boolean;
|
|
function Next: Double;
|
|
function NextIndex: Integer;
|
|
function Previous: Double;
|
|
function PreviousIndex: Integer;
|
|
procedure Remove;
|
|
procedure Reset;
|
|
procedure SetValue(const AValue: Double);
|
|
{$IFDEF SUPPORTS_FOR_IN}
|
|
function MoveNext: Boolean;
|
|
property Current: Double read GetValue;
|
|
{$ENDIF SUPPORTS_FOR_IN}
|
|
end;
|
|
|
|
IJclExtendedIterator = interface(IJclAbstractIterator)
|
|
['{B89877A5-DED4-4CD9-AB90-C7D062111DE0}']
|
|
function Add(const AValue: Extended): Boolean;
|
|
procedure Extract;
|
|
function GetValue: Extended;
|
|
function HasNext: Boolean;
|
|
function HasPrevious: Boolean;
|
|
function Insert(const AValue: Extended): Boolean;
|
|
function IteratorEquals(const AIterator: IJclExtendedIterator): Boolean;
|
|
function Next: Extended;
|
|
function NextIndex: Integer;
|
|
function Previous: Extended;
|
|
function PreviousIndex: Integer;
|
|
procedure Remove;
|
|
procedure Reset;
|
|
procedure SetValue(const AValue: Extended);
|
|
{$IFDEF SUPPORTS_FOR_IN}
|
|
function MoveNext: Boolean;
|
|
property Current: Extended read GetValue;
|
|
{$ENDIF SUPPORTS_FOR_IN}
|
|
end;
|
|
|
|
{$IFDEF MATH_EXTENDED_PRECISION}
|
|
IJclFloatIterator = IJclExtendedIterator;
|
|
{$ENDIF MATH_EXTENDED_PRECISION}
|
|
{$IFDEF MATH_DOUBLE_PRECISION}
|
|
IJclFloatIterator = IJclDoubleIterator;
|
|
{$ENDIF MATH_DOUBLE_PRECISION}
|
|
{$IFDEF MATH_SINGLE_PRECISION}
|
|
IJclFloatIterator = IJclSingleIterator;
|
|
{$ENDIF MATH_SINGLE_PRECISION}
|
|
|
|
IJclIntegerIterator = interface(IJclAbstractIterator)
|
|
['{1406A991-4574-48A1-83FE-2EDCA03908BE}']
|
|
function Add(AValue: Integer): Boolean;
|
|
procedure Extract;
|
|
function GetValue: Integer;
|
|
function HasNext: Boolean;
|
|
function HasPrevious: Boolean;
|
|
function Insert(AValue: Integer): Boolean;
|
|
function IteratorEquals(const AIterator: IJclIntegerIterator): Boolean;
|
|
function Next: Integer;
|
|
function NextIndex: Integer;
|
|
function Previous: Integer;
|
|
function PreviousIndex: Integer;
|
|
procedure Remove;
|
|
procedure Reset;
|
|
procedure SetValue(AValue: Integer);
|
|
{$IFDEF SUPPORTS_FOR_IN}
|
|
function MoveNext: Boolean;
|
|
property Current: Integer read GetValue;
|
|
{$ENDIF SUPPORTS_FOR_IN}
|
|
end;
|
|
|
|
IJclCardinalIterator = interface(IJclAbstractIterator)
|
|
['{72847A34-C8C4-4592-9447-CEB8161E33AD}']
|
|
function Add(AValue: Cardinal): Boolean;
|
|
procedure Extract;
|
|
function GetValue: Cardinal;
|
|
function HasNext: Boolean;
|
|
function HasPrevious: Boolean;
|
|
function Insert(AValue: Cardinal): Boolean;
|
|
function IteratorEquals(const AIterator: IJclCardinalIterator): Boolean;
|
|
function Next: Cardinal;
|
|
function NextIndex: Integer;
|
|
function Previous: Cardinal;
|
|
function PreviousIndex: Integer;
|
|
procedure Remove;
|
|
procedure Reset;
|
|
procedure SetValue(AValue: Cardinal);
|
|
{$IFDEF SUPPORTS_FOR_IN}
|
|
function MoveNext: Boolean;
|
|
property Current: Cardinal read GetValue;
|
|
{$ENDIF SUPPORTS_FOR_IN}
|
|
end;
|
|
|
|
IJclInt64Iterator = interface(IJclAbstractIterator)
|
|
['{573E5A51-BF76-43D7-9F93-46305BED20A8}']
|
|
function Add(const AValue: Int64): Boolean;
|
|
procedure Extract;
|
|
function GetValue: Int64;
|
|
function HasNext: Boolean;
|
|
function HasPrevious: Boolean;
|
|
function Insert(const AValue: Int64): Boolean;
|
|
function IteratorEquals(const AIterator: IJclInt64Iterator): Boolean;
|
|
function Next: Int64;
|
|
function NextIndex: Integer;
|
|
function Previous: Int64;
|
|
function PreviousIndex: Integer;
|
|
procedure Remove;
|
|
procedure Reset;
|
|
procedure SetValue(const AValue: Int64);
|
|
{$IFDEF SUPPORTS_FOR_IN}
|
|
function MoveNext: Boolean;
|
|
property Current: Int64 read GetValue;
|
|
{$ENDIF SUPPORTS_FOR_IN}
|
|
end;
|
|
|
|
IJclPtrIterator = interface(IJclAbstractIterator)
|
|
['{62B5501C-07AA-4D00-A85B-713B39912CDF}']
|
|
function Add(APtr: Pointer): Boolean;
|
|
procedure Extract;
|
|
function GetPointer: Pointer;
|
|
function HasNext: Boolean;
|
|
function HasPrevious: Boolean;
|
|
function Insert(APtr: Pointer): Boolean;
|
|
function IteratorEquals(const AIterator: IJclPtrIterator): Boolean;
|
|
function Next: Pointer;
|
|
function NextIndex: Integer;
|
|
function Previous: Pointer;
|
|
function PreviousIndex: Integer;
|
|
procedure Remove;
|
|
procedure Reset;
|
|
procedure SetPointer(APtr: Pointer);
|
|
{$IFDEF SUPPORTS_FOR_IN}
|
|
function MoveNext: Boolean;
|
|
property Current: Pointer read GetPointer;
|
|
{$ENDIF SUPPORTS_FOR_IN}
|
|
end;
|
|
|
|
IJclIterator = interface(IJclAbstractIterator)
|
|
['{997DF9B7-9AA2-4239-8B94-14DFFD26D790}']
|
|
function Add(AObject: TObject): Boolean;
|
|
procedure Extract;
|
|
function GetObject: TObject;
|
|
function HasNext: Boolean;
|
|
function HasPrevious: Boolean;
|
|
function Insert(AObject: TObject): Boolean;
|
|
function IteratorEquals(const AIterator: IJclIterator): Boolean;
|
|
function Next: TObject;
|
|
function NextIndex: Integer;
|
|
function Previous: TObject;
|
|
function PreviousIndex: Integer;
|
|
procedure Remove;
|
|
procedure Reset;
|
|
procedure SetObject(AObject: TObject);
|
|
{$IFDEF SUPPORTS_FOR_IN}
|
|
function MoveNext: Boolean;
|
|
property Current: TObject read GetObject;
|
|
{$ENDIF SUPPORTS_FOR_IN}
|
|
end;
|
|
|
|
{$IFDEF SUPPORTS_GENERICS}
|
|
IJclIterator<T> = interface(IJclAbstractIterator)
|
|
['{6E8547A4-5B5D-4831-8AE3-9C6D04071B11}']
|
|
function Add(const AItem: T): Boolean;
|
|
procedure Extract;
|
|
function GetItem: T;
|
|
function HasNext: Boolean;
|
|
function HasPrevious: Boolean;
|
|
function Insert(const AItem: T): Boolean;
|
|
function IteratorEquals(const AIterator: IJclIterator<T>): Boolean;
|
|
function Next: T;
|
|
function NextIndex: Integer;
|
|
function Previous: T;
|
|
function PreviousIndex: Integer;
|
|
procedure Remove;
|
|
procedure Reset;
|
|
procedure SetItem(const AItem: T);
|
|
{$IFDEF SUPPORTS_FOR_IN}
|
|
function MoveNext: Boolean;
|
|
property Current: T read GetItem;
|
|
{$ENDIF SUPPORTS_FOR_IN}
|
|
end;
|
|
{$ENDIF SUPPORTS_GENERICS}
|
|
|
|
IJclIntfTreeIterator = interface(IJclIntfIterator)
|
|
['{C97379BF-C6A9-4A90-9D7A-152E9BAD314F}']
|
|
function AddChild(const AInterface: IInterface): Boolean;
|
|
function ChildrenCount: Integer;
|
|
procedure DeleteChild(Index: Integer);
|
|
procedure DeleteChildren;
|
|
procedure ExtractChild(Index: Integer);
|
|
procedure ExtractChildren;
|
|
function GetChild(Index: Integer): IInterface;
|
|
function HasChild(Index: Integer): Boolean;
|
|
function HasParent: Boolean;
|
|
function IndexOfChild(const AInterface: IInterface): Integer;
|
|
function InsertChild(Index: Integer; const AInterface: IInterface): Boolean;
|
|
function Parent: IInterface;
|
|
procedure SetChild(Index: Integer; const AInterface: IInterface);
|
|
property Children[Index: Integer]: IInterface read GetChild write SetChild;
|
|
end;
|
|
|
|
IJclAnsiStrTreeIterator = interface(IJclAnsiStrIterator)
|
|
['{66BC5C76-758C-4E72-ABF1-EB02CF851C6D}']
|
|
function AddChild(const AString: AnsiString): Boolean;
|
|
function ChildrenCount: Integer;
|
|
procedure DeleteChild(Index: Integer);
|
|
procedure DeleteChildren;
|
|
procedure ExtractChild(Index: Integer);
|
|
procedure ExtractChildren;
|
|
function GetChild(Index: Integer): AnsiString;
|
|
function HasChild(Index: Integer): Boolean;
|
|
function HasParent: Boolean;
|
|
function IndexOfChild(const AString: AnsiString): Integer;
|
|
function InsertChild(Index: Integer; const AString: AnsiString): Boolean;
|
|
function Parent: AnsiString;
|
|
procedure SetChild(Index: Integer; const AString: AnsiString);
|
|
property Children[Index: Integer]: AnsiString read GetChild write SetChild;
|
|
end;
|
|
|
|
IJclWideStrTreeIterator = interface(IJclWideStrIterator)
|
|
['{B3168A3B-5A90-4ABF-855F-3D2B3AB6EE7F}']
|
|
function AddChild(const AString: WideString): Boolean;
|
|
function ChildrenCount: Integer;
|
|
procedure DeleteChild(Index: Integer);
|
|
procedure DeleteChildren;
|
|
procedure ExtractChild(Index: Integer);
|
|
procedure ExtractChildren;
|
|
function GetChild(Index: Integer): WideString;
|
|
function HasChild(Index: Integer): Boolean;
|
|
function HasParent: Boolean;
|
|
function IndexOfChild(const AString: WideString): Integer;
|
|
function InsertChild(Index: Integer; const AString: WideString): Boolean;
|
|
function Parent: WideString;
|
|
procedure SetChild(Index: Integer; const AString: WideString);
|
|
property Children[Index: Integer]: WideString read GetChild write SetChild;
|
|
end;
|
|
|
|
{$IFDEF SUPPORTS_UNICODE_STRING}
|
|
IJclUnicodeStrTreeIterator = interface(IJclUnicodeStrIterator)
|
|
['{0B0A60DE-0403-4EE1-B1F0-10D849924CF8}']
|
|
function AddChild(const AString: UnicodeString): Boolean;
|
|
function ChildrenCount: Integer;
|
|
procedure DeleteChild(Index: Integer);
|
|
procedure DeleteChildren;
|
|
procedure ExtractChild(Index: Integer);
|
|
procedure ExtractChildren;
|
|
function GetChild(Index: Integer): UnicodeString;
|
|
function HasChild(Index: Integer): Boolean;
|
|
function HasParent: Boolean;
|
|
function IndexOfChild(const AString: UnicodeString): Integer;
|
|
function InsertChild(Index: Integer; const AString: UnicodeString): Boolean;
|
|
function Parent: UnicodeString;
|
|
procedure SetChild(Index: Integer; const AString: UnicodeString);
|
|
property Children[Index: Integer]: UnicodeString read GetChild write SetChild;
|
|
end;
|
|
{$ENDIF SUPPORTS_UNICODE_STRING}
|
|
|
|
{$IFDEF CONTAINER_ANSISTR}
|
|
IJclStrTreeIterator = IJclAnsiStrTreeIterator;
|
|
{$ENDIF CONTAINER_ANSISTR}
|
|
{$IFDEF CONTAINER_WIDESTR}
|
|
IJclStrTreeIterator = IJclWideStrTreeIterator;
|
|
{$ENDIF CONTAINER_WIDESTR}
|
|
{$IFDEF CONTAINER_UNICODESTR}
|
|
IJclStrTreeIterator = IJclUnicodeStrTreeIterator;
|
|
{$ENDIF CONTAINER_UNICODESTR}
|
|
|
|
IJclSingleTreeIterator = interface(IJclSingleIterator)
|
|
['{17BFDE9D-DBF7-4DC8-AC74-919C717B4726}']
|
|
function AddChild(const AValue: Single): Boolean;
|
|
function ChildrenCount: Integer;
|
|
procedure DeleteChild(Index: Integer);
|
|
procedure DeleteChildren;
|
|
procedure ExtractChild(Index: Integer);
|
|
procedure ExtractChildren;
|
|
function GetChild(Index: Integer): Single;
|
|
function HasChild(Index: Integer): Boolean;
|
|
function HasParent: Boolean;
|
|
function IndexOfChild(const AValue: Single): Integer;
|
|
function InsertChild(Index: Integer; const AValue: Single): Boolean;
|
|
function Parent: Single;
|
|
procedure SetChild(Index: Integer; const AValue: Single);
|
|
property Children[Index: Integer]: Single read GetChild write SetChild;
|
|
end;
|
|
|
|
IJclDoubleTreeIterator = interface(IJclDoubleIterator)
|
|
['{EB39B84E-D3C5-496E-A521-B8BF24579252}']
|
|
function AddChild(const AValue: Double): Boolean;
|
|
function ChildrenCount: Integer;
|
|
procedure DeleteChild(Index: Integer);
|
|
procedure DeleteChildren;
|
|
procedure ExtractChild(Index: Integer);
|
|
procedure ExtractChildren;
|
|
function GetChild(Index: Integer): Double;
|
|
function HasChild(Index: Integer): Boolean;
|
|
function HasParent: Boolean;
|
|
function IndexOfChild(const AValue: Double): Integer;
|
|
function InsertChild(Index: Integer; const AValue: Double): Boolean;
|
|
function Parent: Double;
|
|
procedure SetChild(Index: Integer; const AValue: Double);
|
|
property Children[Index: Integer]: Double read GetChild write SetChild;
|
|
end;
|
|
|
|
IJclExtendedTreeIterator = interface(IJclExtendedIterator)
|
|
['{1B40A544-FC5D-454C-8E42-CE17B015E65C}']
|
|
function AddChild(const AValue: Extended): Boolean;
|
|
function ChildrenCount: Integer;
|
|
procedure DeleteChild(Index: Integer);
|
|
procedure DeleteChildren;
|
|
procedure ExtractChild(Index: Integer);
|
|
procedure ExtractChildren;
|
|
function GetChild(Index: Integer): Extended;
|
|
function HasChild(Index: Integer): Boolean;
|
|
function HasParent: Boolean;
|
|
function IndexOfChild(const AValue: Extended): Integer;
|
|
function InsertChild(Index: Integer; const AValue: Extended): Boolean;
|
|
function Parent: Extended;
|
|
procedure SetChild(Index: Integer; const AValue: Extended);
|
|
property Children[Index: Integer]: Extended read GetChild write SetChild;
|
|
end;
|
|
|
|
{$IFDEF MATH_EXTENDED_PRECISION}
|
|
IJclFloatTreeIterator = IJclExtendedTreeIterator;
|
|
{$ENDIF MATH_EXTENDED_PRECISION}
|
|
{$IFDEF MATH_DOUBLE_PRECISION}
|
|
IJclFloatTreeIterator = IJclDoubleTreeIterator;
|
|
{$ENDIF MATH_DOUBLE_PRECISION}
|
|
{$IFDEF MATH_SINGLE_PRECISION}
|
|
IJclFloatTreeIterator = IJclSingleTreeIterator;
|
|
{$ENDIF MATH_SINGLE_PRECISION}
|
|
|
|
IJclIntegerTreeIterator = interface(IJclIntegerIterator)
|
|
['{88EDC5C5-CA41-41AF-9838-AA19D07E69F5}']
|
|
function AddChild(AValue: Integer): Boolean;
|
|
function ChildrenCount: Integer;
|
|
procedure DeleteChild(Index: Integer);
|
|
procedure DeleteChildren;
|
|
procedure ExtractChild(Index: Integer);
|
|
procedure ExtractChildren;
|
|
function GetChild(Index: Integer): Integer;
|
|
function HasChild(Index: Integer): Boolean;
|
|
function HasParent: Boolean;
|
|
function IndexOfChild(AValue: Integer): Integer;
|
|
function InsertChild(Index: Integer; AValue: Integer): Boolean;
|
|
function Parent: Integer;
|
|
procedure SetChild(Index: Integer; AValue: Integer);
|
|
property Children[Index: Integer]: Integer read GetChild write SetChild;
|
|
end;
|
|
|
|
IJclCardinalTreeIterator = interface(IJclCardinalIterator)
|
|
['{FDBF493F-F79D-46EB-A59D-7193B6E6A860}']
|
|
function AddChild(AValue: Cardinal): Boolean;
|
|
function ChildrenCount: Integer;
|
|
procedure DeleteChild(Index: Integer);
|
|
procedure DeleteChildren;
|
|
procedure ExtractChild(Index: Integer);
|
|
procedure ExtractChildren;
|
|
function GetChild(Index: Integer): Cardinal;
|
|
function HasChild(Index: Integer): Boolean;
|
|
function HasParent: Boolean;
|
|
function IndexOfChild(AValue: Cardinal): Integer;
|
|
function InsertChild(Index: Integer; AValue: Cardinal): Boolean;
|
|
function Parent: Cardinal;
|
|
procedure SetChild(Index: Integer; AValue: Cardinal);
|
|
property Children[Index: Integer]: Cardinal read GetChild write SetChild;
|
|
end;
|
|
|
|
IJclInt64TreeIterator = interface(IJclInt64Iterator)
|
|
['{C5A5E504-E19B-43AC-90B9-E4B8984BFA23}']
|
|
function AddChild(const AValue: Int64): Boolean;
|
|
function ChildrenCount: Integer;
|
|
procedure DeleteChild(Index: Integer);
|
|
procedure DeleteChildren;
|
|
procedure ExtractChild(Index: Integer);
|
|
procedure ExtractChildren;
|
|
function GetChild(Index: Integer): Int64;
|
|
function HasChild(Index: Integer): Boolean;
|
|
function HasParent: Boolean;
|
|
function IndexOfChild(const AValue: Int64): Integer;
|
|
function InsertChild(Index: Integer; const AValue: Int64): Boolean;
|
|
function Parent: Int64;
|
|
procedure SetChild(Index: Integer; const AValue: Int64);
|
|
property Children[Index: Integer]: Int64 read GetChild write SetChild;
|
|
end;
|
|
|
|
IJclPtrTreeIterator = interface(IJclPtrIterator)
|
|
['{ED4C08E6-60FC-4ED3-BD19-E6605B9BD943}']
|
|
function AddChild(APtr: Pointer): Boolean;
|
|
function ChildrenCount: Integer;
|
|
procedure DeleteChild(Index: Integer);
|
|
procedure DeleteChildren;
|
|
procedure ExtractChild(Index: Integer);
|
|
procedure ExtractChildren;
|
|
function GetChild(Index: Integer): Pointer;
|
|
function HasChild(Index: Integer): Boolean;
|
|
function HasParent: Boolean;
|
|
function IndexOfChild(APtr: Pointer): Integer;
|
|
function InsertChild(Index: Integer; APtr: Pointer): Boolean;
|
|
function Parent: Pointer;
|
|
procedure SetChild(Index: Integer; APtr: Pointer);
|
|
property Children[Index: Integer]: Pointer read GetChild write SetChild;
|
|
end;
|
|
|
|
IJclTreeIterator = interface(IJclIterator)
|
|
['{8B4863B0-B6B9-426E-B5B8-7AF71D264237}']
|
|
function AddChild(AObject: TObject): Boolean;
|
|
function ChildrenCount: Integer;
|
|
procedure DeleteChild(Index: Integer);
|
|
procedure DeleteChildren;
|
|
procedure ExtractChild(Index: Integer);
|
|
procedure ExtractChildren;
|
|
function GetChild(Index: Integer): TObject;
|
|
function HasChild(Index: Integer): Boolean;
|
|
function HasParent: Boolean;
|
|
function IndexOfChild(AObject: TObject): Integer;
|
|
function InsertChild(Index: Integer; AObject: TObject): Boolean;
|
|
function Parent: TObject;
|
|
procedure SetChild(Index: Integer; AObject: TObject);
|
|
property Children[Index: Integer]: TObject read GetChild write SetChild;
|
|
end;
|
|
|
|
{$IFDEF SUPPORTS_GENERICS}
|
|
IJclTreeIterator<T> = interface(IJclIterator<T>)
|
|
['{29A06DA4-D93A-40A5-8581-0FE85BC8384B}']
|
|
function AddChild(const AItem: T): Boolean;
|
|
function ChildrenCount: Integer;
|
|
procedure DeleteChild(Index: Integer);
|
|
procedure DeleteChildren;
|
|
procedure ExtractChild(Index: Integer);
|
|
procedure ExtractChildren;
|
|
function GetChild(Index: Integer): T;
|
|
function HasChild(Index: Integer): Boolean;
|
|
function HasParent: Boolean;
|
|
function IndexOfChild(const AItem: T): Integer;
|
|
function InsertChild(Index: Integer; const AItem: T): Boolean;
|
|
function Parent: T;
|
|
procedure SetChild(Index: Integer; const AItem: T);
|
|
property Children[Index: Integer]: T read GetChild write SetChild;
|
|
end;
|
|
{$ENDIF SUPPORTS_GENERICS}
|
|
|
|
IJclIntfBinaryTreeIterator = interface(IJclIntfTreeIterator)
|
|
['{8BE874B2-0075-4EE0-8F49-665FC894D923}']
|
|
function HasLeft: Boolean;
|
|
function HasRight: Boolean;
|
|
function Left: IInterface;
|
|
function Right: IInterface;
|
|
end;
|
|
|
|
IJclAnsiStrBinaryTreeIterator = interface(IJclAnsiStrTreeIterator)
|
|
['{34A4A300-042C-43A9-AC23-8FC1B76BFB25}']
|
|
function HasLeft: Boolean;
|
|
function HasRight: Boolean;
|
|
function Left: AnsiString;
|
|
function Right: AnsiString;
|
|
end;
|
|
|
|
IJclWideStrBinaryTreeIterator = interface(IJclWideStrTreeIterator)
|
|
['{17C08EB9-6880-469E-878A-8F5EBFE905B1}']
|
|
function HasLeft: Boolean;
|
|
function HasRight: Boolean;
|
|
function Left: WideString;
|
|
function Right: WideString;
|
|
end;
|
|
|
|
{$IFDEF SUPPORTS_UNICODE_STRING}
|
|
IJclUnicodeStrBinaryTreeIterator = interface(IJclUnicodeStrTreeIterator)
|
|
['{CA32B126-AD4B-4C33-BC47-52B09FE093BE}']
|
|
function HasLeft: Boolean;
|
|
function HasRight: Boolean;
|
|
function Left: UnicodeString;
|
|
function Right: UnicodeString;
|
|
end;
|
|
{$ENDIF SUPPORTS_UNICODE_STRING}
|
|
|
|
{$IFDEF CONTAINER_ANSISTR}
|
|
IJclStrBinaryTreeIterator = IJclAnsiStrBinaryTreeIterator;
|
|
{$ENDIF CONTAINER_ANSISTR}
|
|
{$IFDEF CONTAINER_WIDESTR}
|
|
IJclStrBinaryTreeIterator = IJclWideStrBinaryTreeIterator;
|
|
{$ENDIF CONTAINER_WIDESTR}
|
|
{$IFDEF CONTAINER_UNICODESTR}
|
|
IJclStrBinaryTreeIterator = IJclUnicodeStrBinaryTreeIterator;
|
|
{$ENDIF CONTAINER_UNICODESTR}
|
|
|
|
IJclSingleBinaryTreeIterator = interface(IJclSingleTreeIterator)
|
|
['{BC6FFB13-FA1C-4077-8273-F25A3119168B}']
|
|
function HasLeft: Boolean;
|
|
function HasRight: Boolean;
|
|
function Left: Single;
|
|
function Right: Single;
|
|
end;
|
|
|
|
IJclDoubleBinaryTreeIterator = interface(IJclDoubleTreeIterator)
|
|
['{CE48083C-D60C-4315-BC14-8CE77AC3269E}']
|
|
function HasLeft: Boolean;
|
|
function HasRight: Boolean;
|
|
function Left: Double;
|
|
function Right: Double;
|
|
end;
|
|
|
|
IJclExtendedBinaryTreeIterator = interface(IJclExtendedTreeIterator)
|
|
['{8A9FAE2A-5EF5-4165-8E8D-51F2102A4580}']
|
|
function HasLeft: Boolean;
|
|
function HasRight: Boolean;
|
|
function Left: Extended;
|
|
function Right: Extended;
|
|
end;
|
|
|
|
{$IFDEF MATH_EXTENDED_PRECISION}
|
|
IJclFloatBinaryTreeIterator = IJclExtendedBinaryTreeIterator;
|
|
{$ENDIF MATH_EXTENDED_PRECISION}
|
|
{$IFDEF MATH_DOUBLE_PRECISION}
|
|
IJclFloatBinaryTreeIterator = IJclDoubleBinaryTreeIterator;
|
|
{$ENDIF MATH_DOUBLE_PRECISION}
|
|
{$IFDEF MATH_SINGLE_PRECISION}
|
|
IJclFloatBinaryTreeIterator = IJclSingleBinaryTreeIterator;
|
|
{$ENDIF MATH_SINGLE_PRECISION}
|
|
|
|
IJclIntegerBinaryTreeIterator = interface(IJclIntegerTreeIterator)
|
|
['{FE2BF57D-D10D-4B0C-903D-BB61700FBA0A}']
|
|
function HasLeft: Boolean;
|
|
function HasRight: Boolean;
|
|
function Left: Integer;
|
|
function Right: Integer;
|
|
end;
|
|
|
|
IJclCardinalBinaryTreeIterator = interface(IJclCardinalTreeIterator)
|
|
['{AAA358F5-95A1-480F-8E2A-09028BA6C397}']
|
|
function HasLeft: Boolean;
|
|
function HasRight: Boolean;
|
|
function Left: Cardinal;
|
|
function Right: Cardinal;
|
|
end;
|
|
|
|
IJclInt64BinaryTreeIterator = interface(IJclInt64TreeIterator)
|
|
['{5605E164-5CDD-40B1-9323-DE1CB584E289}']
|
|
function HasLeft: Boolean;
|
|
function HasRight: Boolean;
|
|
function Left: Int64;
|
|
function Right: Int64;
|
|
end;
|
|
|
|
IJclPtrBinaryTreeIterator = interface(IJclPtrTreeIterator)
|
|
['{75D3DF0D-C491-43F7-B078-E658197E8051}']
|
|
function HasLeft: Boolean;
|
|
function HasRight: Boolean;
|
|
function Left: Pointer;
|
|
function Right: Pointer;
|
|
end;
|
|
|
|
IJclBinaryTreeIterator = interface(IJclTreeIterator)
|
|
['{821DE28D-631C-4F23-A0B2-CC0F35B4C64D}']
|
|
function HasLeft: Boolean;
|
|
function HasRight: Boolean;
|
|
function Left: TObject;
|
|
function Right: TObject;
|
|
end;
|
|
|
|
{$IFDEF SUPPORTS_GENERICS}
|
|
IJclBinaryTreeIterator<T> = interface(IJclTreeIterator<T>)
|
|
['{0CF5B0FC-C644-458C-BF48-2E093DAFEC26}']
|
|
function HasLeft: Boolean;
|
|
function HasRight: Boolean;
|
|
function Left: T;
|
|
function Right: T;
|
|
end;
|
|
{$ENDIF SUPPORTS_GENERICS}
|
|
|
|
IJclIntfCollection = interface(IJclContainer)
|
|
['{8E178463-4575-487A-B4D5-DC2AED3C7ACA}']
|
|
function Add(const AInterface: IInterface): Boolean;
|
|
function AddAll(const ACollection: IJclIntfCollection): Boolean;
|
|
procedure Clear;
|
|
function Contains(const AInterface: IInterface): Boolean;
|
|
function ContainsAll(const ACollection: IJclIntfCollection): Boolean;
|
|
function CollectionEquals(const ACollection: IJclIntfCollection): Boolean;
|
|
function Extract(const AInterface: IInterface): Boolean;
|
|
function ExtractAll(const ACollection: IJclIntfCollection): Boolean;
|
|
function First: IJclIntfIterator;
|
|
function IsEmpty: Boolean;
|
|
function Last: IJclIntfIterator;
|
|
function Remove(const AInterface: IInterface): Boolean;
|
|
function RemoveAll(const ACollection: IJclIntfCollection): Boolean;
|
|
function RetainAll(const ACollection: IJclIntfCollection): Boolean;
|
|
function Size: Integer;
|
|
{$IFDEF SUPPORTS_FOR_IN}
|
|
function GetEnumerator: IJclIntfIterator;
|
|
{$ENDIF SUPPORTS_FOR_IN}
|
|
end;
|
|
|
|
IJclAnsiStrCollection = interface(IJclAnsiStrFlatContainer)
|
|
['{3E3CFC19-E8AF-4DD7-91FA-2DF2895FC7B9}']
|
|
function Add(const AString: AnsiString): Boolean;
|
|
function AddAll(const ACollection: IJclAnsiStrCollection): Boolean;
|
|
procedure Clear;
|
|
function Contains(const AString: AnsiString): Boolean;
|
|
function ContainsAll(const ACollection: IJclAnsiStrCollection): Boolean;
|
|
function CollectionEquals(const ACollection: IJclAnsiStrCollection): Boolean;
|
|
function Extract(const AString: AnsiString): Boolean;
|
|
function ExtractAll(const ACollection: IJclAnsiStrCollection): Boolean;
|
|
function First: IJclAnsiStrIterator;
|
|
function IsEmpty: Boolean;
|
|
function Last: IJclAnsiStrIterator;
|
|
function Remove(const AString: AnsiString): Boolean;
|
|
function RemoveAll(const ACollection: IJclAnsiStrCollection): Boolean;
|
|
function RetainAll(const ACollection: IJclAnsiStrCollection): Boolean;
|
|
function Size: Integer;
|
|
{$IFDEF SUPPORTS_FOR_IN}
|
|
function GetEnumerator: IJclAnsiStrIterator;
|
|
{$ENDIF SUPPORTS_FOR_IN}
|
|
end;
|
|
|
|
IJclWideStrCollection = interface(IJclWideStrFlatContainer)
|
|
['{CDCC0F94-4DD0-4F25-B441-6AE55D5C7466}']
|
|
function Add(const AString: WideString): Boolean;
|
|
function AddAll(const ACollection: IJclWideStrCollection): Boolean;
|
|
procedure Clear;
|
|
function Contains(const AString: WideString): Boolean;
|
|
function ContainsAll(const ACollection: IJclWideStrCollection): Boolean;
|
|
function CollectionEquals(const ACollection: IJclWideStrCollection): Boolean;
|
|
function Extract(const AString: WideString): Boolean;
|
|
function ExtractAll(const ACollection: IJclWideStrCollection): Boolean;
|
|
function First: IJclWideStrIterator;
|
|
function IsEmpty: Boolean;
|
|
function Last: IJclWideStrIterator;
|
|
function Remove(const AString: WideString): Boolean;
|
|
function RemoveAll(const ACollection: IJclWideStrCollection): Boolean;
|
|
function RetainAll(const ACollection: IJclWideStrCollection): Boolean;
|
|
function Size: Integer;
|
|
{$IFDEF SUPPORTS_FOR_IN}
|
|
function GetEnumerator: IJclWideStrIterator;
|
|
{$ENDIF SUPPORTS_FOR_IN}
|
|
end;
|
|
|
|
{$IFDEF SUPPORTS_UNICODE_STRING}
|
|
IJclUnicodeStrCollection = interface(IJclUnicodeStrFlatContainer)
|
|
['{82EA7DDE-4EBF-4E0D-A380-CAF8A24C1A0D}']
|
|
function Add(const AString: UnicodeString): Boolean;
|
|
function AddAll(const ACollection: IJclUnicodeStrCollection): Boolean;
|
|
procedure Clear;
|
|
function Contains(const AString: UnicodeString): Boolean;
|
|
function ContainsAll(const ACollection: IJclUnicodeStrCollection): Boolean;
|
|
function CollectionEquals(const ACollection: IJclUnicodeStrCollection): Boolean;
|
|
function Extract(const AString: UnicodeString): Boolean;
|
|
function ExtractAll(const ACollection: IJclUnicodeStrCollection): Boolean;
|
|
function First: IJclUnicodeStrIterator;
|
|
function IsEmpty: Boolean;
|
|
function Last: IJclUnicodeStrIterator;
|
|
function Remove(const AString: UnicodeString): Boolean;
|
|
function RemoveAll(const ACollection: IJclUnicodeStrCollection): Boolean;
|
|
function RetainAll(const ACollection: IJclUnicodeStrCollection): Boolean;
|
|
function Size: Integer;
|
|
{$IFDEF SUPPORTS_FOR_IN}
|
|
function GetEnumerator: IJclUnicodeStrIterator;
|
|
{$ENDIF SUPPORTS_FOR_IN}
|
|
end;
|
|
{$ENDIF SUPPORTS_UNICODE_STRING}
|
|
|
|
{$IFDEF CONTAINER_ANSISTR}
|
|
IJclStrCollection = IJclAnsiStrCollection;
|
|
{$ENDIF CONTAINER_ANSISTR}
|
|
{$IFDEF CONTAINER_WIDESTR}
|
|
IJclStrCollection = IJclWideStrCollection;
|
|
{$ENDIF CONTAINER_WIDESTR}
|
|
{$IFDEF CONTAINER_UNICODESTR}
|
|
IJclStrCollection = IJclUnicodeStrCollection;
|
|
{$ENDIF CONTAINER_UNICODESTR}
|
|
|
|
IJclSingleCollection = interface(IJclSingleContainer)
|
|
['{1D34D474-6588-441E-B2B3-8C021A37ED89}']
|
|
function Add(const AValue: Single): Boolean;
|
|
function AddAll(const ACollection: IJclSingleCollection): Boolean;
|
|
procedure Clear;
|
|
function Contains(const AValue: Single): Boolean;
|
|
function ContainsAll(const ACollection: IJclSingleCollection): Boolean;
|
|
function CollectionEquals(const ACollection: IJclSingleCollection): Boolean;
|
|
function Extract(const AValue: Single): Boolean;
|
|
function ExtractAll(const ACollection: IJclSingleCollection): Boolean;
|
|
function First: IJclSingleIterator;
|
|
function IsEmpty: Boolean;
|
|
function Last: IJclSingleIterator;
|
|
function Remove(const AValue: Single): Boolean;
|
|
function RemoveAll(const ACollection: IJclSingleCollection): Boolean;
|
|
function RetainAll(const ACollection: IJclSingleCollection): Boolean;
|
|
function Size: Integer;
|
|
{$IFDEF SUPPORTS_FOR_IN}
|
|
function GetEnumerator: IJclSingleIterator;
|
|
{$ENDIF SUPPORTS_FOR_IN}
|
|
end;
|
|
|
|
IJclDoubleCollection = interface(IJclDoubleContainer)
|
|
['{E54C7717-C33A-4F1B-860C-4F60F303EAD3}']
|
|
function Add(const AValue: Double): Boolean;
|
|
function AddAll(const ACollection: IJclDoubleCollection): Boolean;
|
|
procedure Clear;
|
|
function Contains(const AValue: Double): Boolean;
|
|
function ContainsAll(const ACollection: IJclDoubleCollection): Boolean;
|
|
function CollectionEquals(const ACollection: IJclDoubleCollection): Boolean;
|
|
function Extract(const AValue: Double): Boolean;
|
|
function ExtractAll(const ACollection: IJclDoubleCollection): Boolean;
|
|
function First: IJclDoubleIterator;
|
|
function IsEmpty: Boolean;
|
|
function Last: IJclDoubleIterator;
|
|
function Remove(const AValue: Double): Boolean;
|
|
function RemoveAll(const ACollection: IJclDoubleCollection): Boolean;
|
|
function RetainAll(const ACollection: IJclDoubleCollection): Boolean;
|
|
function Size: Integer;
|
|
{$IFDEF SUPPORTS_FOR_IN}
|
|
function GetEnumerator: IJclDoubleIterator;
|
|
{$ENDIF SUPPORTS_FOR_IN}
|
|
end;
|
|
|
|
IJclExtendedCollection = interface(IJclExtendedContainer)
|
|
['{2A1341CB-B997-4E3B-B1CA-6D60AE853C55}']
|
|
function Add(const AValue: Extended): Boolean;
|
|
function AddAll(const ACollection: IJclExtendedCollection): Boolean;
|
|
procedure Clear;
|
|
function Contains(const AValue: Extended): Boolean;
|
|
function ContainsAll(const ACollection: IJclExtendedCollection): Boolean;
|
|
function CollectionEquals(const ACollection: IJclExtendedCollection): Boolean;
|
|
function Extract(const AValue: Extended): Boolean;
|
|
function ExtractAll(const ACollection: IJclExtendedCollection): Boolean;
|
|
function First: IJclExtendedIterator;
|
|
function IsEmpty: Boolean;
|
|
function Last: IJclExtendedIterator;
|
|
function Remove(const AValue: Extended): Boolean;
|
|
function RemoveAll(const ACollection: IJclExtendedCollection): Boolean;
|
|
function RetainAll(const ACollection: IJclExtendedCollection): Boolean;
|
|
function Size: Integer;
|
|
{$IFDEF SUPPORTS_FOR_IN}
|
|
function GetEnumerator: IJclExtendedIterator;
|
|
{$ENDIF SUPPORTS_FOR_IN}
|
|
end;
|
|
|
|
{$IFDEF MATH_EXTENDED_PRECISION}
|
|
IJclFloatCollection = IJclExtendedCollection;
|
|
{$ENDIF MATH_EXTENDED_PRECISION}
|
|
{$IFDEF MATH_DOUBLE_PRECISION}
|
|
IJclFloatCollection = IJclDoubleCollection;
|
|
{$ENDIF MATH_DOUBLE_PRECISION}
|
|
{$IFDEF MATH_SINGLE_PRECISION}
|
|
IJclFloatCollection = IJclSingleCollection;
|
|
{$ENDIF MATH_SINGLE_PRECISION}
|
|
|
|
IJclIntegerCollection = interface(IJclContainer)
|
|
['{AF69890D-22D1-4D89-8FFD-5FAD7E0638BA}']
|
|
function Add(AValue: Integer): Boolean;
|
|
function AddAll(const ACollection: IJclIntegerCollection): Boolean;
|
|
procedure Clear;
|
|
function Contains(AValue: Integer): Boolean;
|
|
function ContainsAll(const ACollection: IJclIntegerCollection): Boolean;
|
|
function CollectionEquals(const ACollection: IJclIntegerCollection): Boolean;
|
|
function Extract(AValue: Integer): Boolean;
|
|
function ExtractAll(const ACollection: IJclIntegerCollection): Boolean;
|
|
function First: IJclIntegerIterator;
|
|
function IsEmpty: Boolean;
|
|
function Last: IJclIntegerIterator;
|
|
function Remove(AValue: Integer): Boolean;
|
|
function RemoveAll(const ACollection: IJclIntegerCollection): Boolean;
|
|
function RetainAll(const ACollection: IJclIntegerCollection): Boolean;
|
|
function Size: Integer;
|
|
{$IFDEF SUPPORTS_FOR_IN}
|
|
function GetEnumerator: IJclIntegerIterator;
|
|
{$ENDIF SUPPORTS_FOR_IN}
|
|
end;
|
|
|
|
IJclCardinalCollection = interface(IJclContainer)
|
|
['{CFBD0344-58C8-4FA2-B4D7-D21D77DFBF80}']
|
|
function Add(AValue: Cardinal): Boolean;
|
|
function AddAll(const ACollection: IJclCardinalCollection): Boolean;
|
|
procedure Clear;
|
|
function Contains(AValue: Cardinal): Boolean;
|
|
function ContainsAll(const ACollection: IJclCardinalCollection): Boolean;
|
|
function CollectionEquals(const ACollection: IJclCardinalCollection): Boolean;
|
|
function Extract(AValue: Cardinal): Boolean;
|
|
function ExtractAll(const ACollection: IJclCardinalCollection): Boolean;
|
|
function First: IJclCardinalIterator;
|
|
function IsEmpty: Boolean;
|
|
function Last: IJclCardinalIterator;
|
|
function Remove(AValue: Cardinal): Boolean;
|
|
function RemoveAll(const ACollection: IJclCardinalCollection): Boolean;
|
|
function RetainAll(const ACollection: IJclCardinalCollection): Boolean;
|
|
function Size: Integer;
|
|
{$IFDEF SUPPORTS_FOR_IN}
|
|
function GetEnumerator: IJclCardinalIterator;
|
|
{$ENDIF SUPPORTS_FOR_IN}
|
|
end;
|
|
|
|
IJclInt64Collection = interface(IJclContainer)
|
|
['{93A45BDE-3C4C-48D6-9874-5322914DFDDA}']
|
|
function Add(const AValue: Int64): Boolean;
|
|
function AddAll(const ACollection: IJclInt64Collection): Boolean;
|
|
procedure Clear;
|
|
function Contains(const AValue: Int64): Boolean;
|
|
function ContainsAll(const ACollection: IJclInt64Collection): Boolean;
|
|
function CollectionEquals(const ACollection: IJclInt64Collection): Boolean;
|
|
function Extract(const AValue: Int64): Boolean;
|
|
function ExtractAll(const ACollection: IJclInt64Collection): Boolean;
|
|
function First: IJclInt64Iterator;
|
|
function IsEmpty: Boolean;
|
|
function Last: IJclInt64Iterator;
|
|
function Remove(const AValue: Int64): Boolean;
|
|
function RemoveAll(const ACollection: IJclInt64Collection): Boolean;
|
|
function RetainAll(const ACollection: IJclInt64Collection): Boolean;
|
|
function Size: Integer;
|
|
{$IFDEF SUPPORTS_FOR_IN}
|
|
function GetEnumerator: IJclInt64Iterator;
|
|
{$ENDIF SUPPORTS_FOR_IN}
|
|
end;
|
|
|
|
IJclPtrCollection = interface(IJclContainer)
|
|
['{02E909A7-5B1D-40D4-82EA-A0CD97D5C811}']
|
|
function Add(APtr: Pointer): Boolean;
|
|
function AddAll(const ACollection: IJclPtrCollection): Boolean;
|
|
procedure Clear;
|
|
function Contains(APtr: Pointer): Boolean;
|
|
function ContainsAll(const ACollection: IJclPtrCollection): Boolean;
|
|
function CollectionEquals(const ACollection: IJclPtrCollection): Boolean;
|
|
function Extract(APtr: Pointer): Boolean;
|
|
function ExtractAll(const ACollection: IJclPtrCollection): Boolean;
|
|
function First: IJclPtrIterator;
|
|
function IsEmpty: Boolean;
|
|
function Last: IJclPtrIterator;
|
|
function Remove(APtr: Pointer): Boolean;
|
|
function RemoveAll(const ACollection: IJclPtrCollection): Boolean;
|
|
function RetainAll(const ACollection: IJclPtrCollection): Boolean;
|
|
function Size: Integer;
|
|
{$IFDEF SUPPORTS_FOR_IN}
|
|
function GetEnumerator: IJclPtrIterator;
|
|
{$ENDIF SUPPORTS_FOR_IN}
|
|
end;
|
|
|
|
IJclCollection = interface(IJclContainer)
|
|
['{58947EF1-CD21-4DD1-AE3D-225C3AAD7EE5}']
|
|
function Add(AObject: TObject): Boolean;
|
|
function AddAll(const ACollection: IJclCollection): Boolean;
|
|
procedure Clear;
|
|
function Contains(AObject: TObject): Boolean;
|
|
function ContainsAll(const ACollection: IJclCollection): Boolean;
|
|
function CollectionEquals(const ACollection: IJclCollection): Boolean;
|
|
function Extract(AObject: TObject): Boolean;
|
|
function ExtractAll(const ACollection: IJclCollection): Boolean;
|
|
function First: IJclIterator;
|
|
function IsEmpty: Boolean;
|
|
function Last: IJclIterator;
|
|
function Remove(AObject: TObject): Boolean;
|
|
function RemoveAll(const ACollection: IJclCollection): Boolean;
|
|
function RetainAll(const ACollection: IJclCollection): Boolean;
|
|
function Size: Integer;
|
|
{$IFDEF SUPPORTS_FOR_IN}
|
|
function GetEnumerator: IJclIterator;
|
|
{$ENDIF SUPPORTS_FOR_IN}
|
|
end;
|
|
|
|
{$IFDEF SUPPORTS_GENERICS}
|
|
//DOM-IGNORE-BEGIN
|
|
IJclCollection<T> = interface(IJclContainer)
|
|
['{67EE8AF3-19B0-4DCA-A730-3C9B261B8EC5}']
|
|
function Add(const AItem: T): Boolean;
|
|
function AddAll(const ACollection: IJclCollection<T>): Boolean;
|
|
procedure Clear;
|
|
function Contains(const AItem: T): Boolean;
|
|
function ContainsAll(const ACollection: IJclCollection<T>): Boolean;
|
|
function CollectionEquals(const ACollection: IJclCollection<T>): Boolean;
|
|
function Extract(const AItem: T): Boolean;
|
|
function ExtractAll(const ACollection: IJclCollection<T>): Boolean;
|
|
function First: IJclIterator<T>;
|
|
function IsEmpty: Boolean;
|
|
function Last: IJclIterator<T>;
|
|
function Remove(const AItem: T): Boolean;
|
|
function RemoveAll(const ACollection: IJclCollection<T>): Boolean;
|
|
function RetainAll(const ACollection: IJclCollection<T>): Boolean;
|
|
function Size: Integer;
|
|
{$IFDEF SUPPORTS_FOR_IN}
|
|
function GetEnumerator: IJclIterator<T>;
|
|
{$ENDIF SUPPORTS_FOR_IN}
|
|
end;
|
|
//DOM-IGNORE-END
|
|
{$ENDIF SUPPORTS_GENERICS}
|
|
|
|
IJclIntfList = interface(IJclIntfCollection)
|
|
['{E14EDA4B-1DAA-4013-9E6C-CDCB365C7CF9}']
|
|
function Delete(Index: Integer): IInterface;
|
|
function ExtractIndex(Index: Integer): IInterface;
|
|
function GetObject(Index: Integer): IInterface;
|
|
function IndexOf(const AInterface: IInterface): Integer;
|
|
function Insert(Index: Integer; const AInterface: IInterface): Boolean;
|
|
function InsertAll(Index: Integer; const ACollection: IJclIntfCollection): Boolean;
|
|
function LastIndexOf(const AInterface: IInterface): Integer;
|
|
procedure SetObject(Index: Integer; const AInterface: IInterface);
|
|
function SubList(First, Count: Integer): IJclIntfList;
|
|
property Objects[Key: Integer]: IInterface read GetObject write SetObject; default;
|
|
end;
|
|
|
|
IJclAnsiStrList = interface(IJclAnsiStrCollection)
|
|
['{07DD7644-EAC6-4059-99FC-BEB7FBB73186}']
|
|
function Delete(Index: Integer): AnsiString;
|
|
function ExtractIndex(Index: Integer): AnsiString;
|
|
function GetString(Index: Integer): AnsiString;
|
|
function IndexOf(const AString: AnsiString): Integer;
|
|
function Insert(Index: Integer; const AString: AnsiString): Boolean;
|
|
function InsertAll(Index: Integer; const ACollection: IJclAnsiStrCollection): Boolean;
|
|
function LastIndexOf(const AString: AnsiString): Integer;
|
|
procedure SetString(Index: Integer; const AString: AnsiString);
|
|
function SubList(First, Count: Integer): IJclAnsiStrList;
|
|
property Strings[Key: Integer]: AnsiString read GetString write SetString; default;
|
|
end;
|
|
|
|
IJclWideStrList = interface(IJclWideStrCollection)
|
|
['{C9955874-6AC0-4CE0-8CC0-606A3F1702C6}']
|
|
function Delete(Index: Integer): WideString;
|
|
function ExtractIndex(Index: Integer): WideString;
|
|
function GetString(Index: Integer): WideString;
|
|
function IndexOf(const AString: WideString): Integer;
|
|
function Insert(Index: Integer; const AString: WideString): Boolean;
|
|
function InsertAll(Index: Integer; const ACollection: IJclWideStrCollection): Boolean;
|
|
function LastIndexOf(const AString: WideString): Integer;
|
|
procedure SetString(Index: Integer; const AString: WideString);
|
|
function SubList(First, Count: Integer): IJclWideStrList;
|
|
property Strings[Key: Integer]: WideString read GetString write SetString; default;
|
|
end;
|
|
|
|
{$IFDEF SUPPORTS_UNICODE_STRING}
|
|
IJclUnicodeStrList = interface(IJclUnicodeStrCollection)
|
|
['{F4307EB4-D66E-4656-AC56-50883D0F2C83}']
|
|
function Delete(Index: Integer): UnicodeString;
|
|
function ExtractIndex(Index: Integer): UnicodeString;
|
|
function GetString(Index: Integer): UnicodeString;
|
|
function IndexOf(const AString: UnicodeString): Integer;
|
|
function Insert(Index: Integer; const AString: UnicodeString): Boolean;
|
|
function InsertAll(Index: Integer; const ACollection: IJclUnicodeStrCollection): Boolean;
|
|
function LastIndexOf(const AString: UnicodeString): Integer;
|
|
procedure SetString(Index: Integer; const AString: UnicodeString);
|
|
function SubList(First, Count: Integer): IJclUnicodeStrList;
|
|
property Strings[Key: Integer]: UnicodeString read GetString write SetString; default;
|
|
end;
|
|
{$ENDIF SUPPORTS_UNICODE_STRING}
|
|
|
|
{$IFDEF CONTAINER_ANSISTR}
|
|
IJclStrList = IJclAnsiStrList;
|
|
{$ENDIF CONTAINER_ANSISTR}
|
|
{$IFDEF CONTAINER_WIDESTR}
|
|
IJclStrList = IJclWideStrList;
|
|
{$ENDIF CONTAINER_WIDESTR}
|
|
{$IFDEF CONTAINER_UNICODESTR}
|
|
IJclStrList = IJclUnicodeStrList;
|
|
{$ENDIF CONTAINER_UNICODESTR}
|
|
|
|
IJclSingleList = interface(IJclSingleCollection)
|
|
['{D081324C-70A4-4AAC-BA42-7557F0262826}']
|
|
function Delete(Index: Integer): Single;
|
|
function ExtractIndex(Index: Integer): Single;
|
|
function GetValue(Index: Integer): Single;
|
|
function IndexOf(const AValue: Single): Integer;
|
|
function Insert(Index: Integer; const AValue: Single): Boolean;
|
|
function InsertAll(Index: Integer; const ACollection: IJclSingleCollection): Boolean;
|
|
function LastIndexOf(const AValue: Single): Integer;
|
|
procedure SetValue(Index: Integer; const AValue: Single);
|
|
function SubList(First, Count: Integer): IJclSingleList;
|
|
property Values[Key: Integer]: Single read GetValue write SetValue; default;
|
|
end;
|
|
|
|
IJclDoubleList = interface(IJclDoubleCollection)
|
|
['{ECA58515-3903-4312-9486-3214E03F35AB}']
|
|
function Delete(Index: Integer): Double;
|
|
function ExtractIndex(Index: Integer): Double;
|
|
function GetValue(Index: Integer): Double;
|
|
function IndexOf(const AValue: Double): Integer;
|
|
function Insert(Index: Integer; const AValue: Double): Boolean;
|
|
function InsertAll(Index: Integer; const ACollection: IJclDoubleCollection): Boolean;
|
|
function LastIndexOf(const AValue: Double): Integer;
|
|
procedure SetValue(Index: Integer; const AValue: Double);
|
|
function SubList(First, Count: Integer): IJclDoubleList;
|
|
property Values[Key: Integer]: Double read GetValue write SetValue; default;
|
|
end;
|
|
|
|
IJclExtendedList = interface(IJclExtendedCollection)
|
|
['{7463F954-F8DF-4B02-A284-FCB98746248E}']
|
|
function Delete(Index: Integer): Extended;
|
|
function ExtractIndex(Index: Integer): Extended;
|
|
function GetValue(Index: Integer): Extended;
|
|
function IndexOf(const AValue: Extended): Integer;
|
|
function Insert(Index: Integer; const AValue: Extended): Boolean;
|
|
function InsertAll(Index: Integer; const ACollection: IJclExtendedCollection): Boolean;
|
|
function LastIndexOf(const AValue: Extended): Integer;
|
|
procedure SetValue(Index: Integer; const AValue: Extended);
|
|
function SubList(First, Count: Integer): IJclExtendedList;
|
|
property Values[Key: Integer]: Extended read GetValue write SetValue; default;
|
|
end;
|
|
|
|
{$IFDEF MATH_EXTENDED_PRECISION}
|
|
IJclFloatList = IJclExtendedList;
|
|
{$ENDIF MATH_EXTENDED_PRECISION}
|
|
{$IFDEF MATH_DOUBLE_PRECISION}
|
|
IJclFloatList = IJclDoubleList;
|
|
{$ENDIF MATH_DOUBLE_PRECISION}
|
|
{$IFDEF MATH_SINGLE_PRECISION}
|
|
IJclFloatList = IJclSingleList;
|
|
{$ENDIF MATH_SINGLE_PRECISION}
|
|
|
|
IJclIntegerList = interface(IJclIntegerCollection)
|
|
['{339BE91B-557D-4CE0-A854-1CBD4FE31725}']
|
|
function Delete(Index: Integer): Integer;
|
|
function ExtractIndex(Index: Integer): Integer;
|
|
function GetValue(Index: Integer): Integer;
|
|
function IndexOf(AValue: Integer): Integer;
|
|
function Insert(Index: Integer; AValue: Integer): Boolean;
|
|
function InsertAll(Index: Integer; const ACollection: IJclIntegerCollection): Boolean;
|
|
function LastIndexOf(AValue: Integer): Integer;
|
|
procedure SetValue(Index: Integer; AValue: Integer);
|
|
function SubList(First, Count: Integer): IJclIntegerList;
|
|
property Values[Key: Integer]: Integer read GetValue write SetValue; default;
|
|
end;
|
|
|
|
IJclCardinalList = interface(IJclCardinalCollection)
|
|
['{02B09EA8-DE6F-4A18-AA57-C3533E6AC4E3}']
|
|
function Delete(Index: Integer): Cardinal;
|
|
function ExtractIndex(Index: Integer): Cardinal;
|
|
function GetValue(Index: Integer): Cardinal;
|
|
function IndexOf(AValue: Cardinal): Integer;
|
|
function Insert(Index: Integer; AValue: Cardinal): Boolean;
|
|
function InsertAll(Index: Integer; const ACollection: IJclCardinalCollection): Boolean;
|
|
function LastIndexOf(AValue: Cardinal): Integer;
|
|
procedure SetValue(Index: Integer; AValue: Cardinal);
|
|
function SubList(First, Count: Integer): IJclCardinalList;
|
|
property Values[Key: Integer]: Cardinal read GetValue write SetValue; default;
|
|
end;
|
|
|
|
IJclInt64List = interface(IJclInt64Collection)
|
|
['{E8D49200-91D3-4BD0-A59B-B93EC7E2074B}']
|
|
function Delete(Index: Integer): Int64;
|
|
function ExtractIndex(Index: Integer): Int64;
|
|
function GetValue(Index: Integer): Int64;
|
|
function IndexOf(const AValue: Int64): Integer;
|
|
function Insert(Index: Integer; const AValue: Int64): Boolean;
|
|
function InsertAll(Index: Integer; const ACollection: IJclInt64Collection): Boolean;
|
|
function LastIndexOf(const AValue: Int64): Integer;
|
|
procedure SetValue(Index: Integer; const AValue: Int64);
|
|
function SubList(First, Count: Integer): IJclInt64List;
|
|
property Values[Key: Integer]: Int64 read GetValue write SetValue; default;
|
|
end;
|
|
|
|
IJclPtrList = interface(IJclPtrCollection)
|
|
['{2CF5CF1F-C012-480C-A4CE-38BDAFB15D05}']
|
|
function Delete(Index: Integer): Pointer;
|
|
function ExtractIndex(Index: Integer): Pointer;
|
|
function GetPointer(Index: Integer): Pointer;
|
|
function IndexOf(APtr: Pointer): Integer;
|
|
function Insert(Index: Integer; APtr: Pointer): Boolean;
|
|
function InsertAll(Index: Integer; const ACollection: IJclPtrCollection): Boolean;
|
|
function LastIndexOf(APtr: Pointer): Integer;
|
|
procedure SetPointer(Index: Integer; APtr: Pointer);
|
|
function SubList(First, Count: Integer): IJclPtrList;
|
|
property Pointers[Key: Integer]: Pointer read GetPointer write SetPointer; default;
|
|
end;
|
|
|
|
IJclList = interface(IJclCollection)
|
|
['{8ABC70AC-5C06-43EA-AFE0-D066379BCC28}']
|
|
function Delete(Index: Integer): TObject;
|
|
function ExtractIndex(Index: Integer): TObject;
|
|
function GetObject(Index: Integer): TObject;
|
|
function IndexOf(AObject: TObject): Integer;
|
|
function Insert(Index: Integer; AObject: TObject): Boolean;
|
|
function InsertAll(Index: Integer; const ACollection: IJclCollection): Boolean;
|
|
function LastIndexOf(AObject: TObject): Integer;
|
|
procedure SetObject(Index: Integer; AObject: TObject);
|
|
function SubList(First, Count: Integer): IJclList;
|
|
property Objects[Key: Integer]: TObject read GetObject write SetObject; default;
|
|
end;
|
|
|
|
{$IFDEF SUPPORTS_GENERICS}
|
|
IJclList<T> = interface(IJclCollection<T>)
|
|
['{3B4BE3D7-8FF7-4163-91DF-3F73AE6935E7}']
|
|
function Delete(Index: Integer): T;
|
|
function ExtractIndex(Index: Integer): T;
|
|
function GetItem(Index: Integer): T;
|
|
function IndexOf(const AItem: T): Integer;
|
|
function Insert(Index: Integer; const AItem: T): Boolean;
|
|
function InsertAll(Index: Integer; const ACollection: IJclCollection<T>): Boolean;
|
|
function LastIndexOf(const AItem: T): Integer;
|
|
procedure SetItem(Index: Integer; const AItem: T);
|
|
function SubList(First, Count: Integer): IJclList<T>;
|
|
property Items[Key: Integer]: T read GetItem write SetItem; default;
|
|
end;
|
|
{$ENDIF SUPPORTS_GENERICS}
|
|
|
|
// Pointer functions for sort algorithms
|
|
TIntfSortProc = procedure(const AList: IJclIntfList; L, R: Integer; AComparator: TIntfCompare);
|
|
TAnsiStrSortProc = procedure(const AList: IJclAnsiStrList; L, R: Integer; AComparator: TAnsiStrCompare);
|
|
TWideStrSortProc = procedure(const AList: IJclWideStrList; L, R: Integer; AComparator: TWideStrCompare);
|
|
{$IFDEF SUPPORTS_UNICODE_STRING}
|
|
TUnicodeStrSortProc = procedure(const AList: IJclUnicodeStrList; L, R: Integer; AComparator: TUnicodeStrCompare);
|
|
{$ENDIF SUPPORTS_UNICODE_STRING}
|
|
{$IFDEF CONTAINER_ANSISTR}
|
|
TStrSortProc = TAnsiStrSortProc;
|
|
{$ENDIF CONTAINER_ANSISTR}
|
|
{$IFDEF CONTAINER_WIDESTR}
|
|
TStrSortProc = TWideStrSortProc;
|
|
{$ENDIF CONTAINER_WIDESTR}
|
|
{$IFDEF CONTAINER_UNICODESTR}
|
|
TStrSortProc = TUnicodeStrSortProc;
|
|
{$ENDIF CONTAINER_UNICODESTR}
|
|
TSingleSortProc = procedure(const AList: IJclSingleList; L, R: Integer; AComparator: TSingleCompare);
|
|
TDoubleSortProc = procedure(const AList: IJclDoubleList; L, R: Integer; AComparator: TDoubleCompare);
|
|
TExtendedSortProc = procedure(const AList: IJclExtendedList; L, R: Integer; AComparator: TExtendedCompare);
|
|
TIntegerSortProc = procedure(const AList: IJclIntegerList; L, R: Integer; AComparator: TIntegerCompare);
|
|
TCardinalSortProc = procedure(const AList: IJclCardinalList; L, R: Integer; AComparator: TCardinalCompare);
|
|
TInt64SortProc = procedure(const AList: IJclInt64List; L, R: Integer; AComparator: TInt64Compare);
|
|
TPtrSortProc = procedure(const AList: IJclPtrList; L, R: Integer; AComparator: TPtrCompare);
|
|
TSortProc = procedure(const AList: IJclList; L, R: Integer; AComparator: TCompare);
|
|
{$IFDEF SUPPORTS_GENERICS}
|
|
TSortProc<T> = procedure(const AList: IJclList<T>; L, R: Integer; AComparator: TCompare<T>);
|
|
{$ENDIF SUPPORTS_GENERICS}
|
|
|
|
IJclIntfArray = interface(IJclIntfList)
|
|
['{B055B427-7817-43FC-97D4-AD1845643D63}']
|
|
function GetObject(Index: Integer): IInterface;
|
|
procedure SetObject(Index: Integer; const AInterface: IInterface);
|
|
property Objects[Index: Integer]: IInterface read GetObject write SetObject; default;
|
|
end;
|
|
|
|
IJclAnsiStrArray = interface(IJclAnsiStrList)
|
|
['{4953EA83-9288-4537-9D10-544D1C992B62}']
|
|
function GetString(Index: Integer): AnsiString;
|
|
procedure SetString(Index: Integer; const AString: AnsiString);
|
|
property Strings[Index: Integer]: AnsiString read GetString write SetString; default;
|
|
end;
|
|
|
|
IJclWideStrArray = interface(IJclWideStrList)
|
|
['{3CE09F9A-5CB4-4867-80D5-C2313D278D69}']
|
|
function GetString(Index: Integer): WideString;
|
|
procedure SetString(Index: Integer; const AString: WideString);
|
|
property Strings[Index: Integer]: WideString read GetString write SetString; default;
|
|
end;
|
|
|
|
{$IFDEF SUPPORTS_UNICODE_STRING}
|
|
IJclUnicodeStrArray = interface(IJclUnicodeStrList)
|
|
['{24312E5B-B61D-485C-9E57-AC36C93D8159}']
|
|
function GetString(Index: Integer): UnicodeString;
|
|
procedure SetString(Index: Integer; const AString: UnicodeString);
|
|
property Strings[Index: Integer]: UnicodeString read GetString write SetString; default;
|
|
end;
|
|
{$ENDIF SUPPORTS_UNICODE_STRING}
|
|
|
|
{$IFDEF CONTAINER_ANSISTR}
|
|
IJclStrArray = IJclAnsiStrArray;
|
|
{$ENDIF CONTAINER_ANSISTR}
|
|
{$IFDEF CONTAINER_WIDESTR}
|
|
IJclStrArray = IJclWideStrArray;
|
|
{$ENDIF CONTAINER_WIDESTR}
|
|
{$IFDEF CONTAINER_UNICODESTR}
|
|
IJclStrArray = IJclUnicodeStrArray;
|
|
{$ENDIF CONTAINER_UNICODESTR}
|
|
|
|
IJclSingleArray = interface(IJclSingleList)
|
|
['{B96E2A4D-D750-4B65-B975-C619A05A29F6}']
|
|
function GetValue(Index: Integer): Single;
|
|
procedure SetValue(Index: Integer; const AValue: Single);
|
|
property Values[Index: Integer]: Single read GetValue write SetValue; default;
|
|
end;
|
|
|
|
IJclDoubleArray = interface(IJclDoubleList)
|
|
['{67E66324-9757-4E85-8ECD-53396910FB39}']
|
|
function GetValue(Index: Integer): Double;
|
|
procedure SetValue(Index: Integer; const AValue: Double);
|
|
property Values[Index: Integer]: Double read GetValue write SetValue; default;
|
|
end;
|
|
|
|
IJclExtendedArray = interface(IJclExtendedList)
|
|
['{D43E8D18-26B3-41A2-8D52-ED7EA2FE1AB7}']
|
|
function GetValue(Index: Integer): Extended;
|
|
procedure SetValue(Index: Integer; const AValue: Extended);
|
|
property Values[Index: Integer]: Extended read GetValue write SetValue; default;
|
|
end;
|
|
|
|
{$IFDEF MATH_EXTENDED_PRECISION}
|
|
IJclFloatArray = IJclExtendedArray;
|
|
{$ENDIF MATH_EXTENDED_PRECISION}
|
|
{$IFDEF MATH_DOUBLE_PRECISION}
|
|
IJclFloatArray = IJclDoubleArray;
|
|
{$ENDIF MATH_DOUBLE_PRECISION}
|
|
{$IFDEF MATH_SINGLE_PRECISION}
|
|
IJclFloatArray = IJclSingleArray;
|
|
{$ENDIF MATH_SINGLE_PRECISION}
|
|
|
|
IJclIntegerArray = interface(IJclIntegerList)
|
|
['{2B7C8B33-C0BD-4EC3-9764-63866E174781}']
|
|
function GetValue(Index: Integer): Integer;
|
|
procedure SetValue(Index: Integer; AValue: Integer);
|
|
property Values[Index: Integer]: Integer read GetValue write SetValue; default;
|
|
end;
|
|
|
|
IJclCardinalArray = interface(IJclCardinalList)
|
|
['{C451F2F8-65C6-4C29-99A0-CC9C15356418}']
|
|
function GetValue(Index: Integer): Cardinal;
|
|
procedure SetValue(Index: Integer; AValue: Cardinal);
|
|
property Values[Index: Integer]: Cardinal read GetValue write SetValue; default;
|
|
end;
|
|
|
|
IJclInt64Array = interface(IJclInt64List)
|
|
['{D947C43D-2D04-442A-A707-39EDE7D96FC9}']
|
|
function GetValue(Index: Integer): Int64;
|
|
procedure SetValue(Index: Integer; const AValue: Int64);
|
|
property Values[Index: Integer]: Int64 read GetValue write SetValue; default;
|
|
end;
|
|
|
|
IJclPtrArray = interface(IJclPtrList)
|
|
['{D43E8D18-26B3-41A2-8D52-ED7EA2FE1AB7}']
|
|
function GetPointer(Index: Integer): Pointer;
|
|
procedure SetPointer(Index: Integer; APtr: Pointer);
|
|
property Pointers[Index: Integer]: Pointer read GetPointer write SetPointer; default;
|
|
end;
|
|
|
|
IJclArray = interface(IJclList)
|
|
['{A69F6D35-54B2-4361-852E-097ED75E648A}']
|
|
function GetObject(Index: Integer): TObject;
|
|
procedure SetObject(Index: Integer; AObject: TObject);
|
|
property Objects[Index: Integer]: TObject read GetObject write SetObject; default;
|
|
end;
|
|
|
|
{$IFDEF SUPPORTS_GENERICS}
|
|
IJclArray<T> = interface(IJclList<T>)
|
|
['{38810C13-E35E-428A-B84F-D25FB994BE8E}']
|
|
function GetItem(Index: Integer): T;
|
|
procedure SetItem(Index: Integer; const AItem: T);
|
|
property Items[Index: Integer]: T read GetItem write SetItem; default;
|
|
end;
|
|
{$ENDIF SUPPORTS_GENERICS}
|
|
|
|
IJclIntfSet = interface(IJclIntfCollection)
|
|
['{E2D28852-9774-49B7-A739-5DBA2B705924}']
|
|
procedure Intersect(const ACollection: IJclIntfCollection);
|
|
procedure Subtract(const ACollection: IJclIntfCollection);
|
|
procedure Union(const ACollection: IJclIntfCollection);
|
|
end;
|
|
|
|
IJclAnsiStrSet = interface(IJclAnsiStrCollection)
|
|
['{72204D85-2B68-4914-B9F2-09E5180C12E9}']
|
|
procedure Intersect(const ACollection: IJclAnsiStrCollection);
|
|
procedure Subtract(const ACollection: IJclAnsiStrCollection);
|
|
procedure Union(const ACollection: IJclAnsiStrCollection);
|
|
end;
|
|
|
|
IJclWideStrSet = interface(IJclWideStrCollection)
|
|
['{08009E0A-ABDD-46AB-8CEE-407D4723E17C}']
|
|
procedure Intersect(const ACollection: IJclWideStrCollection);
|
|
procedure Subtract(const ACollection: IJclWideStrCollection);
|
|
procedure Union(const ACollection: IJclWideStrCollection);
|
|
end;
|
|
|
|
{$IFDEF SUPPORTS_UNICODE_STRING}
|
|
IJclUnicodeStrSet = interface(IJclUnicodeStrCollection)
|
|
['{440E9BCB-341F-40B6-8AED-479B2E98C92A}']
|
|
procedure Intersect(const ACollection: IJclUnicodeStrCollection);
|
|
procedure Subtract(const ACollection: IJclUnicodeStrCollection);
|
|
procedure Union(const ACollection: IJclUnicodeStrCollection);
|
|
end;
|
|
{$ENDIF SUPPORTS_UNICODE_STRING}
|
|
|
|
{$IFDEF CONTAINER_ANSISTR}
|
|
IJclStrSet = IJclAnsiStrSet;
|
|
{$ENDIF CONTAINER_ANSISTR}
|
|
{$IFDEF CONTAINER_WIDESTR}
|
|
IJclStrSet = IJclWideStrSet;
|
|
{$ENDIF CONTAINER_WIDESTR}
|
|
{$IFDEF CONTAINER_UNICODESTR}
|
|
IJclStrSet = IJclUnicodeStrSet;
|
|
{$ENDIF CONTAINER_UNICODESTR}
|
|
|
|
IJclSingleSet = interface(IJclSingleCollection)
|
|
['{36E34A78-6A29-4503-97D5-4BF53538CEC0}']
|
|
procedure Intersect(const ACollection: IJclSingleCollection);
|
|
procedure Subtract(const ACollection: IJclSingleCollection);
|
|
procedure Union(const ACollection: IJclSingleCollection);
|
|
end;
|
|
|
|
IJclDoubleSet = interface(IJclDoubleCollection)
|
|
['{4E1E4847-E934-4811-A26C-5FC8E772A623}']
|
|
procedure Intersect(const ACollection: IJclDoubleCollection);
|
|
procedure Subtract(const ACollection: IJclDoubleCollection);
|
|
procedure Union(const ACollection: IJclDoubleCollection);
|
|
end;
|
|
|
|
IJclExtendedSet = interface(IJclExtendedCollection)
|
|
['{3B9CF52D-1C49-4388-A7B3-9BEE1821FFD4}']
|
|
procedure Intersect(const ACollection: IJclExtendedCollection);
|
|
procedure Subtract(const ACollection: IJclExtendedCollection);
|
|
procedure Union(const ACollection: IJclExtendedCollection);
|
|
end;
|
|
|
|
{$IFDEF MATH_EXTENDED_PRECISION}
|
|
IJclFloatSet = IJclExtendedSet;
|
|
{$ENDIF MATH_EXTENDED_PRECISION}
|
|
{$IFDEF MATH_DOUBLE_PRECISION}
|
|
IJclFloatSet = IJclDoubleSet;
|
|
{$ENDIF MATH_DOUBLE_PRECISION}
|
|
{$IFDEF MATH_SINGLE_PRECISION}
|
|
IJclFloatSet = IJclSingleSet;
|
|
{$ENDIF MATH_SINGLE_PRECISION}
|
|
|
|
IJclIntegerSet = interface(IJclIntegerCollection)
|
|
['{5E4D29AF-F508-465B-9008-D11FF82F25FE}']
|
|
procedure Intersect(const ACollection: IJclIntegerCollection);
|
|
procedure Subtract(const ACollection: IJclIntegerCollection);
|
|
procedure Union(const ACollection: IJclIntegerCollection);
|
|
end;
|
|
|
|
IJclCardinalSet = interface(IJclCardinalCollection)
|
|
['{09858637-CE8F-42E6-97E0-2786CD68387B}']
|
|
procedure Intersect(const ACollection: IJclCardinalCollection);
|
|
procedure Subtract(const ACollection: IJclCardinalCollection);
|
|
procedure Union(const ACollection: IJclCardinalCollection);
|
|
end;
|
|
|
|
IJclInt64Set = interface(IJclInt64Collection)
|
|
['{ACB3127A-48EE-4F9F-B988-6AE9057780E9}']
|
|
procedure Intersect(const ACollection: IJclInt64Collection);
|
|
procedure Subtract(const ACollection: IJclInt64Collection);
|
|
procedure Union(const ACollection: IJclInt64Collection);
|
|
end;
|
|
|
|
IJclPtrSet = interface(IJclPtrCollection)
|
|
['{26717C68-4F83-4CCB-973A-7324FBD09632}']
|
|
procedure Intersect(const ACollection: IJclPtrCollection);
|
|
procedure Subtract(const ACollection: IJclPtrCollection);
|
|
procedure Union(const ACollection: IJclPtrCollection);
|
|
end;
|
|
|
|
IJclSet = interface(IJclCollection)
|
|
['{0B7CDB90-8588-4260-A54C-D87101C669EA}']
|
|
procedure Intersect(const ACollection: IJclCollection);
|
|
procedure Subtract(const ACollection: IJclCollection);
|
|
procedure Union(const ACollection: IJclCollection);
|
|
end;
|
|
|
|
{$IFDEF SUPPORTS_GENERICS}
|
|
IJclSet<T> = interface(IJclCollection<T>)
|
|
['{0B7CDB90-8588-4260-A54C-D87101C669EA}']
|
|
procedure Intersect(const ACollection: IJclCollection<T>);
|
|
procedure Subtract(const ACollection: IJclCollection<T>);
|
|
procedure Union(const ACollection: IJclCollection<T>);
|
|
end;
|
|
{$ENDIF SUPPORTS_GENERICS}
|
|
|
|
TJclTraverseOrder = (toPreOrder, toOrder, toPostOrder);
|
|
|
|
IJclIntfTree = interface(IJclIntfCollection)
|
|
['{5A21688F-113D-41B4-A17C-54BDB0BD6559}']
|
|
function GetRoot: IJclIntfTreeIterator;
|
|
function GetTraverseOrder: TJclTraverseOrder;
|
|
procedure SetTraverseOrder(Value: TJclTraverseOrder);
|
|
property Root: IJclIntfTreeIterator read GetRoot;
|
|
property TraverseOrder: TJclTraverseOrder read GetTraverseOrder write SetTraverseOrder;
|
|
end;
|
|
|
|
IJclAnsiStrTree = interface(IJclAnsiStrCollection)
|
|
['{1E1896C0-0497-47DF-83AF-A9422084636C}']
|
|
function GetRoot: IJclAnsiStrTreeIterator;
|
|
function GetTraverseOrder: TJclTraverseOrder;
|
|
procedure SetTraverseOrder(Value: TJclTraverseOrder);
|
|
property Root: IJclAnsiStrTreeIterator read GetRoot;
|
|
property TraverseOrder: TJclTraverseOrder read GetTraverseOrder write SetTraverseOrder;
|
|
end;
|
|
|
|
IJclWideStrTree = interface(IJclWideStrCollection)
|
|
['{E325615A-7A20-4788-87FA-9051002CCD91}']
|
|
function GetRoot: IJclWideStrTreeIterator;
|
|
function GetTraverseOrder: TJclTraverseOrder;
|
|
procedure SetTraverseOrder(Value: TJclTraverseOrder);
|
|
property Root: IJclWideStrTreeIterator read GetRoot;
|
|
property TraverseOrder: TJclTraverseOrder read GetTraverseOrder write SetTraverseOrder;
|
|
end;
|
|
|
|
{$IFDEF SUPPORTS_UNICODE_STRING}
|
|
IJclUnicodeStrTree = interface(IJclUnicodeStrCollection)
|
|
['{A378BC36-1FB1-4330-A335-037DD370E81B}']
|
|
function GetRoot: IJclUnicodeStrTreeIterator;
|
|
function GetTraverseOrder: TJclTraverseOrder;
|
|
procedure SetTraverseOrder(Value: TJclTraverseOrder);
|
|
property Root: IJclUnicodeStrTreeIterator read GetRoot;
|
|
property TraverseOrder: TJclTraverseOrder read GetTraverseOrder write SetTraverseOrder;
|
|
end;
|
|
{$ENDIF SUPPORTS_UNICODE_STRING}
|
|
|
|
{$IFDEF CONTAINER_ANSISTR}
|
|
IJclStrTree = IJclAnsiStrTree;
|
|
{$ENDIF CONTAINER_ANSISTR}
|
|
{$IFDEF CONTAINER_WIDESTR}
|
|
IJclStrTree = IJclWideStrTree;
|
|
{$ENDIF CONTAINER_WIDESTR}
|
|
{$IFDEF CONTAINER_UNICODESTR}
|
|
IJclStrTree = IJclUnicodeStrTree;
|
|
{$ENDIF CONTAINER_UNICODESTR}
|
|
|
|
IJclSingleTree = interface(IJclSingleCollection)
|
|
['{A90A51BC-EBD7-40D3-B0A0-C9987E7A83D0}']
|
|
function GetRoot: IJclSingleTreeIterator;
|
|
function GetTraverseOrder: TJclTraverseOrder;
|
|
procedure SetTraverseOrder(Value: TJclTraverseOrder);
|
|
property Root: IJclSingleTreeIterator read GetRoot;
|
|
property TraverseOrder: TJclTraverseOrder read GetTraverseOrder write SetTraverseOrder;
|
|
end;
|
|
|
|
IJclDoubleTree = interface(IJclDoubleCollection)
|
|
['{69DA85B1-A0DD-407B-B5CF-5EB7C6D4B82D}']
|
|
function GetRoot: IJclDoubleTreeIterator;
|
|
function GetTraverseOrder: TJclTraverseOrder;
|
|
procedure SetTraverseOrder(Value: TJclTraverseOrder);
|
|
property Root: IJclDoubleTreeIterator read GetRoot;
|
|
property TraverseOrder: TJclTraverseOrder read GetTraverseOrder write SetTraverseOrder;
|
|
end;
|
|
|
|
IJclExtendedTree = interface(IJclExtendedCollection)
|
|
['{9ACCCAFD-B617-43DC-AAF9-916BE324A17E}']
|
|
function GetRoot: IJclExtendedTreeIterator;
|
|
function GetTraverseOrder: TJclTraverseOrder;
|
|
procedure SetTraverseOrder(Value: TJclTraverseOrder);
|
|
property Root: IJclExtendedTreeIterator read GetRoot;
|
|
property TraverseOrder: TJclTraverseOrder read GetTraverseOrder write SetTraverseOrder;
|
|
end;
|
|
|
|
{$IFDEF MATH_EXTENDED_PRECISION}
|
|
IJclFloatTree = IJclExtendedTree;
|
|
{$ENDIF MATH_EXTENDED_PRECISION}
|
|
{$IFDEF MATH_DOUBLE_PRECISION}
|
|
IJclFloatTree = IJclDoubleTree;
|
|
{$ENDIF MATH_DOUBLE_PRECISION}
|
|
{$IFDEF MATH_SINGLE_PRECISION}
|
|
IJclFloatTree = IJclSingleTree;
|
|
{$ENDIF MATH_SINGLE_PRECISION}
|
|
|
|
IJclIntegerTree = interface(IJclIntegerCollection)
|
|
['{40A6F934-E5F3-4C74-AC02-227035C8C3C6}']
|
|
function GetRoot: IJclIntegerTreeIterator;
|
|
function GetTraverseOrder: TJclTraverseOrder;
|
|
procedure SetTraverseOrder(Value: TJclTraverseOrder);
|
|
property Root: IJclIntegerTreeIterator read GetRoot;
|
|
property TraverseOrder: TJclTraverseOrder read GetTraverseOrder write SetTraverseOrder;
|
|
end;
|
|
|
|
IJclCardinalTree = interface(IJclCardinalCollection)
|
|
['{6C76C668-50C8-42A2-B72B-79BF102E270D}']
|
|
function GetRoot: IJclCardinalTreeIterator;
|
|
function GetTraverseOrder: TJclTraverseOrder;
|
|
procedure SetTraverseOrder(Value: TJclTraverseOrder);
|
|
property Root: IJclCardinalTreeIterator read GetRoot;
|
|
property TraverseOrder: TJclTraverseOrder read GetTraverseOrder write SetTraverseOrder;
|
|
end;
|
|
|
|
IJclInt64Tree = interface(IJclInt64Collection)
|
|
['{1925B973-8B75-4A79-A993-DF2598FF19BE}']
|
|
function GetRoot: IJclInt64TreeIterator;
|
|
function GetTraverseOrder: TJclTraverseOrder;
|
|
procedure SetTraverseOrder(Value: TJclTraverseOrder);
|
|
property Root: IJclInt64TreeIterator read GetRoot;
|
|
property TraverseOrder: TJclTraverseOrder read GetTraverseOrder write SetTraverseOrder;
|
|
end;
|
|
|
|
IJclPtrTree = interface(IJclPtrCollection)
|
|
['{2C1ACA3E-3F23-4E3C-984D-151CF9776E14}']
|
|
function GetRoot: IJclPtrTreeIterator;
|
|
function GetTraverseOrder: TJclTraverseOrder;
|
|
procedure SetTraverseOrder(Value: TJclTraverseOrder);
|
|
property Root: IJclPtrTreeIterator read GetRoot;
|
|
property TraverseOrder: TJclTraverseOrder read GetTraverseOrder write SetTraverseOrder;
|
|
end;
|
|
|
|
IJclTree = interface(IJclCollection)
|
|
['{B0C658CC-FEF5-4178-A4C5-442C0DEDE207}']
|
|
function GetRoot: IJclTreeIterator;
|
|
function GetTraverseOrder: TJclTraverseOrder;
|
|
procedure SetTraverseOrder(Value: TJclTraverseOrder);
|
|
property Root: IJclTreeIterator read GetRoot;
|
|
property TraverseOrder: TJclTraverseOrder read GetTraverseOrder write SetTraverseOrder;
|
|
end;
|
|
|
|
{$IFDEF SUPPORTS_GENERICS}
|
|
IJclTree<T> = interface(IJclCollection<T>)
|
|
['{3F963AB5-5A75-41F9-A21B-7E7FB541A459}']
|
|
function GetRoot: IJclTreeIterator<T>;
|
|
function GetTraverseOrder: TJclTraverseOrder;
|
|
procedure SetTraverseOrder(Value: TJclTraverseOrder);
|
|
property Root: IJclTreeIterator<T> read GetRoot;
|
|
property TraverseOrder: TJclTraverseOrder read GetTraverseOrder write SetTraverseOrder;
|
|
end;
|
|
{$ENDIF SUPPORTS_GENERICS}
|
|
|
|
IJclIntfIntfMap = interface(IJclContainer)
|
|
['{01D05399-4A05-4F3E-92F4-0C236BE77019}']
|
|
procedure Clear;
|
|
function ContainsKey(const Key: IInterface): Boolean;
|
|
function ContainsValue(const Value: IInterface): Boolean;
|
|
function Extract(const Key: IInterface): IInterface;
|
|
function GetValue(const Key: IInterface): IInterface;
|
|
function IsEmpty: Boolean;
|
|
function KeyOfValue(const Value: IInterface): IInterface;
|
|
function KeySet: IJclIntfSet;
|
|
function MapEquals(const AMap: IJclIntfIntfMap): Boolean;
|
|
procedure PutAll(const AMap: IJclIntfIntfMap);
|
|
procedure PutValue(const Key, Value: IInterface);
|
|
function Remove(const Key: IInterface): IInterface;
|
|
function Size: Integer;
|
|
function Values: IJclIntfCollection;
|
|
property Items[const Key: IInterface]: IInterface read GetValue write PutValue;
|
|
{$IFNDEF BUGGY_DEFAULT_INDEXED_PROP} default; {$ENDIF ~BUGGY_DEFAULT_INDEXED_PROP}
|
|
end;
|
|
|
|
(*IJclMultiIntfIntfMap = interface(IJclIntfIntfMap)
|
|
['{497775A5-D3F1-49FC-A641-15CC9E77F3D0}']
|
|
function GetValues(const Key: IInterface): IJclIntfIterator;
|
|
function Count(const Key: IInterface): Integer;
|
|
end;*)
|
|
|
|
IJclAnsiStrIntfMap = interface(IJclAnsiStrContainer)
|
|
['{A4788A96-281A-4924-AA24-03776DDAAD8A}']
|
|
procedure Clear;
|
|
function ContainsKey(const Key: AnsiString): Boolean;
|
|
function ContainsValue(const Value: IInterface): Boolean;
|
|
function Extract(const Key: AnsiString): IInterface;
|
|
function GetValue(const Key: AnsiString): IInterface;
|
|
function IsEmpty: Boolean;
|
|
function KeyOfValue(const Value: IInterface): AnsiString;
|
|
function KeySet: IJclAnsiStrSet;
|
|
function MapEquals(const AMap: IJclAnsiStrIntfMap): Boolean;
|
|
procedure PutAll(const AMap: IJclAnsiStrIntfMap);
|
|
procedure PutValue(const Key: AnsiString; const Value: IInterface);
|
|
function Remove(const Key: AnsiString): IInterface;
|
|
function Size: Integer;
|
|
function Values: IJclIntfCollection;
|
|
property Items[const Key: AnsiString]: IInterface read GetValue write PutValue;
|
|
{$IFNDEF BUGGY_DEFAULT_INDEXED_PROP} default; {$ENDIF ~BUGGY_DEFAULT_INDEXED_PROP}
|
|
end;
|
|
|
|
IJclWideStrIntfMap = interface(IJclWideStrContainer)
|
|
['{C959AB76-9CF0-4C2C-A2C6-8A1846563FAF}']
|
|
procedure Clear;
|
|
function ContainsKey(const Key: WideString): Boolean;
|
|
function ContainsValue(const Value: IInterface): Boolean;
|
|
function Extract(const Key: WideString): IInterface;
|
|
function GetValue(const Key: WideString): IInterface;
|
|
function IsEmpty: Boolean;
|
|
function KeyOfValue(const Value: IInterface): WideString;
|
|
function KeySet: IJclWideStrSet;
|
|
function MapEquals(const AMap: IJclWideStrIntfMap): Boolean;
|
|
procedure PutAll(const AMap: IJclWideStrIntfMap);
|
|
procedure PutValue(const Key: WideString; const Value: IInterface);
|
|
function Remove(const Key: WideString): IInterface;
|
|
function Size: Integer;
|
|
function Values: IJclIntfCollection;
|
|
property Items[const Key: WideString]: IInterface read GetValue write PutValue;
|
|
{$IFNDEF BUGGY_DEFAULT_INDEXED_PROP} default; {$ENDIF ~BUGGY_DEFAULT_INDEXED_PROP}
|
|
end;
|
|
|
|
{$IFDEF SUPPORTS_UNICODE_STRING}
|
|
IJclUnicodeStrIntfMap = interface(IJclUnicodeStrContainer)
|
|
['{C83D4F5E-8E66-41E9-83F6-338B44F24BE6}']
|
|
procedure Clear;
|
|
function ContainsKey(const Key: UnicodeString): Boolean;
|
|
function ContainsValue(const Value: IInterface): Boolean;
|
|
function Extract(const Key: UnicodeString): IInterface;
|
|
function GetValue(const Key: UnicodeString): IInterface;
|
|
function IsEmpty: Boolean;
|
|
function KeyOfValue(const Value: IInterface): UnicodeString;
|
|
function KeySet: IJclUnicodeStrSet;
|
|
function MapEquals(const AMap: IJclUnicodeStrIntfMap): Boolean;
|
|
procedure PutAll(const AMap: IJclUnicodeStrIntfMap);
|
|
procedure PutValue(const Key: UnicodeString; const Value: IInterface);
|
|
function Remove(const Key: UnicodeString): IInterface;
|
|
function Size: Integer;
|
|
function Values: IJclIntfCollection;
|
|
property Items[const Key: UnicodeString]: IInterface read GetValue write PutValue;
|
|
{$IFNDEF BUGGY_DEFAULT_INDEXED_PROP} default; {$ENDIF ~BUGGY_DEFAULT_INDEXED_PROP}
|
|
end;
|
|
{$ENDIF SUPPORTS_UNICODE_STRING}
|
|
|
|
{$IFDEF CONTAINER_ANSISTR}
|
|
IJclStrIntfMap = IJclAnsiStrIntfMap;
|
|
{$ENDIF CONTAINER_ANSISTR}
|
|
{$IFDEF CONTAINER_WIDESTR}
|
|
IJclStrIntfMap = IJclWideStrIntfMap;
|
|
{$ENDIF CONTAINER_WIDESTR}
|
|
{$IFDEF CONTAINER_UNICODESTR}
|
|
IJclStrIntfMap = IJclUnicodeStrIntfMap;
|
|
{$ENDIF CONTAINER_UNICODESTR}
|
|
|
|
IJclIntfAnsiStrMap = interface(IJclAnsiStrContainer)
|
|
['{B10E324A-1D98-42FF-B9B4-7F99044591B2}']
|
|
procedure Clear;
|
|
function ContainsKey(const Key: IInterface): Boolean;
|
|
function ContainsValue(const Value: AnsiString): Boolean;
|
|
function Extract(const Key: IInterface): AnsiString;
|
|
function GetValue(const Key: IInterface): AnsiString;
|
|
function IsEmpty: Boolean;
|
|
function KeyOfValue(const Value: AnsiString): IInterface;
|
|
function KeySet: IJclIntfSet;
|
|
function MapEquals(const AMap: IJclIntfAnsiStrMap): Boolean;
|
|
procedure PutAll(const AMap: IJclIntfAnsiStrMap);
|
|
procedure PutValue(const Key: IInterface; const Value: AnsiString);
|
|
function Remove(const Key: IInterface): AnsiString;
|
|
function Size: Integer;
|
|
function Values: IJclAnsiStrCollection;
|
|
property Items[const Key: IInterface]: AnsiString read GetValue write PutValue;
|
|
{$IFNDEF BUGGY_DEFAULT_INDEXED_PROP} default; {$ENDIF ~BUGGY_DEFAULT_INDEXED_PROP}
|
|
end;
|
|
|
|
IJclIntfWideStrMap = interface(IJclWideStrContainer)
|
|
['{D9FD7887-B840-4636-8A8F-E586663E332C}']
|
|
procedure Clear;
|
|
function ContainsKey(const Key: IInterface): Boolean;
|
|
function ContainsValue(const Value: WideString): Boolean;
|
|
function Extract(const Key: IInterface): WideString;
|
|
function GetValue(const Key: IInterface): WideString;
|
|
function IsEmpty: Boolean;
|
|
function KeyOfValue(const Value: WideString): IInterface;
|
|
function KeySet: IJclIntfSet;
|
|
function MapEquals(const AMap: IJclIntfWideStrMap): Boolean;
|
|
procedure PutAll(const AMap: IJclIntfWideStrMap);
|
|
procedure PutValue(const Key: IInterface; const Value: WideString);
|
|
function Remove(const Key: IInterface): WideString;
|
|
function Size: Integer;
|
|
function Values: IJclWideStrCollection;
|
|
property Items[const Key: IInterface]: WideString read GetValue write PutValue;
|
|
{$IFNDEF BUGGY_DEFAULT_INDEXED_PROP} default; {$ENDIF ~BUGGY_DEFAULT_INDEXED_PROP}
|
|
end;
|
|
|
|
{$IFDEF SUPPORTS_UNICODE_STRING}
|
|
IJclIntfUnicodeStrMap = interface(IJclUnicodeStrContainer)
|
|
['{40F8B873-B763-4A3C-8EC4-31DB3404BF73}']
|
|
procedure Clear;
|
|
function ContainsKey(const Key: IInterface): Boolean;
|
|
function ContainsValue(const Value: UnicodeString): Boolean;
|
|
function Extract(const Key: IInterface): UnicodeString;
|
|
function GetValue(const Key: IInterface): UnicodeString;
|
|
function IsEmpty: Boolean;
|
|
function KeyOfValue(const Value: UnicodeString): IInterface;
|
|
function KeySet: IJclIntfSet;
|
|
function MapEquals(const AMap: IJclIntfUnicodeStrMap): Boolean;
|
|
procedure PutAll(const AMap: IJclIntfUnicodeStrMap);
|
|
procedure PutValue(const Key: IInterface; const Value: UnicodeString);
|
|
function Remove(const Key: IInterface): UnicodeString;
|
|
function Size: Integer;
|
|
function Values: IJclUnicodeStrCollection;
|
|
property Items[const Key: IInterface]: UnicodeString read GetValue write PutValue;
|
|
{$IFNDEF BUGGY_DEFAULT_INDEXED_PROP} default; {$ENDIF ~BUGGY_DEFAULT_INDEXED_PROP}
|
|
end;
|
|
{$ENDIF SUPPORTS_UNICODE_STRING}
|
|
|
|
{$IFDEF CONTAINER_ANSISTR}
|
|
IJclIntfStrMap = IJclIntfAnsiStrMap;
|
|
{$ENDIF CONTAINER_ANSISTR}
|
|
{$IFDEF CONTAINER_WIDESTR}
|
|
IJclIntfStrMap = IJclIntfWideStrMap;
|
|
{$ENDIF CONTAINER_WIDESTR}
|
|
{$IFDEF CONTAINER_UNICODESTR}
|
|
IJclIntfStrMap = IJclIntfUnicodeStrMap;
|
|
{$ENDIF CONTAINER_UNICODESTR}
|
|
|
|
IJclAnsiStrAnsiStrMap = interface(IJclAnsiStrContainer)
|
|
['{A4788A96-281A-4924-AA24-03776DDAAD8A}']
|
|
procedure Clear;
|
|
function ContainsKey(const Key: AnsiString): Boolean;
|
|
function ContainsValue(const Value: AnsiString): Boolean;
|
|
function Extract(const Key: AnsiString): AnsiString;
|
|
function GetValue(const Key: AnsiString): AnsiString;
|
|
function IsEmpty: Boolean;
|
|
function KeyOfValue(const Value: AnsiString): AnsiString;
|
|
function KeySet: IJclAnsiStrSet;
|
|
function MapEquals(const AMap: IJclAnsiStrAnsiStrMap): Boolean;
|
|
procedure PutAll(const AMap: IJclAnsiStrAnsiStrMap);
|
|
procedure PutValue(const Key, Value: AnsiString);
|
|
function Remove(const Key: AnsiString): AnsiString;
|
|
function Size: Integer;
|
|
function Values: IJclAnsiStrCollection;
|
|
property Items[const Key: AnsiString]: AnsiString read GetValue write PutValue;
|
|
{$IFNDEF BUGGY_DEFAULT_INDEXED_PROP} default; {$ENDIF ~BUGGY_DEFAULT_INDEXED_PROP}
|
|
end;
|
|
|
|
IJclWideStrWideStrMap = interface(IJclWideStrContainer)
|
|
['{8E8D2735-C4FB-4F00-8802-B2102BCE3644}']
|
|
procedure Clear;
|
|
function ContainsKey(const Key: WideString): Boolean;
|
|
function ContainsValue(const Value: WideString): Boolean;
|
|
function Extract(const Key: WideString): WideString;
|
|
function GetValue(const Key: WideString): WideString;
|
|
function IsEmpty: Boolean;
|
|
function KeyOfValue(const Value: WideString): WideString;
|
|
function KeySet: IJclWideStrSet;
|
|
function MapEquals(const AMap: IJclWideStrWideStrMap): Boolean;
|
|
procedure PutAll(const AMap: IJclWideStrWideStrMap);
|
|
procedure PutValue(const Key, Value: WideString);
|
|
function Remove(const Key: WideString): WideString;
|
|
function Size: Integer;
|
|
function Values: IJclWideStrCollection;
|
|
property Items[const Key: WideString]: WideString read GetValue write PutValue;
|
|
{$IFNDEF BUGGY_DEFAULT_INDEXED_PROP} default; {$ENDIF ~BUGGY_DEFAULT_INDEXED_PROP}
|
|
end;
|
|
|
|
{$IFDEF SUPPORTS_UNICODE_STRING}
|
|
IJclUnicodeStrUnicodeStrMap = interface(IJclUnicodeStrContainer)
|
|
['{557E1CBD-06AC-41C2-BAED-253709CBD0AE}']
|
|
procedure Clear;
|
|
function ContainsKey(const Key: UnicodeString): Boolean;
|
|
function ContainsValue(const Value: UnicodeString): Boolean;
|
|
function Extract(const Key: UnicodeString): UnicodeString;
|
|
function GetValue(const Key: UnicodeString): UnicodeString;
|
|
function IsEmpty: Boolean;
|
|
function KeyOfValue(const Value: UnicodeString): UnicodeString;
|
|
function KeySet: IJclUnicodeStrSet;
|
|
function MapEquals(const AMap: IJclUnicodeStrUnicodeStrMap): Boolean;
|
|
procedure PutAll(const AMap: IJclUnicodeStrUnicodeStrMap);
|
|
procedure PutValue(const Key, Value: UnicodeString);
|
|
function Remove(const Key: UnicodeString): UnicodeString;
|
|
function Size: Integer;
|
|
function Values: IJclUnicodeStrCollection;
|
|
property Items[const Key: UnicodeString]: UnicodeString read GetValue write PutValue;
|
|
{$IFNDEF BUGGY_DEFAULT_INDEXED_PROP} default; {$ENDIF ~BUGGY_DEFAULT_INDEXED_PROP}
|
|
end;
|
|
{$ENDIF SUPPORTS_UNICODE_STRING}
|
|
|
|
{$IFDEF CONTAINER_ANSISTR}
|
|
IJclStrStrMap = IJclAnsiStrAnsiStrMap;
|
|
{$ENDIF CONTAINER_ANSISTR}
|
|
{$IFDEF CONTAINER_WIDESTR}
|
|
IJclStrStrMap = IJclWideStrWideStrMap;
|
|
{$ENDIF CONTAINER_WIDESTR}
|
|
{$IFDEF CONTAINER_UNICODESTR}
|
|
IJclStrStrMap = IJclUnicodeStrUnicodeStrMap;
|
|
{$ENDIF CONTAINER_UNICODESTR}
|
|
|
|
IJclSingleIntfMap = interface(IJclSingleContainer)
|
|
['{5F5E9E8B-E648-450B-B6C0-0EC65CC2D0BA}']
|
|
procedure Clear;
|
|
function ContainsKey(const Key: Single): Boolean;
|
|
function ContainsValue(const Value: IInterface): Boolean;
|
|
function Extract(const Key: Single): IInterface;
|
|
function GetValue(const Key: Single): IInterface;
|
|
function IsEmpty: Boolean;
|
|
function KeyOfValue(const Value: IInterface): Single;
|
|
function KeySet: IJclSingleSet;
|
|
function MapEquals(const AMap: IJclSingleIntfMap): Boolean;
|
|
procedure PutAll(const AMap: IJclSingleIntfMap);
|
|
procedure PutValue(const Key: Single; const Value: IInterface);
|
|
function Remove(const Key: Single): IInterface;
|
|
function Size: Integer;
|
|
function Values: IJclIntfCollection;
|
|
property Items[const Key: Single]: IInterface read GetValue write PutValue;
|
|
{$IFNDEF BUGGY_DEFAULT_INDEXED_PROP} default; {$ENDIF ~BUGGY_DEFAULT_INDEXED_PROP}
|
|
end;
|
|
|
|
IJclIntfSingleMap = interface(IJclSingleContainer)
|
|
['{234D1618-FB0E-46F5-A70D-5106163A90F7}']
|
|
procedure Clear;
|
|
function ContainsKey(const Key: IInterface): Boolean;
|
|
function ContainsValue(const Value: Single): Boolean;
|
|
function Extract(const Key: IInterface): Single;
|
|
function GetValue(const Key: IInterface): Single;
|
|
function IsEmpty: Boolean;
|
|
function KeyOfValue(const Value: Single): IInterface;
|
|
function KeySet: IJclIntfSet;
|
|
function MapEquals(const AMap: IJclIntfSingleMap): Boolean;
|
|
procedure PutAll(const AMap: IJclIntfSingleMap);
|
|
procedure PutValue(const Key: IInterface; const Value: Single);
|
|
function Remove(const Key: IInterface): Single;
|
|
function Size: Integer;
|
|
function Values: IJclSingleCollection;
|
|
property Items[const Key: IInterface]: Single read GetValue write PutValue;
|
|
{$IFNDEF BUGGY_DEFAULT_INDEXED_PROP} default; {$ENDIF ~BUGGY_DEFAULT_INDEXED_PROP}
|
|
end;
|
|
|
|
IJclSingleSingleMap = interface(IJclSingleContainer)
|
|
['{AEB0008F-F3CF-4055-A7F3-A330D312F03F}']
|
|
procedure Clear;
|
|
function ContainsKey(const Key: Single): Boolean;
|
|
function ContainsValue(const Value: Single): Boolean;
|
|
function Extract(const Key: Single): Single;
|
|
function GetValue(const Key: Single): Single;
|
|
function IsEmpty: Boolean;
|
|
function KeyOfValue(const Value: Single): Single;
|
|
function KeySet: IJclSingleSet;
|
|
function MapEquals(const AMap: IJclSingleSingleMap): Boolean;
|
|
procedure PutAll(const AMap: IJclSingleSingleMap);
|
|
procedure PutValue(const Key, Value: Single);
|
|
function Remove(const Key: Single): Single;
|
|
function Size: Integer;
|
|
function Values: IJclSingleCollection;
|
|
property Items[const Key: Single]: Single read GetValue write PutValue;
|
|
{$IFNDEF BUGGY_DEFAULT_INDEXED_PROP} default; {$ENDIF ~BUGGY_DEFAULT_INDEXED_PROP}
|
|
end;
|
|
|
|
IJclDoubleIntfMap = interface(IJclDoubleContainer)
|
|
['{08968FFB-36C6-4FBA-BC09-3DCA2B5D7A50}']
|
|
procedure Clear;
|
|
function ContainsKey(const Key: Double): Boolean;
|
|
function ContainsValue(const Value: IInterface): Boolean;
|
|
function Extract(const Key: Double): IInterface;
|
|
function GetValue(const Key: Double): IInterface;
|
|
function IsEmpty: Boolean;
|
|
function KeyOfValue(const Value: IInterface): Double;
|
|
function KeySet: IJclDoubleSet;
|
|
function MapEquals(const AMap: IJclDoubleIntfMap): Boolean;
|
|
procedure PutAll(const AMap: IJclDoubleIntfMap);
|
|
procedure PutValue(const Key: Double; const Value: IInterface);
|
|
function Remove(const Key: Double): IInterface;
|
|
function Size: Integer;
|
|
function Values: IJclIntfCollection;
|
|
property Items[const Key: Double]: IInterface read GetValue write PutValue;
|
|
{$IFNDEF BUGGY_DEFAULT_INDEXED_PROP} default; {$ENDIF ~BUGGY_DEFAULT_INDEXED_PROP}
|
|
end;
|
|
|
|
IJclIntfDoubleMap = interface(IJclDoubleContainer)
|
|
['{B23DAF6A-6DC5-4DDD-835C-CD4633DDA010}']
|
|
procedure Clear;
|
|
function ContainsKey(const Key: IInterface): Boolean;
|
|
function ContainsValue(const Value: Double): Boolean;
|
|
function Extract(const Key: IInterface): Double;
|
|
function GetValue(const Key: IInterface): Double;
|
|
function IsEmpty: Boolean;
|
|
function KeyOfValue(const Value: Double): IInterface;
|
|
function KeySet: IJclIntfSet;
|
|
function MapEquals(const AMap: IJclIntfDoubleMap): Boolean;
|
|
procedure PutAll(const AMap: IJclIntfDoubleMap);
|
|
procedure PutValue(const Key: IInterface; const Value: Double);
|
|
function Remove(const Key: IInterface): Double;
|
|
function Size: Integer;
|
|
function Values: IJclDoubleCollection;
|
|
property Items[const Key: IInterface]: Double read GetValue write PutValue;
|
|
{$IFNDEF BUGGY_DEFAULT_INDEXED_PROP} default; {$ENDIF ~BUGGY_DEFAULT_INDEXED_PROP}
|
|
end;
|
|
|
|
IJclDoubleDoubleMap = interface(IJclDoubleContainer)
|
|
['{329A03B8-0B6B-4FE3-87C5-4B63447A5FFD}']
|
|
procedure Clear;
|
|
function ContainsKey(const Key: Double): Boolean;
|
|
function ContainsValue(const Value: Double): Boolean;
|
|
function Extract(const Key: Double): Double;
|
|
function GetValue(const Key: Double): Double;
|
|
function IsEmpty: Boolean;
|
|
function KeyOfValue(const Value: Double): Double;
|
|
function KeySet: IJclDoubleSet;
|
|
function MapEquals(const AMap: IJclDoubleDoubleMap): Boolean;
|
|
procedure PutAll(const AMap: IJclDoubleDoubleMap);
|
|
procedure PutValue(const Key, Value: Double);
|
|
function Remove(const Key: Double): Double;
|
|
function Size: Integer;
|
|
function Values: IJclDoubleCollection;
|
|
property Items[const Key: Double]: Double read GetValue write PutValue;
|
|
{$IFNDEF BUGGY_DEFAULT_INDEXED_PROP} default; {$ENDIF ~BUGGY_DEFAULT_INDEXED_PROP}
|
|
end;
|
|
|
|
IJclExtendedIntfMap = interface(IJclExtendedContainer)
|
|
['{7C0731E0-C9AB-4378-B1B0-8CE3DD60AD41}']
|
|
procedure Clear;
|
|
function ContainsKey(const Key: Extended): Boolean;
|
|
function ContainsValue(const Value: IInterface): Boolean;
|
|
function Extract(const Key: Extended): IInterface;
|
|
function GetValue(const Key: Extended): IInterface;
|
|
function IsEmpty: Boolean;
|
|
function KeyOfValue(const Value: IInterface): Extended;
|
|
function KeySet: IJclExtendedSet;
|
|
function MapEquals(const AMap: IJclExtendedIntfMap): Boolean;
|
|
procedure PutAll(const AMap: IJclExtendedIntfMap);
|
|
procedure PutValue(const Key: Extended; const Value: IInterface);
|
|
function Remove(const Key: Extended): IInterface;
|
|
function Size: Integer;
|
|
function Values: IJclIntfCollection;
|
|
property Items[const Key: Extended]: IInterface read GetValue write PutValue;
|
|
{$IFNDEF BUGGY_DEFAULT_INDEXED_PROP} default; {$ENDIF ~BUGGY_DEFAULT_INDEXED_PROP}
|
|
end;
|
|
|
|
IJclIntfExtendedMap = interface(IJclExtendedContainer)
|
|
['{479FCE5A-2D8A-44EE-96BC-E8DA3187DBD8}']
|
|
procedure Clear;
|
|
function ContainsKey(const Key: IInterface): Boolean;
|
|
function ContainsValue(const Value: Extended): Boolean;
|
|
function Extract(const Key: IInterface): Extended;
|
|
function GetValue(const Key: IInterface): Extended;
|
|
function IsEmpty: Boolean;
|
|
function KeyOfValue(const Value: Extended): IInterface;
|
|
function KeySet: IJclIntfSet;
|
|
function MapEquals(const AMap: IJclIntfExtendedMap): Boolean;
|
|
procedure PutAll(const AMap: IJclIntfExtendedMap);
|
|
procedure PutValue(const Key: IInterface; const Value: Extended);
|
|
function Remove(const Key: IInterface): Extended;
|
|
function Size: Integer;
|
|
function Values: IJclExtendedCollection;
|
|
property Items[const Key: IInterface]: Extended read GetValue write PutValue;
|
|
{$IFNDEF BUGGY_DEFAULT_INDEXED_PROP} default; {$ENDIF ~BUGGY_DEFAULT_INDEXED_PROP}
|
|
end;
|
|
|
|
IJclExtendedExtendedMap = interface(IJclExtendedContainer)
|
|
['{962C2B09-8CF5-44E8-A21A-4A7DAFB72A11}']
|
|
procedure Clear;
|
|
function ContainsKey(const Key: Extended): Boolean;
|
|
function ContainsValue(const Value: Extended): Boolean;
|
|
function Extract(const Key: Extended): Extended;
|
|
function GetValue(const Key: Extended): Extended;
|
|
function IsEmpty: Boolean;
|
|
function KeyOfValue(const Value: Extended): Extended;
|
|
function KeySet: IJclExtendedSet;
|
|
function MapEquals(const AMap: IJclExtendedExtendedMap): Boolean;
|
|
procedure PutAll(const AMap: IJclExtendedExtendedMap);
|
|
procedure PutValue(const Key, Value: Extended);
|
|
function Remove(const Key: Extended): Extended;
|
|
function Size: Integer;
|
|
function Values: IJclExtendedCollection;
|
|
property Items[const Key: Extended]: Extended read GetValue write PutValue;
|
|
{$IFNDEF BUGGY_DEFAULT_INDEXED_PROP} default; {$ENDIF ~BUGGY_DEFAULT_INDEXED_PROP}
|
|
end;
|
|
|
|
{$IFDEF MATH_EXTENDED_PRECISION}
|
|
IJclFloatIntfMap = IJclExtendedIntfMap;
|
|
IJclIntfFloatMap = IJclIntfExtendedMap;
|
|
IJclFloatFloatMap = IJclExtendedExtendedMap;
|
|
{$ENDIF MATH_EXTENDED_PRECISION}
|
|
{$IFDEF MATH_DOUBLE_PRECISION}
|
|
IJclFloatIntfMap = IJclDoubleIntfMap;
|
|
IJclIntfFloatMap = IJclIntfDoubleMap;
|
|
IJclFloatFloatMap = IJclDoubleDoubleMap;
|
|
{$ENDIF MATH_DOUBLE_PRECISION}
|
|
{$IFDEF MATH_SINGLE_PRECISION}
|
|
IJclFloatIntfMap = IJclSingleIntfMap;
|
|
IJclIntfFloatMap = IJclIntfSingleMap;
|
|
IJclFloatFloatMap = IJclSingleSingleMap;
|
|
{$ENDIF MATH_SINGLE_PRECISION}
|
|
|
|
IJclIntegerIntfMap = interface(IJclContainer)
|
|
['{E535FE65-AC88-49D3-BEF2-FB30D92C2FA6}']
|
|
procedure Clear;
|
|
function ContainsKey(Key: Integer): Boolean;
|
|
function ContainsValue(const Value: IInterface): Boolean;
|
|
function Extract(Key: Integer): IInterface;
|
|
function GetValue(Key: Integer): IInterface;
|
|
function IsEmpty: Boolean;
|
|
function KeyOfValue(const Value: IInterface): Integer;
|
|
function KeySet: IJclIntegerSet;
|
|
function MapEquals(const AMap: IJclIntegerIntfMap): Boolean;
|
|
procedure PutAll(const AMap: IJclIntegerIntfMap);
|
|
procedure PutValue(Key: Integer; const Value: IInterface);
|
|
function Remove(Key: Integer): IInterface;
|
|
function Size: Integer;
|
|
function Values: IJclIntfCollection;
|
|
property Items[Key: Integer]: IInterface read GetValue write PutValue;
|
|
{$IFNDEF BUGGY_DEFAULT_INDEXED_PROP} default; {$ENDIF ~BUGGY_DEFAULT_INDEXED_PROP}
|
|
end;
|
|
|
|
IJclIntfIntegerMap = interface(IJclContainer)
|
|
['{E01DA012-BEE0-4259-8E30-0A7A1A87BED0}']
|
|
procedure Clear;
|
|
function ContainsKey(const Key: IInterface): Boolean;
|
|
function ContainsValue(Value: Integer): Boolean;
|
|
function Extract(const Key: IInterface): Integer;
|
|
function GetValue(const Key: IInterface): Integer;
|
|
function IsEmpty: Boolean;
|
|
function KeyOfValue(Value: Integer): IInterface;
|
|
function KeySet: IJclIntfSet;
|
|
function MapEquals(const AMap: IJclIntfIntegerMap): Boolean;
|
|
procedure PutAll(const AMap: IJclIntfIntegerMap);
|
|
procedure PutValue(const Key: IInterface; Value: Integer);
|
|
function Remove(const Key: IInterface): Integer;
|
|
function Size: Integer;
|
|
function Values: IJclIntegerCollection;
|
|
property Items[const Key: IInterface]: Integer read GetValue write PutValue;
|
|
{$IFNDEF BUGGY_DEFAULT_INDEXED_PROP} default; {$ENDIF ~BUGGY_DEFAULT_INDEXED_PROP}
|
|
end;
|
|
|
|
IJclIntegerIntegerMap = interface(IJclContainer)
|
|
['{23A46BC0-DF8D-4BD2-89D2-4DACF1EC73A1}']
|
|
procedure Clear;
|
|
function ContainsKey(Key: Integer): Boolean;
|
|
function ContainsValue(Value: Integer): Boolean;
|
|
function Extract(Key: Integer): Integer;
|
|
function GetValue(Key: Integer): Integer;
|
|
function IsEmpty: Boolean;
|
|
function KeyOfValue(Value: Integer): Integer;
|
|
function KeySet: IJclIntegerSet;
|
|
function MapEquals(const AMap: IJclIntegerIntegerMap): Boolean;
|
|
procedure PutAll(const AMap: IJclIntegerIntegerMap);
|
|
procedure PutValue(Key, Value: Integer);
|
|
function Remove(Key: Integer): Integer;
|
|
function Size: Integer;
|
|
function Values: IJclIntegerCollection;
|
|
property Items[Key: Integer]: Integer read GetValue write PutValue;
|
|
{$IFNDEF BUGGY_DEFAULT_INDEXED_PROP} default; {$ENDIF ~BUGGY_DEFAULT_INDEXED_PROP}
|
|
end;
|
|
|
|
IJclCardinalIntfMap = interface(IJclContainer)
|
|
['{80D39FB1-0D10-49CE-8AF3-1CD98A1D4F6C}']
|
|
procedure Clear;
|
|
function ContainsKey(Key: Cardinal): Boolean;
|
|
function ContainsValue(const Value: IInterface): Boolean;
|
|
function Extract(Key: Cardinal): IInterface;
|
|
function GetValue(Key: Cardinal): IInterface;
|
|
function IsEmpty: Boolean;
|
|
function KeyOfValue(const Value: IInterface): Cardinal;
|
|
function KeySet: IJclCardinalSet;
|
|
function MapEquals(const AMap: IJclCardinalIntfMap): Boolean;
|
|
procedure PutAll(const AMap: IJclCardinalIntfMap);
|
|
procedure PutValue(Key: Cardinal; const Value: IInterface);
|
|
function Remove(Key: Cardinal): IInterface;
|
|
function Size: Integer;
|
|
function Values: IJclIntfCollection;
|
|
property Items[Key: Cardinal]: IInterface read GetValue write PutValue;
|
|
{$IFNDEF BUGGY_DEFAULT_INDEXED_PROP} default; {$ENDIF ~BUGGY_DEFAULT_INDEXED_PROP}
|
|
end;
|
|
|
|
IJclIntfCardinalMap = interface(IJclContainer)
|
|
['{E1A724AB-6BDA-45F0-AE21-5E7E789A751B}']
|
|
procedure Clear;
|
|
function ContainsKey(const Key: IInterface): Boolean;
|
|
function ContainsValue(Value: Cardinal): Boolean;
|
|
function Extract(const Key: IInterface): Cardinal;
|
|
function GetValue(const Key: IInterface): Cardinal;
|
|
function IsEmpty: Boolean;
|
|
function KeyOfValue(Value: Cardinal): IInterface;
|
|
function KeySet: IJclIntfSet;
|
|
function MapEquals(const AMap: IJclIntfCardinalMap): Boolean;
|
|
procedure PutAll(const AMap: IJclIntfCardinalMap);
|
|
procedure PutValue(const Key: IInterface; Value: Cardinal);
|
|
function Remove(const Key: IInterface): Cardinal;
|
|
function Size: Integer;
|
|
function Values: IJclCardinalCollection;
|
|
property Items[const Key: IInterface]: Cardinal read GetValue write PutValue;
|
|
{$IFNDEF BUGGY_DEFAULT_INDEXED_PROP} default; {$ENDIF ~BUGGY_DEFAULT_INDEXED_PROP}
|
|
end;
|
|
|
|
IJclCardinalCardinalMap = interface(IJclContainer)
|
|
['{1CD3F54C-F92F-4AF4-82B2-0829C08AA83B}']
|
|
procedure Clear;
|
|
function ContainsKey(Key: Cardinal): Boolean;
|
|
function ContainsValue(Value: Cardinal): Boolean;
|
|
function Extract(Key: Cardinal): Cardinal;
|
|
function GetValue(Key: Cardinal): Cardinal;
|
|
function IsEmpty: Boolean;
|
|
function KeyOfValue(Value: Cardinal): Cardinal;
|
|
function KeySet: IJclCardinalSet;
|
|
function MapEquals(const AMap: IJclCardinalCardinalMap): Boolean;
|
|
procedure PutAll(const AMap: IJclCardinalCardinalMap);
|
|
procedure PutValue(Key, Value: Cardinal);
|
|
function Remove(Key: Cardinal): Cardinal;
|
|
function Size: Integer;
|
|
function Values: IJclCardinalCollection;
|
|
property Items[Key: Cardinal]: Cardinal read GetValue write PutValue;
|
|
{$IFNDEF BUGGY_DEFAULT_INDEXED_PROP} default; {$ENDIF ~BUGGY_DEFAULT_INDEXED_PROP}
|
|
end;
|
|
|
|
IJclInt64IntfMap = interface(IJclContainer)
|
|
['{B64FB2D1-8D45-4367-B950-98D3D05AC6A0}']
|
|
procedure Clear;
|
|
function ContainsKey(const Key: Int64): Boolean;
|
|
function ContainsValue(const Value: IInterface): Boolean;
|
|
function Extract(const Key: Int64): IInterface;
|
|
function GetValue(const Key: Int64): IInterface;
|
|
function IsEmpty: Boolean;
|
|
function KeyOfValue(const Value: IInterface): Int64;
|
|
function KeySet: IJclInt64Set;
|
|
function MapEquals(const AMap: IJclInt64IntfMap): Boolean;
|
|
procedure PutAll(const AMap: IJclInt64IntfMap);
|
|
procedure PutValue(const Key: Int64; const Value: IInterface);
|
|
function Remove(const Key: Int64): IInterface;
|
|
function Size: Integer;
|
|
function Values: IJclIntfCollection;
|
|
property Items[const Key: Int64]: IInterface read GetValue write PutValue;
|
|
{$IFNDEF BUGGY_DEFAULT_INDEXED_PROP} default; {$ENDIF ~BUGGY_DEFAULT_INDEXED_PROP}
|
|
end;
|
|
|
|
IJclIntfInt64Map = interface(IJclContainer)
|
|
['{9886BEE3-D15B-45D2-A3FB-4D3A0ADEC8AC}']
|
|
procedure Clear;
|
|
function ContainsKey(const Key: IInterface): Boolean;
|
|
function ContainsValue(const Value: Int64): Boolean;
|
|
function Extract(const Key: IInterface): Int64;
|
|
function GetValue(const Key: IInterface): Int64;
|
|
function IsEmpty: Boolean;
|
|
function KeyOfValue(const Value: Int64): IInterface;
|
|
function KeySet: IJclIntfSet;
|
|
function MapEquals(const AMap: IJclIntfInt64Map): Boolean;
|
|
procedure PutAll(const AMap: IJclIntfInt64Map);
|
|
procedure PutValue(const Key: IInterface; const Value: Int64);
|
|
function Remove(const Key: IInterface): Int64;
|
|
function Size: Integer;
|
|
function Values: IJclInt64Collection;
|
|
property Items[const Key: IInterface]: Int64 read GetValue write PutValue;
|
|
{$IFNDEF BUGGY_DEFAULT_INDEXED_PROP} default; {$ENDIF ~BUGGY_DEFAULT_INDEXED_PROP}
|
|
end;
|
|
|
|
IJclInt64Int64Map = interface(IJclContainer)
|
|
['{EF2A2726-408A-4984-9971-DDC1B6EFC9F5}']
|
|
procedure Clear;
|
|
function ContainsKey(const Key: Int64): Boolean;
|
|
function ContainsValue(const Value: Int64): Boolean;
|
|
function Extract(const Key: Int64): Int64;
|
|
function GetValue(const Key: Int64): Int64;
|
|
function IsEmpty: Boolean;
|
|
function KeyOfValue(const Value: Int64): Int64;
|
|
function KeySet: IJclInt64Set;
|
|
function MapEquals(const AMap: IJclInt64Int64Map): Boolean;
|
|
procedure PutAll(const AMap: IJclInt64Int64Map);
|
|
procedure PutValue(const Key, Value: Int64);
|
|
function Remove(const Key: Int64): Int64;
|
|
function Size: Integer;
|
|
function Values: IJclInt64Collection;
|
|
property Items[const Key: Int64]: Int64 read GetValue write PutValue;
|
|
{$IFNDEF BUGGY_DEFAULT_INDEXED_PROP} default; {$ENDIF ~BUGGY_DEFAULT_INDEXED_PROP}
|
|
end;
|
|
|
|
IJclPtrIntfMap = interface(IJclContainer)
|
|
['{B7C48542-39A0-453F-8F03-8C8CFAB0DCCF}']
|
|
procedure Clear;
|
|
function ContainsKey(Key: Pointer): Boolean;
|
|
function ContainsValue(const Value: IInterface): Boolean;
|
|
function Extract(Key: Pointer): IInterface;
|
|
function GetValue(Key: Pointer): IInterface;
|
|
function IsEmpty: Boolean;
|
|
function KeyOfValue(const Value: IInterface): Pointer;
|
|
function KeySet: IJclPtrSet;
|
|
function MapEquals(const AMap: IJclPtrIntfMap): Boolean;
|
|
procedure PutAll(const AMap: IJclPtrIntfMap);
|
|
procedure PutValue(Key: Pointer; const Value: IInterface);
|
|
function Remove(Key: Pointer): IInterface;
|
|
function Size: Integer;
|
|
function Values: IJclIntfCollection;
|
|
property Items[Key: Pointer]: IInterface read GetValue write PutValue;
|
|
{$IFNDEF BUGGY_DEFAULT_INDEXED_PROP} default; {$ENDIF ~BUGGY_DEFAULT_INDEXED_PROP}
|
|
end;
|
|
|
|
IJclIntfPtrMap = interface(IJclContainer)
|
|
['{DA51D823-58DB-4D7C-9B8E-07E0FD560B57}']
|
|
procedure Clear;
|
|
function ContainsKey(const Key: IInterface): Boolean;
|
|
function ContainsValue(Value: Pointer): Boolean;
|
|
function Extract(const Key: IInterface): Pointer;
|
|
function GetValue(const Key: IInterface): Pointer;
|
|
function IsEmpty: Boolean;
|
|
function KeyOfValue(Value: Pointer): IInterface;
|
|
function KeySet: IJclIntfSet;
|
|
function MapEquals(const AMap: IJclIntfPtrMap): Boolean;
|
|
procedure PutAll(const AMap: IJclIntfPtrMap);
|
|
procedure PutValue(const Key: IInterface; Value: Pointer);
|
|
function Remove(const Key: IInterface): Pointer;
|
|
function Size: Integer;
|
|
function Values: IJclPtrCollection;
|
|
property Items[const Key: IInterface]: Pointer read GetValue write PutValue;
|
|
{$IFNDEF BUGGY_DEFAULT_INDEXED_PROP} default; {$ENDIF ~BUGGY_DEFAULT_INDEXED_PROP}
|
|
end;
|
|
|
|
IJclPtrPtrMap = interface(IJclContainer)
|
|
['{1200CB0F-A766-443F-9030-5A804C11B798}']
|
|
procedure Clear;
|
|
function ContainsKey(Key: Pointer): Boolean;
|
|
function ContainsValue(Value: Pointer): Boolean;
|
|
function Extract(Key: Pointer): Pointer;
|
|
function GetValue(Key: Pointer): Pointer;
|
|
function IsEmpty: Boolean;
|
|
function KeyOfValue(Value: Pointer): Pointer;
|
|
function KeySet: IJclPtrSet;
|
|
function MapEquals(const AMap: IJclPtrPtrMap): Boolean;
|
|
procedure PutAll(const AMap: IJclPtrPtrMap);
|
|
procedure PutValue(Key, Value: Pointer);
|
|
function Remove(Key: Pointer): Pointer;
|
|
function Size: Integer;
|
|
function Values: IJclPtrCollection;
|
|
property Items[Key: Pointer]: Pointer read GetValue write PutValue;
|
|
{$IFNDEF BUGGY_DEFAULT_INDEXED_PROP} default; {$ENDIF ~BUGGY_DEFAULT_INDEXED_PROP}
|
|
end;
|
|
|
|
IJclIntfMap = interface(IJclContainer)
|
|
['{C70570C6-EDDB-47B4-9003-C637B486731D}']
|
|
procedure Clear;
|
|
function ContainsKey(const Key: IInterface): Boolean;
|
|
function ContainsValue(Value: TObject): Boolean;
|
|
function Extract(const Key: IInterface): TObject;
|
|
function GetValue(const Key: IInterface): TObject;
|
|
function IsEmpty: Boolean;
|
|
function KeyOfValue(Value: TObject): IInterface;
|
|
function KeySet: IJclIntfSet;
|
|
function MapEquals(const AMap: IJclIntfMap): Boolean;
|
|
procedure PutAll(const AMap: IJclIntfMap);
|
|
procedure PutValue(const Key: IInterface; Value: TObject);
|
|
function Remove(const Key: IInterface): TObject;
|
|
function Size: Integer;
|
|
function Values: IJclCollection;
|
|
property Items[const Key: IInterface]: TObject read GetValue write PutValue;
|
|
{$IFNDEF BUGGY_DEFAULT_INDEXED_PROP} default; {$ENDIF ~BUGGY_DEFAULT_INDEXED_PROP}
|
|
end;
|
|
|
|
IJclAnsiStrMap = interface(IJclAnsiStrContainer)
|
|
['{A7D0A882-6952-496D-A258-23D47DDCCBC4}']
|
|
procedure Clear;
|
|
function ContainsKey(const Key: AnsiString): Boolean;
|
|
function ContainsValue(Value: TObject): Boolean;
|
|
function Extract(const Key: AnsiString): TObject;
|
|
function GetValue(const Key: AnsiString): TObject;
|
|
function IsEmpty: Boolean;
|
|
function KeyOfValue(Value: TObject): AnsiString;
|
|
function KeySet: IJclAnsiStrSet;
|
|
function MapEquals(const AMap: IJclAnsiStrMap): Boolean;
|
|
procedure PutAll(const AMap: IJclAnsiStrMap);
|
|
procedure PutValue(const Key: AnsiString; Value: TObject);
|
|
function Remove(const Key: AnsiString): TObject;
|
|
function Size: Integer;
|
|
function Values: IJclCollection;
|
|
property Items[const Key: AnsiString]: TObject read GetValue write PutValue;
|
|
{$IFNDEF BUGGY_DEFAULT_INDEXED_PROP} default; {$ENDIF ~BUGGY_DEFAULT_INDEXED_PROP}
|
|
end;
|
|
|
|
IJclWideStrMap = interface(IJclWideStrContainer)
|
|
['{ACE8E6B4-5A56-4753-A2C6-BAE195A56B63}']
|
|
procedure Clear;
|
|
function ContainsKey(const Key: WideString): Boolean;
|
|
function ContainsValue(Value: TObject): Boolean;
|
|
function Extract(const Key: WideString): TObject;
|
|
function GetValue(const Key: WideString): TObject;
|
|
function IsEmpty: Boolean;
|
|
function KeyOfValue(Value: TObject): WideString;
|
|
function KeySet: IJclWideStrSet;
|
|
function MapEquals(const AMap: IJclWideStrMap): Boolean;
|
|
procedure PutAll(const AMap: IJclWideStrMap);
|
|
procedure PutValue(const Key: WideString; Value: TObject);
|
|
function Remove(const Key: WideString): TObject;
|
|
function Size: Integer;
|
|
function Values: IJclCollection;
|
|
property Items[const Key: WideString]: TObject read GetValue write PutValue;
|
|
{$IFNDEF BUGGY_DEFAULT_INDEXED_PROP} default; {$ENDIF ~BUGGY_DEFAULT_INDEXED_PROP}
|
|
end;
|
|
|
|
{$IFDEF SUPPORTS_UNICODE_STRING}
|
|
IJclUnicodeStrMap = interface(IJclUnicodeStrContainer)
|
|
['{4328E033-9B92-40C6-873D-A6982CFC2B95}']
|
|
procedure Clear;
|
|
function ContainsKey(const Key: UnicodeString): Boolean;
|
|
function ContainsValue(Value: TObject): Boolean;
|
|
function Extract(const Key: UnicodeString): TObject;
|
|
function GetValue(const Key: UnicodeString): TObject;
|
|
function IsEmpty: Boolean;
|
|
function KeyOfValue(Value: TObject): UnicodeString;
|
|
function KeySet: IJclUnicodeStrSet;
|
|
function MapEquals(const AMap: IJclUnicodeStrMap): Boolean;
|
|
procedure PutAll(const AMap: IJclUnicodeStrMap);
|
|
procedure PutValue(const Key: UnicodeString; Value: TObject);
|
|
function Remove(const Key: UnicodeString): TObject;
|
|
function Size: Integer;
|
|
function Values: IJclCollection;
|
|
property Items[const Key: UnicodeString]: TObject read GetValue write PutValue;
|
|
{$IFNDEF BUGGY_DEFAULT_INDEXED_PROP} default; {$ENDIF ~BUGGY_DEFAULT_INDEXED_PROP}
|
|
end;
|
|
{$ENDIF SUPPORTS_UNICODE_STRING}
|
|
|
|
{$IFDEF CONTAINER_ANSISTR}
|
|
IJclStrMap = IJclAnsiStrMap;
|
|
{$ENDIF CONTAINER_ANSISTR}
|
|
{$IFDEF CONTAINER_WIDESTR}
|
|
IJclStrMap = IJclWideStrMap;
|
|
{$ENDIF CONTAINER_WIDESTR}
|
|
{$IFDEF CONTAINER_UNICODESTR}
|
|
IJclStrMap = IJclUnicodeStrMap;
|
|
{$ENDIF CONTAINER_UNICODESTR}
|
|
|
|
IJclSingleMap = interface(IJclSingleContainer)
|
|
['{C501920A-F252-4F94-B142-1F05AE06C3D2}']
|
|
procedure Clear;
|
|
function ContainsKey(const Key: Single): Boolean;
|
|
function ContainsValue(Value: TObject): Boolean;
|
|
function Extract(const Key: Single): TObject;
|
|
function GetValue(const Key: Single): TObject;
|
|
function IsEmpty: Boolean;
|
|
function KeyOfValue(Value: TObject): Single;
|
|
function KeySet: IJclSingleSet;
|
|
function MapEquals(const AMap: IJclSingleMap): Boolean;
|
|
procedure PutAll(const AMap: IJclSingleMap);
|
|
procedure PutValue(const Key: Single; Value: TObject);
|
|
function Remove(const Key: Single): TObject;
|
|
function Size: Integer;
|
|
function Values: IJclCollection;
|
|
property Items[const Key: Single]: TObject read GetValue write PutValue;
|
|
{$IFNDEF BUGGY_DEFAULT_INDEXED_PROP} default; {$ENDIF ~BUGGY_DEFAULT_INDEXED_PROP}
|
|
end;
|
|
|
|
IJclDoubleMap = interface(IJclDoubleContainer)
|
|
['{B1B994AC-49C9-418B-814B-43BAD706F355}']
|
|
procedure Clear;
|
|
function ContainsKey(const Key: Double): Boolean;
|
|
function ContainsValue(Value: TObject): Boolean;
|
|
function Extract(const Key: Double): TObject;
|
|
function GetValue(const Key: Double): TObject;
|
|
function IsEmpty: Boolean;
|
|
function KeyOfValue(Value: TObject): Double;
|
|
function KeySet: IJclDoubleSet;
|
|
function MapEquals(const AMap: IJclDoubleMap): Boolean;
|
|
procedure PutAll(const AMap: IJclDoubleMap);
|
|
procedure PutValue(const Key: Double; Value: TObject);
|
|
function Remove(const Key: Double): TObject;
|
|
function Size: Integer;
|
|
function Values: IJclCollection;
|
|
property Items[const Key: Double]: TObject read GetValue write PutValue;
|
|
{$IFNDEF BUGGY_DEFAULT_INDEXED_PROP} default; {$ENDIF ~BUGGY_DEFAULT_INDEXED_PROP}
|
|
end;
|
|
|
|
IJclExtendedMap = interface(IJclExtendedContainer)
|
|
['{3BCC8C87-A186-45E8-9B37-0B8E85120434}']
|
|
procedure Clear;
|
|
function ContainsKey(const Key: Extended): Boolean;
|
|
function ContainsValue(Value: TObject): Boolean;
|
|
function Extract(const Key: Extended): TObject;
|
|
function GetValue(const Key: Extended): TObject;
|
|
function IsEmpty: Boolean;
|
|
function KeyOfValue(Value: TObject): Extended;
|
|
function KeySet: IJclExtendedSet;
|
|
function MapEquals(const AMap: IJclExtendedMap): Boolean;
|
|
procedure PutAll(const AMap: IJclExtendedMap);
|
|
procedure PutValue(const Key: Extended; Value: TObject);
|
|
function Remove(const Key: Extended): TObject;
|
|
function Size: Integer;
|
|
function Values: IJclCollection;
|
|
property Items[const Key: Extended]: TObject read GetValue write PutValue;
|
|
{$IFNDEF BUGGY_DEFAULT_INDEXED_PROP} default; {$ENDIF ~BUGGY_DEFAULT_INDEXED_PROP}
|
|
end;
|
|
|
|
{$IFDEF MATH_EXTENDED_PRECISION}
|
|
IJclFloatMap = IJclExtendedMap;
|
|
{$ENDIF MATH_EXTENDED_PRECISION}
|
|
{$IFDEF MATH_DOUBLE_PRECISION}
|
|
IJclFloatMap = IJclDoubleMap;
|
|
{$ENDIF MATH_DOUBLE_PRECISION}
|
|
{$IFDEF MATH_SINGLE_PRECISION}
|
|
IJclFloatMap = IJclSingleMap;
|
|
{$ENDIF MATH_SINGLE_PRECISION}
|
|
|
|
IJclIntegerMap = interface(IJclContainer)
|
|
['{D6FA5D64-A4AF-4419-9981-56BA79BF8770}']
|
|
procedure Clear;
|
|
function ContainsKey(Key: Integer): Boolean;
|
|
function ContainsValue(Value: TObject): Boolean;
|
|
function Extract(Key: Integer): TObject;
|
|
function GetValue(Key: Integer): TObject;
|
|
function IsEmpty: Boolean;
|
|
function KeyOfValue(Value: TObject): Integer;
|
|
function KeySet: IJclIntegerSet;
|
|
function MapEquals(const AMap: IJclIntegerMap): Boolean;
|
|
procedure PutAll(const AMap: IJclIntegerMap);
|
|
procedure PutValue(Key: Integer; Value: TObject);
|
|
function Remove(Key: Integer): TObject;
|
|
function Size: Integer;
|
|
function Values: IJclCollection;
|
|
property Items[Key: Integer]: TObject read GetValue write PutValue;
|
|
{$IFNDEF BUGGY_DEFAULT_INDEXED_PROP} default; {$ENDIF ~BUGGY_DEFAULT_INDEXED_PROP}
|
|
end;
|
|
|
|
IJclCardinalMap = interface(IJclContainer)
|
|
['{A2F92F4F-11CB-4DB2-932F-F10A14237126}']
|
|
procedure Clear;
|
|
function ContainsKey(Key: Cardinal): Boolean;
|
|
function ContainsValue(Value: TObject): Boolean;
|
|
function Extract(Key: Cardinal): TObject;
|
|
function GetValue(Key: Cardinal): TObject;
|
|
function IsEmpty: Boolean;
|
|
function KeyOfValue(Value: TObject): Cardinal;
|
|
function KeySet: IJclCardinalSet;
|
|
function MapEquals(const AMap: IJclCardinalMap): Boolean;
|
|
procedure PutAll(const AMap: IJclCardinalMap);
|
|
procedure PutValue(Key: Cardinal; Value: TObject);
|
|
function Remove(Key: Cardinal): TObject;
|
|
function Size: Integer;
|
|
function Values: IJclCollection;
|
|
property Items[Key: Cardinal]: TObject read GetValue write PutValue;
|
|
{$IFNDEF BUGGY_DEFAULT_INDEXED_PROP} default; {$ENDIF ~BUGGY_DEFAULT_INDEXED_PROP}
|
|
end;
|
|
|
|
IJclInt64Map = interface(IJclContainer)
|
|
['{4C720CE0-7A7C-41D5-BFC1-8D58A47E648F}']
|
|
procedure Clear;
|
|
function ContainsKey(const Key: Int64): Boolean;
|
|
function ContainsValue(Value: TObject): Boolean;
|
|
function Extract(const Key: Int64): TObject;
|
|
function GetValue(const Key: Int64): TObject;
|
|
function IsEmpty: Boolean;
|
|
function KeyOfValue(Value: TObject): Int64;
|
|
function KeySet: IJclInt64Set;
|
|
function MapEquals(const AMap: IJclInt64Map): Boolean;
|
|
procedure PutAll(const AMap: IJclInt64Map);
|
|
procedure PutValue(const Key: Int64; Value: TObject);
|
|
function Remove(const Key: Int64): TObject;
|
|
function Size: Integer;
|
|
function Values: IJclCollection;
|
|
property Items[const Key: Int64]: TObject read GetValue write PutValue;
|
|
{$IFNDEF BUGGY_DEFAULT_INDEXED_PROP} default; {$ENDIF ~BUGGY_DEFAULT_INDEXED_PROP}
|
|
end;
|
|
|
|
IJclPtrMap = interface(IJclContainer)
|
|
['{2FE029A9-026C-487D-8204-AD3A28BD2FA2}']
|
|
procedure Clear;
|
|
function ContainsKey(Key: Pointer): Boolean;
|
|
function ContainsValue(Value: TObject): Boolean;
|
|
function Extract(Key: Pointer): TObject;
|
|
function GetValue(Key: Pointer): TObject;
|
|
function IsEmpty: Boolean;
|
|
function KeyOfValue(Value: TObject): Pointer;
|
|
function KeySet: IJclPtrSet;
|
|
function MapEquals(const AMap: IJclPtrMap): Boolean;
|
|
procedure PutAll(const AMap: IJclPtrMap);
|
|
procedure PutValue(Key: Pointer; Value: TObject);
|
|
function Remove(Key: Pointer): TObject;
|
|
function Size: Integer;
|
|
function Values: IJclCollection;
|
|
property Items[Key: Pointer]: TObject read GetValue write PutValue;
|
|
{$IFNDEF BUGGY_DEFAULT_INDEXED_PROP} default; {$ENDIF ~BUGGY_DEFAULT_INDEXED_PROP}
|
|
end;
|
|
|
|
IJclMap = interface(IJclContainer)
|
|
['{A7D0A882-6952-496D-A258-23D47DDCCBC4}']
|
|
procedure Clear;
|
|
function ContainsKey(Key: TObject): Boolean;
|
|
function ContainsValue(Value: TObject): Boolean;
|
|
function Extract(Key: TObject): TObject;
|
|
function GetValue(Key: TObject): TObject;
|
|
function IsEmpty: Boolean;
|
|
function KeyOfValue(Value: TObject): TObject;
|
|
function KeySet: IJclSet;
|
|
function MapEquals(const AMap: IJclMap): Boolean;
|
|
procedure PutAll(const AMap: IJclMap);
|
|
procedure PutValue(Key, Value: TObject);
|
|
function Remove(Key: TObject): TObject;
|
|
function Size: Integer;
|
|
function Values: IJclCollection;
|
|
property Items[Key: TObject]: TObject read GetValue write PutValue;
|
|
{$IFNDEF BUGGY_DEFAULT_INDEXED_PROP} default; {$ENDIF ~BUGGY_DEFAULT_INDEXED_PROP}
|
|
end;
|
|
|
|
{$IFDEF SUPPORTS_GENERICS}
|
|
IHashable = interface
|
|
function GetHashCode: Integer;
|
|
end;
|
|
|
|
IJclMap<TKey,TValue> = interface(IJclContainer)
|
|
['{22624C43-4828-4A1E-BDD4-4A7FE59AE135}']
|
|
procedure Clear;
|
|
function ContainsKey(const Key: TKey): Boolean;
|
|
function ContainsValue(const Value: TValue): Boolean;
|
|
function Extract(const Key: TKey): TValue;
|
|
function GetValue(const Key: TKey): TValue;
|
|
function IsEmpty: Boolean;
|
|
function KeyOfValue(const Value: TValue): TKey;
|
|
function KeySet: IJclSet<TKey>;
|
|
function MapEquals(const AMap: IJclMap<TKey,TValue>): Boolean;
|
|
procedure PutAll(const AMap: IJclMap<TKey,TValue>);
|
|
procedure PutValue(const Key: TKey; const Value: TValue);
|
|
function Remove(const Key: TKey): TValue;
|
|
function Size: Integer;
|
|
function Values: IJclCollection<TValue>;
|
|
property Items[const Key: TKey]: TValue read GetValue write PutValue;
|
|
{$IFNDEF BUGGY_DEFAULT_INDEXED_PROP} default; {$ENDIF ~BUGGY_DEFAULT_INDEXED_PROP}
|
|
end;
|
|
{$ENDIF SUPPORTS_GENERICS}
|
|
|
|
IJclIntfQueue = interface(IJclContainer)
|
|
['{B88756FE-5553-4106-957E-3E33120BFA99}']
|
|
procedure Clear;
|
|
function Contains(const AInterface: IInterface): Boolean;
|
|
function Dequeue: IInterface;
|
|
function Empty: Boolean;
|
|
function Enqueue(const AInterface: IInterface): Boolean;
|
|
function Peek: IInterface;
|
|
function Size: Integer;
|
|
end;
|
|
|
|
IJclAnsiStrQueue = interface(IJclAnsiStrContainer)
|
|
['{5BA0ED9A-5AF3-4F79-9D80-34FA7FF15D1F}']
|
|
procedure Clear;
|
|
function Contains(const AString: AnsiString): Boolean;
|
|
function Dequeue: AnsiString;
|
|
function Empty: Boolean;
|
|
function Enqueue(const AString: AnsiString): Boolean;
|
|
function Peek: AnsiString;
|
|
function Size: Integer;
|
|
end;
|
|
|
|
IJclWideStrQueue = interface(IJclWideStrContainer)
|
|
['{058BBFB7-E9B9-44B5-B676-D5B5B9A79BEF}']
|
|
procedure Clear;
|
|
function Contains(const AString: WideString): Boolean;
|
|
function Dequeue: WideString;
|
|
function Empty: Boolean;
|
|
function Enqueue(const AString: WideString): Boolean;
|
|
function Peek: WideString;
|
|
function Size: Integer;
|
|
end;
|
|
|
|
{$IFDEF SUPPORTS_UNICODE_STRING}
|
|
IJclUnicodeStrQueue = interface(IJclUnicodeStrContainer)
|
|
['{94A09E52-424A-486E-846B-9C2C52DC3A8F}']
|
|
procedure Clear;
|
|
function Contains(const AString: UnicodeString): Boolean;
|
|
function Dequeue: UnicodeString;
|
|
function Empty: Boolean;
|
|
function Enqueue(const AString: UnicodeString): Boolean;
|
|
function Peek: UnicodeString;
|
|
function Size: Integer;
|
|
end;
|
|
{$ENDIF SUPPORTS_UNICODE_STRING}
|
|
|
|
{$IFDEF CONTAINER_ANSISTR}
|
|
IJclStrQueue = IJclAnsiStrQueue;
|
|
{$ENDIF CONTAINER_ANSISTR}
|
|
{$IFDEF CONTAINER_WIDESTR}
|
|
IJclStrQueue = IJclWideStrQueue;
|
|
{$ENDIF CONTAINER_WIDESTR}
|
|
{$IFDEF CONTAINER_UNICODESTR}
|
|
IJclStrQueue = IJclUnicodeStrQueue;
|
|
{$ENDIF CONTAINER_UNICODESTR}
|
|
|
|
IJclSingleQueue = interface(IJclSingleContainer)
|
|
['{67D74314-9967-4C99-8A48-6E0ADD73EC29}']
|
|
procedure Clear;
|
|
function Contains(const AValue: Single): Boolean;
|
|
function Dequeue: Single;
|
|
function Empty: Boolean;
|
|
function Enqueue(const AValue: Single): Boolean;
|
|
function Peek: Single;
|
|
function Size: Integer;
|
|
end;
|
|
|
|
IJclDoubleQueue = interface(IJclDoubleContainer)
|
|
['{FA1B6D25-3456-4963-87DC-5A2E53B2963F}']
|
|
procedure Clear;
|
|
function Contains(const AValue: Double): Boolean;
|
|
function Dequeue: Double;
|
|
function Empty: Boolean;
|
|
function Enqueue(const AValue: Double): Boolean;
|
|
function Peek: Double;
|
|
function Size: Integer;
|
|
end;
|
|
|
|
IJclExtendedQueue = interface(IJclExtendedContainer)
|
|
['{76F349C0-7681-4BE8-9E94-280C962780D8}']
|
|
procedure Clear;
|
|
function Contains(const AValue: Extended): Boolean;
|
|
function Dequeue: Extended;
|
|
function Empty: Boolean;
|
|
function Enqueue(const AValue: Extended): Boolean;
|
|
function Peek: Extended;
|
|
function Size: Integer;
|
|
end;
|
|
|
|
{$IFDEF MATH_EXTENDED_PRECISION}
|
|
IJclFloatQueue = IJclExtendedQueue;
|
|
{$ENDIF MATH_EXTENDED_PRECISION}
|
|
{$IFDEF MATH_DOUBLE_PRECISION}
|
|
IJclFloatQueue = IJclDoubleQueue;
|
|
{$ENDIF MATH_DOUBLE_PRECISION}
|
|
{$IFDEF MATH_SINGLE_PRECISION}
|
|
IJclFloatQueue = IJclSingleQueue;
|
|
{$ENDIF MATH_SINGLE_PRECISION}
|
|
|
|
IJclIntegerQueue = interface(IJclContainer)
|
|
['{4C4E174E-5D19-44CE-A248-B5589A9B68DF}']
|
|
procedure Clear;
|
|
function Contains(AValue: Integer): Boolean;
|
|
function Dequeue: Integer;
|
|
function Empty: Boolean;
|
|
function Enqueue(AValue: Integer): Boolean;
|
|
function Peek: Integer;
|
|
function Size: Integer;
|
|
end;
|
|
|
|
IJclCardinalQueue = interface(IJclContainer)
|
|
['{CC1D4358-E259-4FB0-BA83-5180A0F8A6C0}']
|
|
procedure Clear;
|
|
function Contains(AValue: Cardinal): Boolean;
|
|
function Dequeue: Cardinal;
|
|
function Empty: Boolean;
|
|
function Enqueue(AValue: Cardinal): Boolean;
|
|
function Peek: Cardinal;
|
|
function Size: Integer;
|
|
end;
|
|
|
|
IJclInt64Queue = interface(IJclContainer)
|
|
['{96B620BB-9A90-43D5-82A7-2D818A11C8E1}']
|
|
procedure Clear;
|
|
function Contains(const AValue: Int64): Boolean;
|
|
function Dequeue: Int64;
|
|
function Empty: Boolean;
|
|
function Enqueue(const AValue: Int64): Boolean;
|
|
function Peek: Int64;
|
|
function Size: Integer;
|
|
end;
|
|
|
|
IJclPtrQueue = interface(IJclContainer)
|
|
['{1052DD37-3035-4C44-A793-54AC4B9C0B29}']
|
|
procedure Clear;
|
|
function Contains(APtr: Pointer): Boolean;
|
|
function Dequeue: Pointer;
|
|
function Empty: Boolean;
|
|
function Enqueue(APtr: Pointer): Boolean;
|
|
function Peek: Pointer;
|
|
function Size: Integer;
|
|
end;
|
|
|
|
IJclQueue = interface(IJclContainer)
|
|
['{7D0F9DE4-71EA-46EF-B879-88BCFD5D9610}']
|
|
procedure Clear;
|
|
function Contains(AObject: TObject): Boolean;
|
|
function Dequeue: TObject;
|
|
function Empty: Boolean;
|
|
function Enqueue(AObject: TObject): Boolean;
|
|
function Peek: TObject;
|
|
function Size: Integer;
|
|
end;
|
|
|
|
{$IFDEF SUPPORTS_GENERICS}
|
|
IJclQueue<T> = interface(IJclContainer)
|
|
['{16AB909F-2194-46CF-BD89-B4207AC0CAB8}']
|
|
procedure Clear;
|
|
function Contains(const AItem: T): Boolean;
|
|
function Dequeue: T;
|
|
function Empty: Boolean;
|
|
function Enqueue(const AItem: T): Boolean;
|
|
function Peek: T;
|
|
function Size: Integer;
|
|
end;
|
|
{$ENDIF SUPPORTS_GENERICS}
|
|
|
|
IJclIntfIntfSortedMap = interface(IJclIntfIntfMap)
|
|
['{265A6EB2-4BB3-459F-8813-360FD32A4971}']
|
|
function FirstKey: IInterface;
|
|
function HeadMap(const ToKey: IInterface): IJclIntfIntfSortedMap;
|
|
function LastKey: IInterface;
|
|
function SubMap(const FromKey, ToKey: IInterface): IJclIntfIntfSortedMap;
|
|
function TailMap(const FromKey: IInterface): IJclIntfIntfSortedMap;
|
|
end;
|
|
|
|
IJclAnsiStrIntfSortedMap = interface(IJclAnsiStrIntfMap)
|
|
['{706D1C91-5416-4FDC-B6B1-F4C1E8CFCD38}']
|
|
function FirstKey: AnsiString;
|
|
function HeadMap(const ToKey: AnsiString): IJclAnsiStrIntfSortedMap;
|
|
function LastKey: AnsiString;
|
|
function SubMap(const FromKey, ToKey: AnsiString): IJclAnsiStrIntfSortedMap;
|
|
function TailMap(const FromKey: AnsiString): IJclAnsiStrIntfSortedMap;
|
|
end;
|
|
|
|
IJclWideStrIntfSortedMap = interface(IJclWideStrIntfMap)
|
|
['{299FDCFD-2DB7-4D64-BF18-EE3668316430}']
|
|
function FirstKey: WideString;
|
|
function HeadMap(const ToKey: WideString): IJclWideStrIntfSortedMap;
|
|
function LastKey: WideString;
|
|
function SubMap(const FromKey, ToKey: WideString): IJclWideStrIntfSortedMap;
|
|
function TailMap(const FromKey: WideString): IJclWideStrIntfSortedMap;
|
|
end;
|
|
|
|
{$IFDEF SUPPORTS_UNICODE_STRING}
|
|
IJclUnicodeStrIntfSortedMap = interface(IJclUnicodeStrIntfMap)
|
|
['{25FDE916-730D-449A-BA29-852D8A0470B6}']
|
|
function FirstKey: UnicodeString;
|
|
function HeadMap(const ToKey: UnicodeString): IJclUnicodeStrIntfSortedMap;
|
|
function LastKey: UnicodeString;
|
|
function SubMap(const FromKey, ToKey: UnicodeString): IJclUnicodeStrIntfSortedMap;
|
|
function TailMap(const FromKey: UnicodeString): IJclUnicodeStrIntfSortedMap;
|
|
end;
|
|
{$ENDIF SUPPORTS_UNICODE_STRING}
|
|
|
|
{$IFDEF CONTAINER_ANSISTR}
|
|
IJclStrIntfSortedMap = IJclAnsiStrIntfSortedMap;
|
|
{$ENDIF CONTAINER_ANSISTR}
|
|
{$IFDEF CONTAINER_WIDESTR}
|
|
IJclStrIntfSortedMap = IJclWideStrIntfSortedMap;
|
|
{$ENDIF CONTAINER_WIDESTR}
|
|
{$IFDEF CONTAINER_UNICODESTR}
|
|
IJclStrIntfSortedMap = IJclUnicodeStrIntfSortedMap;
|
|
{$ENDIF CONTAINER_UNICODESTR}
|
|
|
|
IJclIntfAnsiStrSortedMap = interface(IJclIntfAnsiStrMap)
|
|
['{96E6AC5E-8C40-4795-9C8A-CFD098B58680}']
|
|
function FirstKey: IInterface;
|
|
function HeadMap(const ToKey: IInterface): IJclIntfAnsiStrSortedMap;
|
|
function LastKey: IInterface;
|
|
function SubMap(const FromKey, ToKey: IInterface): IJclIntfAnsiStrSortedMap;
|
|
function TailMap(const FromKey: IInterface): IJclIntfAnsiStrSortedMap;
|
|
end;
|
|
|
|
IJclIntfWideStrSortedMap = interface(IJclIntfWideStrMap)
|
|
['{FBE3AD2E-2781-4DC0-9E80-027027380E21}']
|
|
function FirstKey: IInterface;
|
|
function HeadMap(const ToKey: IInterface): IJclIntfWideStrSortedMap;
|
|
function LastKey: IInterface;
|
|
function SubMap(const FromKey, ToKey: IInterface): IJclIntfWideStrSortedMap;
|
|
function TailMap(const FromKey: IInterface): IJclIntfWideStrSortedMap;
|
|
end;
|
|
|
|
{$IFDEF SUPPORTS_UNICODE_STRING}
|
|
IJclIntfUnicodeStrSortedMap = interface(IJclIntfUnicodeStrMap)
|
|
['{B0B0CB9B-268B-40D2-94A8-0B8B5BE2E1AC}']
|
|
function FirstKey: IInterface;
|
|
function HeadMap(const ToKey: IInterface): IJclIntfUnicodeStrSortedMap;
|
|
function LastKey: IInterface;
|
|
function SubMap(const FromKey, ToKey: IInterface): IJclIntfUnicodeStrSortedMap;
|
|
function TailMap(const FromKey: IInterface): IJclIntfUnicodeStrSortedMap;
|
|
end;
|
|
{$ENDIF SUPPORTS_UNICODE_STRING}
|
|
|
|
{$IFDEF CONTAINER_ANSISTR}
|
|
IJclIntfStrSortedMap = IJclIntfAnsiStrSortedMap;
|
|
{$ENDIF CONTAINER_ANSISTR}
|
|
{$IFDEF CONTAINER_WIDESTR}
|
|
IJclIntfStrSortedMap = IJclIntfWideStrSortedMap;
|
|
{$ENDIF CONTAINER_WIDESTR}
|
|
{$IFDEF CONTAINER_UNICODESTR}
|
|
IJclIntfStrSortedMap = IJclIntfUnicodeStrSortedMap;
|
|
{$ENDIF CONTAINER_UNICODESTR}
|
|
|
|
IJclAnsiStrAnsiStrSortedMap = interface(IJclAnsiStrAnsiStrMap)
|
|
['{4F457799-5D03-413D-A46C-067DC4200CC3}']
|
|
function FirstKey: AnsiString;
|
|
function HeadMap(const ToKey: AnsiString): IJclAnsiStrAnsiStrSortedMap;
|
|
function LastKey: AnsiString;
|
|
function SubMap(const FromKey, ToKey: AnsiString): IJclAnsiStrAnsiStrSortedMap;
|
|
function TailMap(const FromKey: AnsiString): IJclAnsiStrAnsiStrSortedMap;
|
|
end;
|
|
|
|
IJclWideStrWideStrSortedMap = interface(IJclWideStrWideStrMap)
|
|
['{3B0757B2-2290-4AFA-880D-F9BA600E501E}']
|
|
function FirstKey: WideString;
|
|
function HeadMap(const ToKey: WideString): IJclWideStrWideStrSortedMap;
|
|
function LastKey: WideString;
|
|
function SubMap(const FromKey, ToKey: WideString): IJclWideStrWideStrSortedMap;
|
|
function TailMap(const FromKey: WideString): IJclWideStrWideStrSortedMap;
|
|
end;
|
|
|
|
{$IFDEF SUPPORTS_UNICODE_STRING}
|
|
IJclUnicodeStrUnicodeStrSortedMap = interface(IJclUnicodeStrUnicodeStrMap)
|
|
['{D8EACC5D-B31E-47A8-9CC9-32B15A79CACA}']
|
|
function FirstKey: UnicodeString;
|
|
function HeadMap(const ToKey: UnicodeString): IJclUnicodeStrUnicodeStrSortedMap;
|
|
function LastKey: UnicodeString;
|
|
function SubMap(const FromKey, ToKey: UnicodeString): IJclUnicodeStrUnicodeStrSortedMap;
|
|
function TailMap(const FromKey: UnicodeString): IJclUnicodeStrUnicodeStrSortedMap;
|
|
end;
|
|
{$ENDIF SUPPORTS_UNICODE_STRING}
|
|
|
|
{$IFDEF CONTAINER_ANSISTR}
|
|
IJclStrStrSortedMap = IJclAnsiStrAnsiStrSortedMap;
|
|
{$ENDIF CONTAINER_ANSISTR}
|
|
{$IFDEF CONTAINER_WIDESTR}
|
|
IJclStrStrSortedMap = IJclWideStrWideStrSortedMap;
|
|
{$ENDIF CONTAINER_WIDESTR}
|
|
{$IFDEF CONTAINER_UNICODESTR}
|
|
IJclStrStrSortedMap = IJclUnicodeStrUnicodeStrSortedMap;
|
|
{$ENDIF CONTAINER_UNICODESTR}
|
|
|
|
IJclSingleIntfSortedMap = interface(IJclSingleIntfMap)
|
|
['{83D57068-7B8E-453E-B35B-2AB4B594A7A9}']
|
|
function FirstKey: Single;
|
|
function HeadMap(const ToKey: Single): IJclSingleIntfSortedMap;
|
|
function LastKey: Single;
|
|
function SubMap(const FromKey, ToKey: Single): IJclSingleIntfSortedMap;
|
|
function TailMap(const FromKey: Single): IJclSingleIntfSortedMap;
|
|
end;
|
|
|
|
IJclIntfSingleSortedMap = interface(IJclIntfSingleMap)
|
|
['{B07FA192-3466-4F2A-BBF0-2DC0100B08A8}']
|
|
function FirstKey: IInterface;
|
|
function HeadMap(const ToKey: IInterface): IJclIntfSingleSortedMap;
|
|
function LastKey: IInterface;
|
|
function SubMap(const FromKey, ToKey: IInterface): IJclIntfSingleSortedMap;
|
|
function TailMap(const FromKey: IInterface): IJclIntfSingleSortedMap;
|
|
end;
|
|
|
|
IJclSingleSingleSortedMap = interface(IJclSingleSingleMap)
|
|
['{7C6EA0B4-959D-44D5-915F-99DFC1753B00}']
|
|
function FirstKey: Single;
|
|
function HeadMap(const ToKey: Single): IJclSingleSingleSortedMap;
|
|
function LastKey: Single;
|
|
function SubMap(const FromKey, ToKey: Single): IJclSingleSingleSortedMap;
|
|
function TailMap(const FromKey: Single): IJclSingleSingleSortedMap;
|
|
end;
|
|
|
|
IJclDoubleIntfSortedMap = interface(IJclDoubleIntfMap)
|
|
['{F36C5F4F-4F8C-4943-AA35-41623D3C21E9}']
|
|
function FirstKey: Double;
|
|
function HeadMap(const ToKey: Double): IJclDoubleIntfSortedMap;
|
|
function LastKey: Double;
|
|
function SubMap(const FromKey, ToKey: Double): IJclDoubleIntfSortedMap;
|
|
function TailMap(const FromKey: Double): IJclDoubleIntfSortedMap;
|
|
end;
|
|
|
|
IJclIntfDoubleSortedMap = interface(IJclIntfDoubleMap)
|
|
['{0F16ADAE-F499-4857-B5EA-6F3CC9009DBA}']
|
|
function FirstKey: IInterface;
|
|
function HeadMap(const ToKey: IInterface): IJclIntfDoubleSortedMap;
|
|
function LastKey: IInterface;
|
|
function SubMap(const FromKey, ToKey: IInterface): IJclIntfDoubleSortedMap;
|
|
function TailMap(const FromKey: IInterface): IJclIntfDoubleSortedMap;
|
|
end;
|
|
|
|
IJclDoubleDoubleSortedMap = interface(IJclDoubleDoubleMap)
|
|
['{855C858B-74CF-4338-872B-AF88A02DB537}']
|
|
function FirstKey: Double;
|
|
function HeadMap(const ToKey: Double): IJclDoubleDoubleSortedMap;
|
|
function LastKey: Double;
|
|
function SubMap(const FromKey, ToKey: Double): IJclDoubleDoubleSortedMap;
|
|
function TailMap(const FromKey: Double): IJclDoubleDoubleSortedMap;
|
|
end;
|
|
|
|
IJclExtendedIntfSortedMap = interface(IJclExtendedIntfMap)
|
|
['{A30B8835-A319-4776-9A11-D1EEF60B9C26}']
|
|
function FirstKey: Extended;
|
|
function HeadMap(const ToKey: Extended): IJclExtendedIntfSortedMap;
|
|
function LastKey: Extended;
|
|
function SubMap(const FromKey, ToKey: Extended): IJclExtendedIntfSortedMap;
|
|
function TailMap(const FromKey: Extended): IJclExtendedIntfSortedMap;
|
|
end;
|
|
|
|
IJclIntfExtendedSortedMap = interface(IJclIntfExtendedMap)
|
|
['{3493D6C4-3075-48B6-8E99-CB0000D3978C}']
|
|
function FirstKey: IInterface;
|
|
function HeadMap(const ToKey: IInterface): IJclIntfExtendedSortedMap;
|
|
function LastKey: IInterface;
|
|
function SubMap(const FromKey, ToKey: IInterface): IJclIntfExtendedSortedMap;
|
|
function TailMap(const FromKey: IInterface): IJclIntfExtendedSortedMap;
|
|
end;
|
|
|
|
IJclExtendedExtendedSortedMap = interface(IJclExtendedExtendedMap)
|
|
['{8CAA505C-D9BB-47E7-92EC-6043DC4AF42C}']
|
|
function FirstKey: Extended;
|
|
function HeadMap(const ToKey: Extended): IJclExtendedExtendedSortedMap;
|
|
function LastKey: Extended;
|
|
function SubMap(const FromKey, ToKey: Extended): IJclExtendedExtendedSortedMap;
|
|
function TailMap(const FromKey: Extended): IJclExtendedExtendedSortedMap;
|
|
end;
|
|
|
|
{$IFDEF MATH_EXTENDED_PRECISION}
|
|
IJclFloatIntfSortedMap = IJclExtendedIntfSortedMap;
|
|
IJclIntfFloatSortedMap = IJclIntfExtendedSortedMap;
|
|
IJclFloatFloatSortedMap = IJclExtendedExtendedSortedMap;
|
|
{$ENDIF MATH_EXTENDED_PRECISION}
|
|
{$IFDEF MATH_DOUBLE_PRECISION}
|
|
IJclFloatIntfSortedMap = IJclDoubleIntfSortedMap;
|
|
IJclIntfFloatSortedMap = IJclIntfDoubleSortedMap;
|
|
IJclFloatFloatSortedMap = IJclDoubleDoubleSortedMap;
|
|
{$ENDIF MATH_DOUBLE_PRECISION}
|
|
{$IFDEF MATH_SINGLE_PRECISION}
|
|
IJclFloatIntfSortedMap = IJclSingleIntfSortedMap;
|
|
IJclIntfFloatSortedMap = IJclIntfSingleSortedMap;
|
|
IJclFloatFloatSortedMap = IJclSingleSingleSortedMap;
|
|
{$ENDIF MATH_SINGLE_PRECISION}
|
|
|
|
IJclIntegerIntfSortedMap = interface(IJclIntegerIntfMap)
|
|
['{8B22802C-61F2-4DA5-B1E9-DBB7840E7996}']
|
|
function FirstKey: Integer;
|
|
function HeadMap(ToKey: Integer): IJclIntegerIntfSortedMap;
|
|
function LastKey: Integer;
|
|
function SubMap(FromKey, ToKey: Integer): IJclIntegerIntfSortedMap;
|
|
function TailMap(FromKey: Integer): IJclIntegerIntfSortedMap;
|
|
end;
|
|
|
|
IJclIntfIntegerSortedMap = interface(IJclIntfIntegerMap)
|
|
['{8D3C9B7E-772D-409B-A58C-0CABFAFDEFF0}']
|
|
function FirstKey: IInterface;
|
|
function HeadMap(const ToKey: IInterface): IJclIntfIntegerSortedMap;
|
|
function LastKey: IInterface;
|
|
function SubMap(const FromKey, ToKey: IInterface): IJclIntfIntegerSortedMap;
|
|
function TailMap(const FromKey: IInterface): IJclIntfIntegerSortedMap;
|
|
end;
|
|
|
|
IJclIntegerIntegerSortedMap = interface(IJclIntegerIntegerMap)
|
|
['{8A8BA17A-F468-469C-AF99-77D64C802F7A}']
|
|
function FirstKey: Integer;
|
|
function HeadMap(ToKey: Integer): IJclIntegerIntegerSortedMap;
|
|
function LastKey: Integer;
|
|
function SubMap(FromKey, ToKey: Integer): IJclIntegerIntegerSortedMap;
|
|
function TailMap(FromKey: Integer): IJclIntegerIntegerSortedMap;
|
|
end;
|
|
|
|
IJclCardinalIntfSortedMap = interface(IJclCardinalIntfMap)
|
|
['{BAE97425-4F2E-461B-88DD-F83D27657AFA}']
|
|
function FirstKey: Cardinal;
|
|
function HeadMap(ToKey: Cardinal): IJclCardinalIntfSortedMap;
|
|
function LastKey: Cardinal;
|
|
function SubMap(FromKey, ToKey: Cardinal): IJclCardinalIntfSortedMap;
|
|
function TailMap(FromKey: Cardinal): IJclCardinalIntfSortedMap;
|
|
end;
|
|
|
|
IJclIntfCardinalSortedMap = interface(IJclIntfCardinalMap)
|
|
['{BC66BACF-23AE-48C4-9573-EDC3B5110BE7}']
|
|
function FirstKey: IInterface;
|
|
function HeadMap(const ToKey: IInterface): IJclIntfCardinalSortedMap;
|
|
function LastKey: IInterface;
|
|
function SubMap(const FromKey, ToKey: IInterface): IJclIntfCardinalSortedMap;
|
|
function TailMap(const FromKey: IInterface): IJclIntfCardinalSortedMap;
|
|
end;
|
|
|
|
IJclCardinalCardinalSortedMap = interface(IJclCardinalCardinalMap)
|
|
['{182ACDA4-7D74-4D29-BB5C-4C8189DA774E}']
|
|
function FirstKey: Cardinal;
|
|
function HeadMap(ToKey: Cardinal): IJclCardinalCardinalSortedMap;
|
|
function LastKey: Cardinal;
|
|
function SubMap(FromKey, ToKey: Cardinal): IJclCardinalCardinalSortedMap;
|
|
function TailMap(FromKey: Cardinal): IJclCardinalCardinalSortedMap;
|
|
end;
|
|
|
|
IJclInt64IntfSortedMap = interface(IJclInt64IntfMap)
|
|
['{24391756-FB02-4901-81E3-A37738B73DAD}']
|
|
function FirstKey: Int64;
|
|
function HeadMap(const ToKey: Int64): IJclInt64IntfSortedMap;
|
|
function LastKey: Int64;
|
|
function SubMap(const FromKey, ToKey: Int64): IJclInt64IntfSortedMap;
|
|
function TailMap(const FromKey: Int64): IJclInt64IntfSortedMap;
|
|
end;
|
|
|
|
IJclIntfInt64SortedMap = interface(IJclIntfInt64Map)
|
|
['{6E2AB647-59CC-4609-82E8-6AE75AED80CA}']
|
|
function FirstKey: IInterface;
|
|
function HeadMap(const ToKey: IInterface): IJclIntfInt64SortedMap;
|
|
function LastKey: IInterface;
|
|
function SubMap(const FromKey, ToKey: IInterface): IJclIntfInt64SortedMap;
|
|
function TailMap(const FromKey: IInterface): IJclIntfInt64SortedMap;
|
|
end;
|
|
|
|
IJclInt64Int64SortedMap = interface(IJclInt64Int64Map)
|
|
['{168581D2-9DD3-46D0-934E-EA0CCE5E3C0C}']
|
|
function FirstKey: Int64;
|
|
function HeadMap(const ToKey: Int64): IJclInt64Int64SortedMap;
|
|
function LastKey: Int64;
|
|
function SubMap(const FromKey, ToKey: Int64): IJclInt64Int64SortedMap;
|
|
function TailMap(const FromKey: Int64): IJclInt64Int64SortedMap;
|
|
end;
|
|
|
|
IJclPtrIntfSortedMap = interface(IJclPtrIntfMap)
|
|
['{6D7B8042-3CBC-4C8F-98B5-69AFAA104532}']
|
|
function FirstKey: Pointer;
|
|
function HeadMap(ToKey: Pointer): IJclPtrIntfSortedMap;
|
|
function LastKey: Pointer;
|
|
function SubMap(FromKey, ToKey: Pointer): IJclPtrIntfSortedMap;
|
|
function TailMap(FromKey: Pointer): IJclPtrIntfSortedMap;
|
|
end;
|
|
|
|
IJclIntfPtrSortedMap = interface(IJclIntfPtrMap)
|
|
['{B054BDA2-536F-4C16-B6BB-BB64FA0818B3}']
|
|
function FirstKey: IInterface;
|
|
function HeadMap(const ToKey: IInterface): IJclIntfPtrSortedMap;
|
|
function LastKey: IInterface;
|
|
function SubMap(const FromKey, ToKey: IInterface): IJclIntfPtrSortedMap;
|
|
function TailMap(const FromKey: IInterface): IJclIntfPtrSortedMap;
|
|
end;
|
|
|
|
IJclPtrPtrSortedMap = interface(IJclPtrPtrMap)
|
|
['{F1FAE922-0212-41D0-BB4E-76A8AB2CAB86}']
|
|
function FirstKey: Pointer;
|
|
function HeadMap(ToKey: Pointer): IJclPtrPtrSortedMap;
|
|
function LastKey: Pointer;
|
|
function SubMap(FromKey, ToKey: Pointer): IJclPtrPtrSortedMap;
|
|
function TailMap(FromKey: Pointer): IJclPtrPtrSortedMap;
|
|
end;
|
|
|
|
IJclIntfSortedMap = interface(IJclIntfMap)
|
|
['{3CED1477-B958-4109-9BDA-7C84B9E063B2}']
|
|
function FirstKey: IInterface;
|
|
function HeadMap(const ToKey: IInterface): IJclIntfSortedMap;
|
|
function LastKey: IInterface;
|
|
function SubMap(const FromKey, ToKey: IInterface): IJclIntfSortedMap;
|
|
function TailMap(const FromKey: IInterface): IJclIntfSortedMap;
|
|
end;
|
|
|
|
IJclAnsiStrSortedMap = interface(IJclAnsiStrMap)
|
|
['{573F98E3-EBCD-4F28-8F35-96A7366CBF47}']
|
|
function FirstKey: AnsiString;
|
|
function HeadMap(const ToKey: AnsiString): IJclAnsiStrSortedMap;
|
|
function LastKey: AnsiString;
|
|
function SubMap(const FromKey, ToKey: AnsiString): IJclAnsiStrSortedMap;
|
|
function TailMap(const FromKey: AnsiString): IJclAnsiStrSortedMap;
|
|
end;
|
|
|
|
IJclWideStrSortedMap = interface(IJclWideStrMap)
|
|
['{B3021EFC-DE25-4B4B-A896-ACE823CD5C01}']
|
|
function FirstKey: WideString;
|
|
function HeadMap(const ToKey: WideString): IJclWideStrSortedMap;
|
|
function LastKey: WideString;
|
|
function SubMap(const FromKey, ToKey: WideString): IJclWideStrSortedMap;
|
|
function TailMap(const FromKey: WideString): IJclWideStrSortedMap;
|
|
end;
|
|
|
|
{$IFDEF SUPPORTS_UNICODE_STRING}
|
|
IJclUnicodeStrSortedMap = interface(IJclUnicodeStrMap)
|
|
['{5510B8FC-3439-4211-8D1F-5EDD9A56D3E3}']
|
|
function FirstKey: UnicodeString;
|
|
function HeadMap(const ToKey: UnicodeString): IJclUnicodeStrSortedMap;
|
|
function LastKey: UnicodeString;
|
|
function SubMap(const FromKey, ToKey: UnicodeString): IJclUnicodeStrSortedMap;
|
|
function TailMap(const FromKey: UnicodeString): IJclUnicodeStrSortedMap;
|
|
end;
|
|
{$ENDIF SUPPORTS_UNICODE_STRING}
|
|
|
|
{$IFDEF CONTAINER_ANSISTR}
|
|
IJclStrSortedMap = IJclAnsiStrSortedMap;
|
|
{$ENDIF CONTAINER_ANSISTR}
|
|
{$IFDEF CONTAINER_WIDESTR}
|
|
IJclStrSortedMap = IJclWideStrSortedMap;
|
|
{$ENDIF CONTAINER_WIDESTR}
|
|
{$IFDEF CONTAINER_UNICODESTR}
|
|
IJclStrSortedMap = IJclUnicodeStrSortedMap;
|
|
{$ENDIF CONTAINER_UNICODESTR}
|
|
|
|
IJclSingleSortedMap = interface(IJclSingleMap)
|
|
['{8C1A12BE-A7F2-4351-90B7-25DB0AAF5F94}']
|
|
function FirstKey: Single;
|
|
function HeadMap(const ToKey: Single): IJclSingleSortedMap;
|
|
function LastKey: Single;
|
|
function SubMap(const FromKey, ToKey: Single): IJclSingleSortedMap;
|
|
function TailMap(const FromKey: Single): IJclSingleSortedMap;
|
|
end;
|
|
|
|
IJclDoubleSortedMap = interface(IJclDoubleMap)
|
|
['{8018D66B-AA54-4016-84FC-3E780FFCC38B}']
|
|
function FirstKey: Double;
|
|
function HeadMap(const ToKey: Double): IJclDoubleSortedMap;
|
|
function LastKey: Double;
|
|
function SubMap(const FromKey, ToKey: Double): IJclDoubleSortedMap;
|
|
function TailMap(const FromKey: Double): IJclDoubleSortedMap;
|
|
end;
|
|
|
|
IJclExtendedSortedMap = interface(IJclExtendedMap)
|
|
['{2B82C65A-B3EF-477D-BEC0-3D8620A226B1}']
|
|
function FirstKey: Extended;
|
|
function HeadMap(const ToKey: Extended): IJclExtendedSortedMap;
|
|
function LastKey: Extended;
|
|
function SubMap(const FromKey, ToKey: Extended): IJclExtendedSortedMap;
|
|
function TailMap(const FromKey: Extended): IJclExtendedSortedMap;
|
|
end;
|
|
|
|
{$IFDEF MATH_EXTENDED_PRECISION}
|
|
IJclFloatSortedMap = IJclExtendedSortedMap;
|
|
{$ENDIF MATH_EXTENDED_PRECISION}
|
|
{$IFDEF MATH_DOUBLE_PRECISION}
|
|
IJclFloatSortedMap = IJclDoubleSortedMap;
|
|
{$ENDIF MATH_DOUBLE_PRECISION}
|
|
{$IFDEF MATH_SINGLE_PRECISION}
|
|
IJclFloatSortedMap = IJclSingleSortedMap;
|
|
{$ENDIF MATH_SINGLE_PRECISION}
|
|
|
|
IJclIntegerSortedMap = interface(IJclIntegerMap)
|
|
['{DD7B4C5E-6D51-44CC-9328-B38396A7E1C9}']
|
|
function FirstKey: Integer;
|
|
function HeadMap(ToKey: Integer): IJclIntegerSortedMap;
|
|
function LastKey: Integer;
|
|
function SubMap(FromKey, ToKey: Integer): IJclIntegerSortedMap;
|
|
function TailMap(FromKey: Integer): IJclIntegerSortedMap;
|
|
end;
|
|
|
|
IJclCardinalSortedMap = interface(IJclCardinalMap)
|
|
['{4AEAF81F-D72E-4499-B10E-3D017F39915E}']
|
|
function FirstKey: Cardinal;
|
|
function HeadMap(ToKey: Cardinal): IJclCardinalSortedMap;
|
|
function LastKey: Cardinal;
|
|
function SubMap(FromKey, ToKey: Cardinal): IJclCardinalSortedMap;
|
|
function TailMap(FromKey: Cardinal): IJclCardinalSortedMap;
|
|
end;
|
|
|
|
IJclInt64SortedMap = interface(IJclInt64Map)
|
|
['{06C03F90-7DE9-4043-AA56-AAE071D8BD50}']
|
|
function FirstKey: Int64;
|
|
function HeadMap(const ToKey: Int64): IJclInt64SortedMap;
|
|
function LastKey: Int64;
|
|
function SubMap(const FromKey, ToKey: Int64): IJclInt64SortedMap;
|
|
function TailMap(const FromKey: Int64): IJclInt64SortedMap;
|
|
end;
|
|
|
|
IJclPtrSortedMap = interface(IJclPtrMap)
|
|
['{578918DB-6A4A-4A9D-B44E-AE3E8FF70818}']
|
|
function FirstKey: Pointer;
|
|
function HeadMap(ToKey: Pointer): IJclPtrSortedMap;
|
|
function LastKey: Pointer;
|
|
function SubMap(FromKey, ToKey: Pointer): IJclPtrSortedMap;
|
|
function TailMap(FromKey: Pointer): IJclPtrSortedMap;
|
|
end;
|
|
|
|
IJclSortedMap = interface(IJclMap)
|
|
['{F317A70F-7851-49C2-9DCF-092D8F4D4F98}']
|
|
function FirstKey: TObject;
|
|
function HeadMap(ToKey: TObject): IJclSortedMap;
|
|
function LastKey: TObject;
|
|
function SubMap(FromKey, ToKey: TObject): IJclSortedMap;
|
|
function TailMap(FromKey: TObject): IJclSortedMap;
|
|
end;
|
|
|
|
{$IFDEF SUPPORTS_GENERICS}
|
|
IJclSortedMap<TKey,TValue> = interface(IJclMap<TKey,TValue>)
|
|
['{C62B75C4-891B-442E-A5D6-9954E75A5C0C}']
|
|
function FirstKey: TKey;
|
|
function HeadMap(const ToKey: TKey): IJclSortedMap<TKey,TValue>;
|
|
function LastKey: TKey;
|
|
function SubMap(const FromKey, ToKey: TKey): IJclSortedMap<TKey,TValue>;
|
|
function TailMap(const FromKey: TKey): IJclSortedMap<TKey,TValue>;
|
|
end;
|
|
{$ENDIF SUPPORTS_GENERICS}
|
|
|
|
IJclIntfSortedSet = interface(IJclIntfSet)
|
|
['{159BE5A7-7349-42FF-BE55-9CA1B9DBA991}']
|
|
function HeadSet(const Finish: IInterface): IJclIntfSortedSet;
|
|
function SubSet(const Start, Finish: IInterface): IJclIntfSortedSet;
|
|
function TailSet(const Start: IInterface): IJclIntfSortedSet;
|
|
end;
|
|
|
|
IJclAnsiStrSortedSet = interface(IJclAnsiStrSet)
|
|
['{03198146-F967-4310-868B-7AD3D52D5CBE}']
|
|
function HeadSet(const Finish: AnsiString): IJclAnsiStrSortedSet;
|
|
function SubSet(const Start, Finish: AnsiString): IJclAnsiStrSortedSet;
|
|
function TailSet(const Start: AnsiString): IJclAnsiStrSortedSet;
|
|
end;
|
|
|
|
IJclWideStrSortedSet = interface(IJclWideStrSet)
|
|
['{ED9567E2-C1D3-4C00-A1D4-90D5C7E27C2D}']
|
|
function HeadSet(const Finish: WideString): IJclWideStrSortedSet;
|
|
function SubSet(const Start, Finish: WideString): IJclWideStrSortedSet;
|
|
function TailSet(const Start: WideString): IJclWideStrSortedSet;
|
|
end;
|
|
|
|
{$IFDEF SUPPORTS_UNICODE_STRING}
|
|
IJclUnicodeStrSortedSet = interface(IJclUnicodeStrSet)
|
|
['{172BCD6F-D23C-4014-9C8C-A77A27D6E881}']
|
|
function HeadSet(const Finish: UnicodeString): IJclUnicodeStrSortedSet;
|
|
function SubSet(const Start, Finish: UnicodeString): IJclUnicodeStrSortedSet;
|
|
function TailSet(const Start: UnicodeString): IJclUnicodeStrSortedSet;
|
|
end;
|
|
{$ENDIF SUPPORTS_UNICODE_STRING}
|
|
|
|
{$IFDEF CONTAINER_ANSISTR}
|
|
IJclStrSortedSet = IJclAnsiStrSortedSet;
|
|
{$ENDIF CONTAINER_ANSISTR}
|
|
{$IFDEF CONTAINER_WIDESTR}
|
|
IJclStrSortedSet = IJclWideStrSortedSet;
|
|
{$ENDIF CONTAINER_WIDESTR}
|
|
{$IFDEF CONTAINER_UNICODESTR}
|
|
IJclStrSortedSet = IJclUnicodeStrSortedSet;
|
|
{$ENDIF CONTAINER_UNICODESTR}
|
|
|
|
IJclSingleSortedSet = interface(IJclSingleSet)
|
|
['{65EDA801-9E04-4119-BF9E-D7DD4AF82144}']
|
|
function HeadSet(const Finish: Single): IJclSingleSortedSet;
|
|
function SubSet(const Start, Finish: Single): IJclSingleSortedSet;
|
|
function TailSet(const Start: Single): IJclSingleSortedSet;
|
|
end;
|
|
|
|
IJclDoubleSortedSet = interface(IJclDoubleSet)
|
|
['{DA0E689F-BAFE-4BCE-85E4-C38E780BC84C}']
|
|
function HeadSet(const Finish: Double): IJclDoubleSortedSet;
|
|
function SubSet(const Start, Finish: Double): IJclDoubleSortedSet;
|
|
function TailSet(const Start: Double): IJclDoubleSortedSet;
|
|
end;
|
|
|
|
IJclExtendedSortedSet = interface(IJclExtendedSet)
|
|
['{A9875ED3-81A4-43A3-86BB-3429F51B278B}']
|
|
function HeadSet(const Finish: Extended): IJclExtendedSortedSet;
|
|
function SubSet(const Start, Finish: Extended): IJclExtendedSortedSet;
|
|
function TailSet(const Start: Extended): IJclExtendedSortedSet;
|
|
end;
|
|
|
|
{$IFDEF MATH_EXTENDED_PRECISION}
|
|
IJclFloatSortedSet = IJclExtendedSortedSet;
|
|
{$ENDIF MATH_EXTENDED_PRECISION}
|
|
{$IFDEF MATH_DOUBLE_PRECISION}
|
|
IJclFloatSortedSet = IJclDoubleSortedSet;
|
|
{$ENDIF MATH_DOUBLE_PRECISION}
|
|
{$IFDEF MATH_SINGLE_PRECISION}
|
|
IJclFloatSortedSet = IJclSingleSortedSet;
|
|
{$ENDIF MATH_SINGLE_PRECISION}
|
|
|
|
IJclIntegerSortedSet = interface(IJclIntegerSet)
|
|
['{E086C54B-4FA3-426D-AC4E-FF8E8CA3D663}']
|
|
function HeadSet(Finish: Integer): IJclIntegerSortedSet;
|
|
function SubSet(Start, Finish: Integer): IJclIntegerSortedSet;
|
|
function TailSet(Start: Integer): IJclIntegerSortedSet;
|
|
end;
|
|
|
|
IJclCardinalSortedSet = interface(IJclCardinalSet)
|
|
['{2D7995C6-A784-48B6-87E9-55D394A72362}']
|
|
function HeadSet(Finish: Cardinal): IJclCardinalSortedSet;
|
|
function SubSet(Start, Finish: Cardinal): IJclCardinalSortedSet;
|
|
function TailSet(Start: Cardinal): IJclCardinalSortedSet;
|
|
end;
|
|
|
|
IJclInt64SortedSet = interface(IJclInt64Set)
|
|
['{4C1C3FCA-6169-4A2F-B044-91AC2AA2E954}']
|
|
function HeadSet(const Finish: Int64): IJclInt64SortedSet;
|
|
function SubSet(const Start, Finish: Int64): IJclInt64SortedSet;
|
|
function TailSet(const Start: Int64): IJclInt64SortedSet;
|
|
end;
|
|
|
|
IJclPtrSortedSet = interface(IJclPtrSet)
|
|
['{F3A3183C-0820-425C-9446-E0838F0ADAD8}']
|
|
function HeadSet(Finish: Pointer): IJclPtrSortedSet;
|
|
function SubSet(Start, Finish: Pointer): IJclPtrSortedSet;
|
|
function TailSet(Start: Pointer): IJclPtrSortedSet;
|
|
end;
|
|
|
|
IJclSortedSet = interface(IJclSet)
|
|
['{A3D23E76-ADE9-446C-9B97-F49FCE895D9F}']
|
|
function HeadSet(Finish: TObject): IJclSortedSet;
|
|
function SubSet(Start, Finish: TObject): IJclSortedSet;
|
|
function TailSet(Start: TObject): IJclSortedSet;
|
|
end;
|
|
|
|
{$IFDEF SUPPORTS_GENERICS}
|
|
IJclSortedSet<T> = interface(IJclSet<T>)
|
|
['{30F836E3-2FB1-427E-A499-DFAE201633C8}']
|
|
function HeadSet(const Finish: T): IJclSortedSet<T>;
|
|
function SubSet(const Start, Finish: T): IJclSortedSet<T>;
|
|
function TailSet(const Start: T): IJclSortedSet<T>;
|
|
end;
|
|
{$ENDIF SUPPORTS_GENERICS}
|
|
|
|
IJclIntfStack = interface(IJclContainer)
|
|
['{CA1DC7A1-8D8F-4A5D-81D1-0FE32E9A4E84}']
|
|
procedure Clear;
|
|
function Contains(const AInterface: IInterface): Boolean;
|
|
function Empty: Boolean;
|
|
function Peek: IInterface;
|
|
function Pop: IInterface;
|
|
function Push(const AInterface: IInterface): Boolean;
|
|
function Size: Integer;
|
|
end;
|
|
|
|
IJclAnsiStrStack = interface(IJclAnsiStrContainer)
|
|
['{649BB74C-D7BE-40D9-9F4E-32DDC3F13F3B}']
|
|
procedure Clear;
|
|
function Contains(const AString: AnsiString): Boolean;
|
|
function Empty: Boolean;
|
|
function Peek: AnsiString;
|
|
function Pop: AnsiString;
|
|
function Push(const AString: AnsiString): Boolean;
|
|
function Size: Integer;
|
|
end;
|
|
|
|
IJclWideStrStack = interface(IJclWideStrContainer)
|
|
['{B2C3B165-33F1-4B7D-A2EC-0B19D12CE33C}']
|
|
procedure Clear;
|
|
function Contains(const AString: WideString): Boolean;
|
|
function Empty: Boolean;
|
|
function Peek: WideString;
|
|
function Pop: WideString;
|
|
function Push(const AString: WideString): Boolean;
|
|
function Size: Integer;
|
|
end;
|
|
|
|
{$IFDEF SUPPORTS_UNICODE_STRING}
|
|
IJclUnicodeStrStack = interface(IJclUnicodeStrContainer)
|
|
['{BC046C3D-E3D2-42BA-A96D-054834A70404}']
|
|
procedure Clear;
|
|
function Contains(const AString: UnicodeString): Boolean;
|
|
function Empty: Boolean;
|
|
function Peek: UnicodeString;
|
|
function Pop: UnicodeString;
|
|
function Push(const AString: UnicodeString): Boolean;
|
|
function Size: Integer;
|
|
end;
|
|
{$ENDIF SUPPORTS_UNICODE_STRING}
|
|
|
|
{$IFDEF CONTAINER_ANSISTR}
|
|
IJclStrStack = IJclAnsiStrStack;
|
|
{$ENDIF CONTAINER_ANSISTR}
|
|
{$IFDEF CONTAINER_WIDESTR}
|
|
IJclStrStack = IJclWideStrStack;
|
|
{$ENDIF CONTAINER_WIDESTR}
|
|
{$IFDEF CONTAINER_UNICODESTR}
|
|
IJclStrStack = IJclUnicodeStrStack;
|
|
{$ENDIF CONTAINER_UNICODESTR}
|
|
|
|
IJclSingleStack = interface(IJclSingleContainer)
|
|
['{8DCE45C8-B5B3-43AB-BA08-DAD531CEB9CF}']
|
|
procedure Clear;
|
|
function Contains(const AValue: Single): Boolean;
|
|
function Empty: Boolean;
|
|
function Peek: Single;
|
|
function Pop: Single;
|
|
function Push(const AValue: Single): Boolean;
|
|
function Size: Integer;
|
|
end;
|
|
|
|
IJclDoubleStack = interface(IJclDoubleContainer)
|
|
['{46DF2701-16F0-453C-B938-F04E9C1CEBF8}']
|
|
procedure Clear;
|
|
function Contains(const AValue: Double): Boolean;
|
|
function Empty: Boolean;
|
|
function Peek: Double;
|
|
function Pop: Double;
|
|
function Push(const AValue: Double): Boolean;
|
|
function Size: Integer;
|
|
end;
|
|
|
|
IJclExtendedStack = interface(IJclExtendedContainer)
|
|
['{A2A30585-F561-4757-ABE1-CA511AE72CC5}']
|
|
procedure Clear;
|
|
function Contains(const AValue: Extended): Boolean;
|
|
function Empty: Boolean;
|
|
function Peek: Extended;
|
|
function Pop: Extended;
|
|
function Push(const AValue: Extended): Boolean;
|
|
function Size: Integer;
|
|
end;
|
|
|
|
{$IFDEF MATH_EXTENDED_PRECISION}
|
|
IJclFloatStack = IJclExtendedStack;
|
|
{$ENDIF MATH_EXTENDED_PRECISION}
|
|
{$IFDEF MATH_DOUBLE_PRECISION}
|
|
IJclFloatStack = IJclDoubleStack;
|
|
{$ENDIF MATH_DOUBLE_PRECISION}
|
|
{$IFDEF MATH_SINGLE_PRECISION}
|
|
IJclFloatStack = IJclSingleStack;
|
|
{$ENDIF MATH_SINGLE_PRECISION}
|
|
|
|
IJclIntegerStack = interface(IJclContainer)
|
|
['{9190BF0E-5B0C-4D6C-A107-20A933C9B56A}']
|
|
procedure Clear;
|
|
function Contains(AValue: Integer): Boolean;
|
|
function Empty: Boolean;
|
|
function Peek: Integer;
|
|
function Pop: Integer;
|
|
function Push(AValue: Integer): Boolean;
|
|
function Size: Integer;
|
|
end;
|
|
|
|
IJclCardinalStack = interface(IJclContainer)
|
|
['{94F9EDB3-602B-49CE-9990-0AFDAC556F83}']
|
|
procedure Clear;
|
|
function Contains(AValue: Cardinal): Boolean;
|
|
function Empty: Boolean;
|
|
function Peek: Cardinal;
|
|
function Pop: Cardinal;
|
|
function Push(AValue: Cardinal): Boolean;
|
|
function Size: Integer;
|
|
end;
|
|
|
|
IJclInt64Stack = interface(IJclContainer)
|
|
['{D689EB8F-2746-40E9-AD1B-7E656475FC64}']
|
|
procedure Clear;
|
|
function Contains(const AValue: Int64): Boolean;
|
|
function Empty: Boolean;
|
|
function Peek: Int64;
|
|
function Pop: Int64;
|
|
function Push(const AValue: Int64): Boolean;
|
|
function Size: Integer;
|
|
end;
|
|
|
|
IJclPtrStack = interface(IJclContainer)
|
|
['{AD11D06C-E0E1-4EDE-AA2F-BC8BDD972B73}']
|
|
procedure Clear;
|
|
function Contains(APtr: Pointer): Boolean;
|
|
function Empty: Boolean;
|
|
function Peek: Pointer;
|
|
function Pop: Pointer;
|
|
function Push(APtr: Pointer): Boolean;
|
|
function Size: Integer;
|
|
end;
|
|
|
|
IJclStack = interface(IJclContainer)
|
|
['{E07E0BD8-A831-41B9-B9A0-7199BD4873B9}']
|
|
procedure Clear;
|
|
function Contains(AObject: TObject): Boolean;
|
|
function Empty: Boolean;
|
|
function Peek: TObject;
|
|
function Pop: TObject;
|
|
function Push(AObject: TObject): Boolean;
|
|
function Size: Integer;
|
|
end;
|
|
|
|
{$IFDEF SUPPORTS_GENERICS}
|
|
IJclStack<T> = interface(IJclContainer)
|
|
['{2F08EAC9-270D-496E-BE10-5E975918A5F2}']
|
|
procedure Clear;
|
|
function Contains(const AItem: T): Boolean;
|
|
function Empty: Boolean;
|
|
function Peek: T;
|
|
function Pop: T;
|
|
function Push(const AItem: T): Boolean;
|
|
function Size: Integer;
|
|
end;
|
|
{$ENDIF SUPPORTS_GENERICS}
|
|
|
|
// Exceptions
|
|
EJclContainerError = class(EJclError);
|
|
|
|
EJclOutOfBoundsError = class(EJclContainerError)
|
|
public
|
|
// RsEOutOfBounds
|
|
constructor Create;
|
|
end;
|
|
|
|
EJclNoSuchElementError = class(EJclContainerError)
|
|
public
|
|
// RsEValueNotFound
|
|
constructor Create(const Value: string);
|
|
end;
|
|
|
|
EJclDuplicateElementError = class(EJclContainerError)
|
|
public
|
|
// RsEDuplicateElement
|
|
constructor Create;
|
|
end;
|
|
|
|
EJclIllegalArgumentError = class(EJclContainerError)
|
|
end;
|
|
|
|
EJclNoCollectionError = class(EJclIllegalArgumentError)
|
|
public
|
|
// RsENoCollection
|
|
constructor Create;
|
|
end;
|
|
|
|
EJclIllegalQueueCapacityError = class(EJclIllegalArgumentError)
|
|
public
|
|
// RsEIllegalQueueCapacity
|
|
constructor Create;
|
|
end;
|
|
|
|
EJclOperationNotSupportedError = class(EJclContainerError)
|
|
public
|
|
// RsEOperationNotSupported
|
|
constructor Create;
|
|
end;
|
|
|
|
EJclNoEqualityComparerError = class(EJclContainerError)
|
|
public
|
|
// RsENoEqualityComparer
|
|
constructor Create;
|
|
end;
|
|
|
|
EJclNoComparerError = class(EJclContainerError)
|
|
public
|
|
// RsENoComparer
|
|
constructor Create;
|
|
end;
|
|
|
|
EJclNoHashConverterError = class(EJclContainerError)
|
|
public
|
|
// RsENoHashConverter
|
|
constructor Create;
|
|
end;
|
|
|
|
EJclIllegalStateOperationError = class(EJclContainerError)
|
|
public
|
|
// RsEIllegalStateOperation
|
|
constructor Create;
|
|
end;
|
|
|
|
EJclAssignError = class(EJclContainerError)
|
|
public
|
|
// RsEAssignError
|
|
constructor Create;
|
|
end;
|
|
|
|
EJclReadOnlyError = class(EJclContainerError)
|
|
public
|
|
// RsEReadOnlyError
|
|
constructor Create;
|
|
end;
|
|
|
|
{$IFDEF UNITVERSIONING}
|
|
const
|
|
UnitVersioning: TUnitVersionInfo = (
|
|
RCSfile: '$URL: https://jcl.svn.sourceforge.net/svnroot/jcl/tags/JCL-2.1-Build3536/jcl/source/common/JclContainerIntf.pas $';
|
|
Revision: '$Revision: 2940 $';
|
|
Date: '$Date: 2009-08-10 19:54:31 +0200 (lun., 10 août 2009) $';
|
|
LogPath: 'JCL\source\common';
|
|
Extra: '';
|
|
Data: nil
|
|
);
|
|
{$ENDIF UNITVERSIONING}
|
|
|
|
implementation
|
|
|
|
uses
|
|
SysUtils,
|
|
JclResources;
|
|
|
|
//=== { EJclOutOfBoundsError } ===============================================
|
|
|
|
constructor EJclOutOfBoundsError.Create;
|
|
begin
|
|
inherited CreateRes(@RsEOutOfBounds);
|
|
end;
|
|
|
|
//=== { EJclNoSuchElementError } =============================================
|
|
|
|
constructor EJclNoSuchElementError.Create(const Value: string);
|
|
begin
|
|
inherited CreateResFmt(@RsEValueNotFound, [Value]);
|
|
end;
|
|
|
|
//=== { EJclDuplicateElementError } ==========================================
|
|
|
|
constructor EJclDuplicateElementError.Create;
|
|
begin
|
|
inherited CreateRes(@RsEDuplicateElement);
|
|
end;
|
|
|
|
//=== { EJclIllegalQueueCapacityError } ======================================
|
|
|
|
constructor EJclIllegalQueueCapacityError.Create;
|
|
begin
|
|
inherited CreateRes(@RsEIllegalQueueCapacity);
|
|
end;
|
|
|
|
//=== { EJclNoCollectionError } ==============================================
|
|
|
|
constructor EJclNoCollectionError.Create;
|
|
begin
|
|
inherited CreateRes(@RsENoCollection);
|
|
end;
|
|
|
|
//=== { EJclOperationNotSupportedError } =====================================
|
|
|
|
constructor EJclOperationNotSupportedError.Create;
|
|
begin
|
|
inherited CreateRes(@RsEOperationNotSupported);
|
|
end;
|
|
|
|
//=== { EJclIllegalStateOperationError } =====================================
|
|
|
|
constructor EJclIllegalStateOperationError.Create;
|
|
begin
|
|
inherited CreateRes(@RsEIllegalStateOperation);
|
|
end;
|
|
|
|
//=== { EJclNoComparerError } ================================================
|
|
|
|
constructor EJclNoComparerError.Create;
|
|
begin
|
|
inherited CreateRes(@RsENoComparer);
|
|
end;
|
|
|
|
//=== { EJclNoEqualityComparerError } ========================================
|
|
|
|
constructor EJclNoEqualityComparerError.Create;
|
|
begin
|
|
inherited CreateRes(@RsENoEqualityComparer);
|
|
end;
|
|
|
|
//=== { EJclNoHashConverterError } ===========================================
|
|
|
|
constructor EJclNoHashConverterError.Create;
|
|
begin
|
|
inherited CreateRes(@RsENoHashConverter);
|
|
end;
|
|
|
|
//=== { EJclAssignError } ====================================================
|
|
|
|
constructor EJclAssignError.Create;
|
|
begin
|
|
inherited CreateRes(@RsEAssignError);
|
|
end;
|
|
|
|
//=== { EJclReadOnlyError } ==================================================
|
|
|
|
constructor EJclReadOnlyError.Create;
|
|
begin
|
|
inherited CreateRes(@RsEReadOnlyError);
|
|
end;
|
|
|
|
{$IFDEF UNITVERSIONING}
|
|
initialization
|
|
RegisterUnitVersion(HInstance, UnitVersioning);
|
|
|
|
finalization
|
|
UnregisterUnitVersion(HInstance);
|
|
{$ENDIF UNITVERSIONING}
|
|
|
|
end.
|
|
|