TFPGMapInterfacedObjectData
[Properties (by Name)][Methods (by Name)][Events (by Name)]
Generic map for reference counted objects
Declaration
Source position: fgl.pp line 395
Type
generic TFPGMapInterfacedObjectData<TKey, TData> = class (TFPSMap)
private
TKeyCompareFunc = function(const Key1: TKey; const Key2: TKey) : Integer;
TDataCompareFunc = function(const Data1: TData; const Data2: TData)
: Integer;
PKey = ^TKey;
protected
FOnKeyCompare : TKeyCompareFunc;
FOnDataCompare : TDataCompareFunc;
procedure CopyItem(Src: Pointer; Dest: Pointer); Override;
procedure CopyKey(Src: Pointer; Dest: Pointer); Override;
procedure CopyData(Src: Pointer; Dest: Pointer); Override;
procedure Deref(Item: Pointer); Override;
procedure InitOnPtrCompare; Override;
function GetKey(Index: Integer) : TKey;
function GetKeyData(const AKey: TKey) : TData;
function GetData(Index: Integer) : TData;
function KeyCompare(Key1: Pointer; Key2: Pointer) : Integer;
function KeyCustomCompare(Key1: Pointer; Key2: Pointer) : Integer;
function DataCustomCompare(Data1: Pointer; Data2: Pointer) : Integer;
procedure PutKey(Index: Integer; const NewKey: TKey);
procedure PutKeyData(const AKey: TKey; const NewData: TData);
procedure PutData(Index: Integer; const NewData: TData);
procedure SetOnKeyCompare(NewCompare: TKeyCompareFunc);
procedure SetOnDataCompare(NewCompare: TDataCompareFunc);
public
constructor Create;
function Add(const AKey: TKey; const AData: TData) : Integer;
function Add(const AKey: TKey) : Integer;
function Find(const AKey: TKey; out Index: Integer) : Boolean;
function TryGetData(const AKey: TKey; out AData: TData) : Boolean;
procedure AddOrSetData(const AKey: TKey; const AData: TData);
function IndexOf(const AKey: TKey) : Integer;
function IndexOfData(const AData: TData) : Integer;
procedure InsertKey(Index: Integer; const AKey: TKey);
procedure InsertKeyData(Index: Integer; const AKey: TKey;
const AData: TData);
function Remove(const AKey: TKey) : Integer;
Keys[Index: Integer]: TKey;
Data[Index: Integer]: TData;
KeyData[AKey: TKey]: TData; default;
OnCompare : TKeyCompareFunc;
OnKeyCompare : TKeyCompareFunc;
OnDataCompare : TDataCompareFunc;
end
;
Description
TFPGInterfacedObjectMap is a generic map class. It can be used to specialize a map for any key type, with associated data type that requires manual reference counting: any type which implements IInterface. For non-reference counted objects, TFPGMap should be used.
This map class is entirely equivalent to TFPGMap , but operates on data items that require additional reference counting code on the data.
Members
Member | Type | Visibility | Description |
---|---|---|---|
Add | Method | public | Add a key and value to the map |
AddOrSetData | Method | public | Add data with given or set value if the key already exists. |
CopyData | Method | protected | |
CopyItem | Method | protected | |
CopyKey | Method | protected | |
Create | Method | public | Create a new instance of the map |
Data | Property | public | Indexed access to the data in the list |
DataCustomCompare | Method | protected | |
Deref | Method | protected | |
Find | Method | public | Find item based on key |
FOnDataCompare | Field | protected | |
FOnKeyCompare | Field | protected | |
GetData | Method | protected | |
GetKey | Method | protected | |
GetKeyData | Method | protected | |
IndexOf | Method | public | Find index of a key in the list. |
IndexOfData | Method | public | Find index of data value in the list. |
InitOnPtrCompare | Method | protected | |
InsertKey | Method | public | Insert a new key in the list |
InsertKeyData | Method | public | Insert a new key with associated data in the list |
KeyCompare | Method | protected | |
KeyCustomCompare | Method | protected | |
KeyData | Property | public | Access to data based on key |
Keys | Property | public | Indexed access to the keys in the list. |
OnCompare | Property | public | Alias for OnKeyCompare |
OnDataCompare | Property | public | Compare function for data values. |
OnKeyCompare | Property | public | Compare function for key values. |
PKey | Type | private | |
PutData | Method | protected | |
PutKey | Method | protected | |
PutKeyData | Method | protected | |
Remove | Method | public | Remove a key from the list |
SetOnDataCompare | Method | protected | |
SetOnKeyCompare | Method | protected | |
TDataCompareFunc | Type | private | |
TKeyCompareFunc | Type | private | |
TryGetData | Method | public | Find data or return default |
Inheritance
Class | Description |
---|---|
TFPGMapInterfacedObjectData | Generic map for reference counted objects |
See also
Name | Description |
---|---|
TFPGMap | Generic map |