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