mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-26 16:13:56 +02:00
955 lines
31 KiB
XML
955 lines
31 KiB
XML
<?xml version="1.0"?>
|
|
<fpdoc-descriptions>
|
|
<package name="lcl">
|
|
<!--
|
|
====================================================================
|
|
DynHashArray
|
|
====================================================================
|
|
-->
|
|
<module name="DynHashArray">
|
|
<short>Module of managing dynamic sets or associative arrays</short>
|
|
<descr>
|
|
<p>Extends the functionality of Pascal by offering alternative data structure : set like array (the order is not kept) with fast find/delete. Its size can change automatically during the execution of the program. The price is that it is somewhat slower than a number indexes access of an array. </p>
|
|
<p>This unit defines TDynHashArray, which is very similar to a TList, since
|
|
it also stores pointer/objects. </p>
|
|
<p>It supports Add, Remove, Contains, First, Count and Clear.</p>
|
|
<p>Because of the hashing nature the operations adding, removing and finding is
|
|
done in constant time on average.</p>
|
|
<code>Inner structure:
|
|
There are three parts:
|
|
1. The array itself (FItems). Every entry is a pointer to the first
|
|
TDynHashArrayItem of a list with the same hash index. The first item
|
|
of every same index list is the list beginning and its IsOverflow
|
|
flag is set to false. All other items are overflow items.
|
|
To get all items with the same hash index, do a FindHashItem. Then
|
|
search through all "Next" items until Next is nil or its IsOverflow
|
|
flag is set to false.
|
|
2. The items beginning with FFirstItem is a 2-way-connected list of
|
|
TDynHashArrayItem. This list contains all used items.
|
|
3. To reduce GetMem/FreeMem calls, free items are cached.
|
|
|
|
Issues:
|
|
The maximum capacity is the PrimeNumber. You can store more items, but the
|
|
performance decreases. The best idea is to provide your own hash function.
|
|
|
|
Important: Items in the TDynHashArray must not change their key.
|
|
When changing the key of an item, remove it and add it after the change.
|
|
</code>
|
|
</descr>
|
|
<!-- unresolved type reference Visibility: default -->
|
|
<element name="Classes">
|
|
<short/>
|
|
<descr/>
|
|
<seealso/>
|
|
</element>
|
|
<!-- unresolved type reference Visibility: default -->
|
|
<element name="SysUtils">
|
|
<short/>
|
|
<descr/>
|
|
<seealso/>
|
|
</element>
|
|
<!-- unresolved type reference Visibility: default -->
|
|
<element name="LCLProc">
|
|
<short/>
|
|
<descr/>
|
|
<seealso/>
|
|
</element>
|
|
<!-- object Visibility: default -->
|
|
<element name="TDynHashArray">
|
|
<short>Name of the class that store all functions and data for an hashed array.</short>
|
|
<descr/>
|
|
<errors/>
|
|
<seealso/>
|
|
</element>
|
|
<!-- function type Visibility: default -->
|
|
<element name="THashFunction">
|
|
<short>Type for hash function</short>
|
|
<descr>Each hash function specified by the user has to have these parameters</descr>
|
|
<seealso/>
|
|
</element>
|
|
<!-- function result Visibility: default -->
|
|
<element name="THashFunction.Result">
|
|
<short/>
|
|
</element>
|
|
<!-- argument Visibility: default -->
|
|
<element name="THashFunction.Sender">
|
|
<short/>
|
|
</element>
|
|
<!-- argument Visibility: default -->
|
|
<element name="THashFunction.Item">
|
|
<short/>
|
|
</element>
|
|
<!-- function type Visibility: default -->
|
|
<element name="TOwnerHashFunction">
|
|
<short/>
|
|
<descr/>
|
|
<seealso/>
|
|
</element>
|
|
<!-- function result Visibility: default -->
|
|
<element name="TOwnerHashFunction.Result">
|
|
<short/>
|
|
</element>
|
|
<!-- argument Visibility: default -->
|
|
<element name="TOwnerHashFunction.Item">
|
|
<short/>
|
|
</element>
|
|
<!-- function type Visibility: default -->
|
|
<element name="TOnGetKeyForHashItem">
|
|
<short/>
|
|
<descr/>
|
|
<seealso/>
|
|
</element>
|
|
<!-- function result Visibility: default -->
|
|
<element name="TOnGetKeyForHashItem.Result">
|
|
<short/>
|
|
</element>
|
|
<!-- argument Visibility: default -->
|
|
<element name="TOnGetKeyForHashItem.Item">
|
|
<short/>
|
|
</element>
|
|
<!-- pointer type Visibility: default -->
|
|
<element name="PDynHashArrayItem">
|
|
<short/>
|
|
<descr/>
|
|
<seealso/>
|
|
</element>
|
|
<!-- record type Visibility: default -->
|
|
<element name="TDynHashArrayItem">
|
|
<short/>
|
|
<descr/>
|
|
<seealso/>
|
|
</element>
|
|
<!-- variable Visibility: default -->
|
|
<element name="TDynHashArrayItem.Item">
|
|
<short>Pointer to an element to be stored in the array.</short>
|
|
<descr/>
|
|
<seealso/>
|
|
</element>
|
|
<!-- variable Visibility: default -->
|
|
<element name="TDynHashArrayItem.Next">
|
|
<short>It points to the next element in the doubly linked list.</short>
|
|
<descr/>
|
|
<seealso/>
|
|
</element>
|
|
<!-- variable Visibility: default -->
|
|
<element name="TDynHashArrayItem.Prior">
|
|
<short>It points to the previous element in the doubly linked list.</short>
|
|
<descr/>
|
|
<seealso/>
|
|
</element>
|
|
<!-- variable Visibility: default -->
|
|
<element name="TDynHashArrayItem.IsOverflow">
|
|
<short>False if it is the first element of the linked list.</short>
|
|
<descr/>
|
|
<seealso/>
|
|
</element>
|
|
<!-- enumeration type Visibility: default -->
|
|
<element name="TDynHashArrayOption">
|
|
<short>Options for how this class should work.</short>
|
|
<descr/>
|
|
<seealso/>
|
|
</element>
|
|
<!-- enumeration value Visibility: default -->
|
|
<element name="TDynHashArrayOption.dhaoCachingEnabled">
|
|
<short>It will use cached result if available in IndexOfKey</short>
|
|
</element>
|
|
<!-- enumeration value Visibility: default -->
|
|
<element name="TDynHashArrayOption.dhaoCacheContains">
|
|
<short>Turns on a cache for contains operations.</short>
|
|
</element>
|
|
<!-- set type Visibility: default -->
|
|
<element name="TDynHashArrayOptions">
|
|
<short/>
|
|
<descr/>
|
|
<seealso/>
|
|
</element>
|
|
<!-- object Visibility: default -->
|
|
<element name="TDynHashArray">
|
|
<short>Implements set/associative array</short>
|
|
<descr/>
|
|
<errors/>
|
|
<seealso/>
|
|
</element>
|
|
<!-- variable Visibility: private -->
|
|
<element name="TDynHashArray.FItems">
|
|
<short>Array pointing to link lists</short>
|
|
<descr/>
|
|
<seealso/>
|
|
</element>
|
|
<!-- variable Visibility: private -->
|
|
<element name="TDynHashArray.FCount">
|
|
<short>Number of elements stored</short>
|
|
<descr/>
|
|
<seealso/>
|
|
</element>
|
|
<!-- variable Visibility: private -->
|
|
<element name="TDynHashArray.FCapacity">
|
|
<short/>
|
|
<descr/>
|
|
<seealso/>
|
|
</element>
|
|
<!-- variable Visibility: private -->
|
|
<element name="TDynHashArray.FMinCapacity">
|
|
<short>The minimum number of items that will be allocated for an array.</short>
|
|
<descr>The size of the array can be changed anytime. However, even if a size is given by FCapacity is smaller than this minimum number, then this minimum number of items will be allocated. This is done for efficiency and speed.</descr>
|
|
<seealso/>
|
|
</element>
|
|
<!-- variable Visibility: private -->
|
|
<element name="TDynHashArray.FMaxCapacity">
|
|
<short>The size of the array cannot be larger than this number.</short>
|
|
<descr>FCapacity is overridden by this number, if that is larger than this.</descr>
|
|
<seealso/>
|
|
</element>
|
|
<!-- variable Visibility: private -->
|
|
<element name="TDynHashArray.FFirstItem">
|
|
<short/>
|
|
<descr/>
|
|
<seealso/>
|
|
</element>
|
|
<!-- variable Visibility: private -->
|
|
<element name="TDynHashArray.FHashCacheItem">
|
|
<short>It contains the cached key.</short>
|
|
<descr/>
|
|
<seealso/>
|
|
</element>
|
|
<!-- variable Visibility: private -->
|
|
<element name="TDynHashArray.FHashCacheIndex">
|
|
<short>It contains the cached index derived from the key.</short>
|
|
<descr/>
|
|
<seealso/>
|
|
</element>
|
|
<!-- variable Visibility: private -->
|
|
<element name="TDynHashArray.FLowWaterMark">
|
|
<short>The lower element limit for reallocation.</short>
|
|
<descr>The number of elements allocated are halved if the number of elements in the array goes below this number.</descr>
|
|
<seealso/>
|
|
</element>
|
|
<!-- variable Visibility: private -->
|
|
<element name="TDynHashArray.FHighWaterMark">
|
|
<short>The upper element count limit for reallocation.</short>
|
|
<descr>The number of elements allocated are doubled if the number of elements in the array reaches this number.</descr>
|
|
<seealso/>
|
|
</element>
|
|
<!-- variable Visibility: private -->
|
|
<element name="TDynHashArray.FCustomHashFunction">
|
|
<short>The pointer to the user-defined hash function.</short>
|
|
<descr/>
|
|
<seealso/>
|
|
</element>
|
|
<!-- variable Visibility: private -->
|
|
<element name="TDynHashArray.FOnGetKeyForHashItem">
|
|
<short>Optional user-defined function for converting keys.</short>
|
|
<descr/>
|
|
<seealso/>
|
|
</element>
|
|
<!-- variable Visibility: private -->
|
|
<element name="TDynHashArray.FOptions">
|
|
<short/>
|
|
<descr/>
|
|
<seealso/>
|
|
</element>
|
|
<!-- variable Visibility: private -->
|
|
<element name="TDynHashArray.FOwnerHashFunction">
|
|
<short>Optional user-defined hash function which can be SlowAlternativeHashMethod.</short>
|
|
<descr/>
|
|
<seealso/>
|
|
</element>
|
|
<!-- variable Visibility: private -->
|
|
<element name="TDynHashArray.FContainsCache">
|
|
<short/>
|
|
<descr/>
|
|
<seealso/>
|
|
</element>
|
|
<!-- function Visibility: private -->
|
|
<element name="TDynHashArray.NewHashItem">
|
|
<short/>
|
|
<descr/>
|
|
<errors/>
|
|
<seealso/>
|
|
</element>
|
|
<!-- function result Visibility: default -->
|
|
<element name="TDynHashArray.NewHashItem.Result">
|
|
<short/>
|
|
</element>
|
|
<!-- procedure Visibility: private -->
|
|
<element name="TDynHashArray.DisposeHashItem">
|
|
<short/>
|
|
<descr/>
|
|
<errors/>
|
|
<seealso/>
|
|
</element>
|
|
<!-- argument Visibility: default -->
|
|
<element name="TDynHashArray.DisposeHashItem.ADynHashArrayItem">
|
|
<short/>
|
|
</element>
|
|
<!-- procedure Visibility: private -->
|
|
<element name="TDynHashArray.ComputeWaterMarks">
|
|
<short/>
|
|
<descr/>
|
|
<errors/>
|
|
<seealso/>
|
|
</element>
|
|
<!-- procedure Visibility: private -->
|
|
<element name="TDynHashArray.SetCapacity">
|
|
<short>Changes the number of items (pre-)allocated.</short>
|
|
<descr/>
|
|
<errors/>
|
|
<seealso/>
|
|
</element>
|
|
<!-- argument Visibility: default -->
|
|
<element name="TDynHashArray.SetCapacity.NewCapacity">
|
|
<short/>
|
|
</element>
|
|
<!-- procedure Visibility: private -->
|
|
<element name="TDynHashArray.SetCustomHashFunction">
|
|
<short>Specify your own hash function to be used by the class.</short>
|
|
<descr>The hash function has to convert a string into a number in a random fashion.</descr>
|
|
<errors/>
|
|
<seealso/>
|
|
</element>
|
|
<!-- argument Visibility: default -->
|
|
<element name="TDynHashArray.SetCustomHashFunction.AValue">
|
|
<short/>
|
|
</element>
|
|
<!-- procedure Visibility: private -->
|
|
<element name="TDynHashArray.SetOnGetKeyForHashItem">
|
|
<short/>
|
|
<descr/>
|
|
<errors/>
|
|
<seealso/>
|
|
</element>
|
|
<!-- argument Visibility: default -->
|
|
<element name="TDynHashArray.SetOnGetKeyForHashItem.AValue">
|
|
<short/>
|
|
</element>
|
|
<!-- procedure Visibility: private -->
|
|
<element name="TDynHashArray.SetOptions">
|
|
<short/>
|
|
<descr/>
|
|
<errors/>
|
|
<seealso/>
|
|
</element>
|
|
<!-- argument Visibility: default -->
|
|
<element name="TDynHashArray.SetOptions.AValue">
|
|
<short/>
|
|
</element>
|
|
<!-- procedure Visibility: private -->
|
|
<element name="TDynHashArray.SetOwnerHashFunction">
|
|
<short/>
|
|
<descr/>
|
|
<errors/>
|
|
<seealso/>
|
|
</element>
|
|
<!-- argument Visibility: default -->
|
|
<element name="TDynHashArray.SetOwnerHashFunction.AValue">
|
|
<short/>
|
|
</element>
|
|
<!-- procedure Visibility: protected -->
|
|
<element name="TDynHashArray.RebuildItems">
|
|
<short>Rebuilds the internal datastructures.</short>
|
|
<descr>It is called anytime when there is a change that makes it necessary. E.g. hash function changes or because of dynamic reallocation.</descr>
|
|
<errors/>
|
|
<seealso/>
|
|
</element>
|
|
<!-- procedure Visibility: protected -->
|
|
<element name="TDynHashArray.SaveCacheItem">
|
|
<short>Sets the cache.</short>
|
|
<descr>The cache is set as given by the parameters.</descr>
|
|
<errors/>
|
|
<seealso/>
|
|
</element>
|
|
<!-- argument Visibility: default -->
|
|
<element name="TDynHashArray.SaveCacheItem.Item">
|
|
<short/>
|
|
</element>
|
|
<!-- argument Visibility: default -->
|
|
<element name="TDynHashArray.SaveCacheItem.Index">
|
|
<short/>
|
|
</element>
|
|
<!-- constructor Visibility: public -->
|
|
<element name="TDynHashArray.Create">
|
|
<short/>
|
|
<descr/>
|
|
<errors/>
|
|
<seealso/>
|
|
</element>
|
|
<!-- constructor Visibility: public -->
|
|
<element name="TDynHashArray.Create">
|
|
<short/>
|
|
<descr/>
|
|
<errors/>
|
|
<seealso/>
|
|
</element>
|
|
<!-- argument Visibility: default -->
|
|
<element name="TDynHashArray.Create.InitialMinCapacity">
|
|
<short/>
|
|
</element>
|
|
<!-- destructor Visibility: public -->
|
|
<element name="TDynHashArray.Destroy">
|
|
<short/>
|
|
<descr/>
|
|
<errors/>
|
|
<seealso/>
|
|
</element>
|
|
<!-- procedure Visibility: public -->
|
|
<element name="TDynHashArray.Add">
|
|
<short>Adds an item to the set/array.</short>
|
|
<descr><p>An example:</p><code>uses
|
|
{$IFDEF UNIX}{$IFDEF UseCThreads}
|
|
cthreads,
|
|
{$ENDIF}{$ENDIF}
|
|
Classes, dynhasharray,strings;
|
|
|
|
var
|
|
A:TDynHashArray;
|
|
s:pchar;
|
|
begin
|
|
A:=TDynHashArray.Create;
|
|
s:=StrNew ('u');
|
|
A.Add(s);
|
|
if A.Contains(s) then
|
|
writeln('1:it contains s.');
|
|
writeln('1:count:',A.Count);
|
|
A.Clear;
|
|
|
|
if A.Contains(s) then
|
|
writeln('2:it contains s.');
|
|
writeln('2:count:',A.Count);
|
|
ReadLn;
|
|
StrDispose(s); </code></descr>
|
|
<errors/>
|
|
<seealso/>
|
|
</element>
|
|
<!-- argument Visibility: default -->
|
|
<element name="TDynHashArray.Add.Item">
|
|
<short/>
|
|
</element>
|
|
<!-- function Visibility: public -->
|
|
<element name="TDynHashArray.Contains">
|
|
<short>Returns true if the item is in the set.</short>
|
|
<descr><p>An example:</p><code>uses
|
|
{$IFDEF UNIX}{$IFDEF UseCThreads}
|
|
cthreads,
|
|
{$ENDIF}{$ENDIF}
|
|
Classes, dynhasharray,strings;
|
|
|
|
var
|
|
A:TDynHashArray;
|
|
s:pchar;
|
|
begin
|
|
A:=TDynHashArray.Create;
|
|
s:=StrNew ('u');
|
|
A.Add(s);
|
|
if A.Contains(s) then
|
|
writeln('1:it contains s.');
|
|
writeln('1:count:',A.Count);
|
|
A.Clear;
|
|
|
|
if A.Contains(s) then
|
|
writeln('2:it contains s.');
|
|
writeln('2:count:',A.Count);
|
|
ReadLn;
|
|
StrDispose(s); </code>
|
|
</descr>
|
|
<errors/>
|
|
<seealso/>
|
|
</element>
|
|
<!-- function result Visibility: default -->
|
|
<element name="TDynHashArray.Contains.Result">
|
|
<short/>
|
|
</element>
|
|
<!-- argument Visibility: default -->
|
|
<element name="TDynHashArray.Contains.Item">
|
|
<short/>
|
|
</element>
|
|
<!-- function Visibility: public -->
|
|
<element name="TDynHashArray.ContainsKey">
|
|
<short>Returns true if the item is in the set.(through OnGetKeyForHashItem)</short>
|
|
<descr/>
|
|
<errors/>
|
|
<seealso/>
|
|
</element>
|
|
<!-- function result Visibility: default -->
|
|
<element name="TDynHashArray.ContainsKey.Result">
|
|
<short/>
|
|
</element>
|
|
<!-- argument Visibility: default -->
|
|
<element name="TDynHashArray.ContainsKey.Key">
|
|
<short/>
|
|
</element>
|
|
<!-- procedure Visibility: public -->
|
|
<element name="TDynHashArray.Remove">
|
|
<short>Removes an element from the set/hash array</short>
|
|
<descr><p>An example:</p><code>{$mode objfpc}{$H+}
|
|
|
|
uses
|
|
{$IFDEF UNIX}{$IFDEF UseCThreads}
|
|
cthreads,
|
|
{$ENDIF}{$ENDIF}
|
|
Classes, dynhasharray,strings;
|
|
|
|
var
|
|
A:TDynHashArray;
|
|
s:pchar;
|
|
s2:pchar;
|
|
begin
|
|
A:=TDynHashArray.Create;
|
|
s:=StrNew ('u');
|
|
s2:=StrNew ('i');
|
|
A.Add(s);
|
|
A.Add(s2);
|
|
if A.Contains(s2) then
|
|
writeln('1:it contains s2.');
|
|
writeln('1:count:',A.Count);
|
|
A.Remove(s2);
|
|
if A.Contains(s2) then
|
|
writeln('2:it contains s2.');
|
|
writeln('2:count:',A.Count);
|
|
ReadLn;
|
|
StrDispose(s);StrDispose(s2);
|
|
end.
|
|
</code></descr>
|
|
<errors/>
|
|
<seealso/>
|
|
</element>
|
|
<!-- argument Visibility: default -->
|
|
<element name="TDynHashArray.Remove.Item">
|
|
<short/>
|
|
</element>
|
|
<!-- procedure Visibility: public -->
|
|
<element name="TDynHashArray.Clear">
|
|
<short>Removes all elements from the set/hash array</short>
|
|
<descr><p>An example:</p><code>uses
|
|
{$IFDEF UNIX}{$IFDEF UseCThreads}
|
|
cthreads,
|
|
{$ENDIF}{$ENDIF}
|
|
Classes, dynhasharray,strings;
|
|
|
|
var
|
|
A:TDynHashArray;
|
|
s:pchar;
|
|
begin
|
|
A:=TDynHashArray.Create;
|
|
s:=StrNew ('u');
|
|
A.Add(s);
|
|
if A.Contains(s) then
|
|
writeln('1:it contains s.');
|
|
writeln('1:count:',A.Count);
|
|
A.Clear;
|
|
|
|
if A.Contains(s) then
|
|
writeln('2:it contains s.');
|
|
writeln('2:count:',A.Count);
|
|
ReadLn;
|
|
StrDispose(s); </code></descr>
|
|
<errors/>
|
|
<seealso/>
|
|
</element>
|
|
<!-- procedure Visibility: public -->
|
|
<element name="TDynHashArray.ClearCache">
|
|
<short>Clears the FContainsCache cache</short>
|
|
<descr/>
|
|
<errors/>
|
|
<seealso/>
|
|
</element>
|
|
<!-- function Visibility: public -->
|
|
<element name="TDynHashArray.First">
|
|
<short>Returns the first item or nil</short>
|
|
<descr/>
|
|
<errors/>
|
|
<seealso/>
|
|
</element>
|
|
<!-- function result Visibility: default -->
|
|
<element name="TDynHashArray.First.Result">
|
|
<short/>
|
|
</element>
|
|
<!-- property Visibility: public -->
|
|
<element name="TDynHashArray.Count">
|
|
<short>Number of elements stored in the set/array.</short>
|
|
<descr><p>An example:</p><code>uses
|
|
{$IFDEF UNIX}{$IFDEF UseCThreads}
|
|
cthreads,
|
|
{$ENDIF}{$ENDIF}
|
|
Classes, dynhasharray,strings;
|
|
|
|
var
|
|
A:TDynHashArray;
|
|
s:pchar;
|
|
begin
|
|
A:=TDynHashArray.Create;
|
|
s:=StrNew ('u');
|
|
A.Add(s);
|
|
if A.Contains(s) then
|
|
writeln('1:it contains s.');
|
|
writeln('1:count:',A.Count);
|
|
A.Clear;
|
|
|
|
if A.Contains(s) then
|
|
writeln('2:it contains s.');
|
|
writeln('2:count:',A.Count);
|
|
ReadLn;
|
|
StrDispose(s); </code></descr>
|
|
<seealso/>
|
|
</element>
|
|
<!-- function Visibility: public -->
|
|
<element name="TDynHashArray.IndexOf">
|
|
<short>Returns calculated index from Item through OnGetKeyForHashItem</short>
|
|
<descr/>
|
|
<errors/>
|
|
<seealso/>
|
|
</element>
|
|
<!-- function result Visibility: default -->
|
|
<element name="TDynHashArray.IndexOf.Result"/>
|
|
<!-- argument Visibility: default -->
|
|
<element name="TDynHashArray.IndexOf.AnItem">
|
|
<short/>
|
|
</element>
|
|
<!-- function Visibility: public -->
|
|
<element name="TDynHashArray.IndexOfKey">
|
|
<short>Returns calculated index from Item</short>
|
|
<descr>It uses user-defined hash functions or built-in algorithm</descr>
|
|
<errors/>
|
|
<seealso/>
|
|
</element>
|
|
<!-- function result Visibility: default -->
|
|
<element name="TDynHashArray.IndexOfKey.Result">
|
|
<short/>
|
|
</element>
|
|
<!-- argument Visibility: default -->
|
|
<element name="TDynHashArray.IndexOfKey.Key">
|
|
<short/>
|
|
</element>
|
|
<!-- function Visibility: public -->
|
|
<element name="TDynHashArray.FindHashItem">
|
|
<short>Finds an item as PDynHashArrayItem among all items</short>
|
|
<descr/>
|
|
<errors/>
|
|
<seealso/>
|
|
</element>
|
|
<!-- function result Visibility: default -->
|
|
<element name="TDynHashArray.FindHashItem.Result">
|
|
<short/>
|
|
</element>
|
|
<!-- argument Visibility: default -->
|
|
<element name="TDynHashArray.FindHashItem.Item">
|
|
<short/>
|
|
</element>
|
|
<!-- function Visibility: public -->
|
|
<element name="TDynHashArray.FindHashItemWithKey">
|
|
<short>Finds an item as PDynHashArrayItem among all items (through OnGetKeyForHashItem)</short>
|
|
<descr/>
|
|
<errors/>
|
|
<seealso/>
|
|
</element>
|
|
<!-- function result Visibility: default -->
|
|
<element name="TDynHashArray.FindHashItemWithKey.Result">
|
|
<short/>
|
|
</element>
|
|
<!-- argument Visibility: default -->
|
|
<element name="TDynHashArray.FindHashItemWithKey.Key">
|
|
<short/>
|
|
</element>
|
|
<!-- function Visibility: public -->
|
|
<element name="TDynHashArray.FindItemWithKey">
|
|
<short>Finds an item among all items (through OnGetKeyForHashItem)</short>
|
|
<descr/>
|
|
<errors/>
|
|
<seealso/>
|
|
</element>
|
|
<!-- function result Visibility: default -->
|
|
<element name="TDynHashArray.FindItemWithKey.Result">
|
|
<short/>
|
|
</element>
|
|
<!-- argument Visibility: default -->
|
|
<element name="TDynHashArray.FindItemWithKey.Key">
|
|
<short/>
|
|
</element>
|
|
<!-- function Visibility: public -->
|
|
<element name="TDynHashArray.GetHashItem">
|
|
<short>Gets a link list from the "main" array FItems by index</short>
|
|
<descr>So it returns a link list which can be processed.</descr>
|
|
<errors/>
|
|
<seealso/>
|
|
</element>
|
|
<!-- function result Visibility: default -->
|
|
<element name="TDynHashArray.GetHashItem.Result">
|
|
<short/>
|
|
</element>
|
|
<!-- argument Visibility: default -->
|
|
<element name="TDynHashArray.GetHashItem.HashIndex">
|
|
<short/>
|
|
</element>
|
|
<!-- procedure Visibility: public -->
|
|
<element name="TDynHashArray.Delete">
|
|
<short>Deletes a PDynHashArrayItem from link list</short>
|
|
<descr/>
|
|
<errors/>
|
|
<seealso/>
|
|
</element>
|
|
<!-- argument Visibility: default -->
|
|
<element name="TDynHashArray.Delete.ADynHashArrayItem">
|
|
<short/>
|
|
</element>
|
|
<!-- procedure Visibility: public -->
|
|
<element name="TDynHashArray.AssignTo">
|
|
<short>Copies all items into a given TList</short>
|
|
<descr/>
|
|
<errors/>
|
|
<seealso/>
|
|
</element>
|
|
<!-- argument Visibility: default -->
|
|
<element name="TDynHashArray.AssignTo.List">
|
|
<short/>
|
|
</element>
|
|
<!-- function Visibility: public -->
|
|
<element name="TDynHashArray.SlowAlternativeHashMethod">
|
|
<short>Another hash function that can be used.</short>
|
|
<descr/>
|
|
<errors/>
|
|
<seealso/>
|
|
</element>
|
|
<!-- function result Visibility: default -->
|
|
<element name="TDynHashArray.SlowAlternativeHashMethod.Result">
|
|
<short/>
|
|
</element>
|
|
<!-- argument Visibility: default -->
|
|
<element name="TDynHashArray.SlowAlternativeHashMethod.Sender">
|
|
<short/>
|
|
</element>
|
|
<!-- argument Visibility: default -->
|
|
<element name="TDynHashArray.SlowAlternativeHashMethod.Item">
|
|
<short/>
|
|
</element>
|
|
<!-- function Visibility: public -->
|
|
<element name="TDynHashArray.ConsistencyCheck">
|
|
<short>Check if data in TDynHashArray are ok</short>
|
|
<descr>Returns a number indicating the nature of inconsistency. 0
|
|
means OK.
|
|
</descr>
|
|
<errors></errors>
|
|
<seealso></seealso>
|
|
</element>
|
|
<!-- function result Visibility: default -->
|
|
<element name="TDynHashArray.ConsistencyCheck.Result">
|
|
<short/>
|
|
</element>
|
|
<!-- procedure Visibility: public -->
|
|
<element name="TDynHashArray.WriteDebugReport">
|
|
<short>Prints out essential data to aid debugging TDynHashArray.</short>
|
|
<descr/>
|
|
<errors/>
|
|
<seealso/>
|
|
</element>
|
|
<!-- property Visibility: public -->
|
|
<element name="TDynHashArray.FirstHashItem">
|
|
<short/>
|
|
<descr/>
|
|
<seealso/>
|
|
</element>
|
|
<!-- property Visibility: public -->
|
|
<element name="TDynHashArray.MinCapacity">
|
|
<short>The minimum number of items that will be allocated for an array.</short>
|
|
<descr>The size of the array can be changed anytime. However, even if a size is given by FCapacity is smaller than this minimum number, then this minimum number of items will be allocated. This is done for efficiency and speed.</descr>
|
|
<seealso/>
|
|
</element>
|
|
<!-- property Visibility: public -->
|
|
<element name="TDynHashArray.MaxCapacity">
|
|
<short>The size of the array cannot be larger than this number.</short>
|
|
<descr>FCapacity is overridden by this number, if that is larger than this.</descr>
|
|
<seealso/>
|
|
</element>
|
|
<!-- property Visibility: public -->
|
|
<element name="TDynHashArray.Capacity">
|
|
<short>Space is allocated for this number of items.</short>
|
|
<descr/>
|
|
<seealso/>
|
|
</element>
|
|
<!-- property Visibility: public -->
|
|
<element name="TDynHashArray.CustomHashFunction">
|
|
<short>The pointer to the user-defined hash function.</short>
|
|
<descr/>
|
|
<seealso/>
|
|
</element>
|
|
<!-- property Visibility: public -->
|
|
<element name="TDynHashArray.OwnerHashFunction">
|
|
<short>THe pointer to the user-defined hash function.</short>
|
|
<descr/>
|
|
<seealso/>
|
|
</element>
|
|
<!-- property Visibility: public -->
|
|
<element name="TDynHashArray.OnGetKeyForHashItem">
|
|
<short>User-defined function to obtain a key from an item</short>
|
|
<descr>If this function is specified,then it is possible to use this class as
|
|
an associative array. Otherwise, it implements a set.</descr>
|
|
<seealso/>
|
|
</element>
|
|
<!-- property Visibility: public -->
|
|
<element name="TDynHashArray.Options">
|
|
<short/>
|
|
<descr/>
|
|
<seealso/>
|
|
</element>
|
|
<!-- object Visibility: default -->
|
|
<element name="TDynHashArrayItemMemManager">
|
|
<short/>
|
|
<descr/>
|
|
<errors/>
|
|
<seealso/>
|
|
</element>
|
|
<!-- variable Visibility: private -->
|
|
<element name="TDynHashArrayItemMemManager.FFirstFree">
|
|
<short/>
|
|
<descr/>
|
|
<seealso/>
|
|
</element>
|
|
<!-- variable Visibility: private -->
|
|
<element name="TDynHashArrayItemMemManager.FFreeCount">
|
|
<short/>
|
|
<descr/>
|
|
<seealso/>
|
|
</element>
|
|
<!-- variable Visibility: private -->
|
|
<element name="TDynHashArrayItemMemManager.FCount">
|
|
<short/>
|
|
<descr/>
|
|
<seealso/>
|
|
</element>
|
|
<!-- variable Visibility: private -->
|
|
<element name="TDynHashArrayItemMemManager.FMinFree">
|
|
<short/>
|
|
<descr/>
|
|
<seealso/>
|
|
</element>
|
|
<!-- variable Visibility: private -->
|
|
<element name="TDynHashArrayItemMemManager.FMaxFreeRatio">
|
|
<short/>
|
|
<descr/>
|
|
<seealso/>
|
|
</element>
|
|
<!-- procedure Visibility: private -->
|
|
<element name="TDynHashArrayItemMemManager.SetMaxFreeRatio">
|
|
<short/>
|
|
<descr/>
|
|
<errors/>
|
|
<seealso/>
|
|
</element>
|
|
<!-- argument Visibility: default -->
|
|
<element name="TDynHashArrayItemMemManager.SetMaxFreeRatio.NewValue">
|
|
<short/>
|
|
</element>
|
|
<!-- procedure Visibility: private -->
|
|
<element name="TDynHashArrayItemMemManager.SetMinFree">
|
|
<short/>
|
|
<descr/>
|
|
<errors/>
|
|
<seealso/>
|
|
</element>
|
|
<!-- argument Visibility: default -->
|
|
<element name="TDynHashArrayItemMemManager.SetMinFree.NewValue">
|
|
<short/>
|
|
</element>
|
|
<!-- procedure Visibility: private -->
|
|
<element name="TDynHashArrayItemMemManager.DisposeFirstFreeItem">
|
|
<short/>
|
|
<descr/>
|
|
<errors/>
|
|
<seealso/>
|
|
</element>
|
|
<!-- procedure Visibility: public -->
|
|
<element name="TDynHashArrayItemMemManager.DisposeItem">
|
|
<short/>
|
|
<descr/>
|
|
<errors/>
|
|
<seealso/>
|
|
</element>
|
|
<!-- argument Visibility: default -->
|
|
<element name="TDynHashArrayItemMemManager.DisposeItem.ADynHashArrayItem">
|
|
<short/>
|
|
</element>
|
|
<!-- function Visibility: public -->
|
|
<element name="TDynHashArrayItemMemManager.NewItem">
|
|
<short/>
|
|
<descr/>
|
|
<errors/>
|
|
<seealso/>
|
|
</element>
|
|
<!-- function result Visibility: default -->
|
|
<element name="TDynHashArrayItemMemManager.NewItem.Result">
|
|
<short/>
|
|
</element>
|
|
<!-- property Visibility: public -->
|
|
<element name="TDynHashArrayItemMemManager.MinimumFreeCount">
|
|
<short/>
|
|
<descr/>
|
|
<seealso/>
|
|
</element>
|
|
<!-- property Visibility: public -->
|
|
<element name="TDynHashArrayItemMemManager.MaximumFreeRatio">
|
|
<short/>
|
|
<descr/>
|
|
<seealso/>
|
|
</element>
|
|
<!-- property Visibility: public -->
|
|
<element name="TDynHashArrayItemMemManager.Count">
|
|
<short/>
|
|
<descr/>
|
|
<seealso/>
|
|
</element>
|
|
<!-- procedure Visibility: public -->
|
|
<element name="TDynHashArrayItemMemManager.Clear">
|
|
<short/>
|
|
<descr/>
|
|
<errors/>
|
|
<seealso/>
|
|
</element>
|
|
<!-- constructor Visibility: public -->
|
|
<element name="TDynHashArrayItemMemManager.Create">
|
|
<short/>
|
|
<descr/>
|
|
<errors/>
|
|
<seealso/>
|
|
</element>
|
|
<!-- destructor Visibility: public -->
|
|
<element name="TDynHashArrayItemMemManager.Destroy">
|
|
<short/>
|
|
<descr/>
|
|
<errors/>
|
|
<seealso/>
|
|
</element>
|
|
<!-- function Visibility: public -->
|
|
<element name="TDynHashArrayItemMemManager.ConsistencyCheck">
|
|
<short/>
|
|
<descr/>
|
|
<errors/>
|
|
<seealso/>
|
|
</element>
|
|
<!-- function result Visibility: default -->
|
|
<element name="TDynHashArrayItemMemManager.ConsistencyCheck.Result">
|
|
<short/>
|
|
</element>
|
|
<!-- procedure Visibility: public -->
|
|
<element name="TDynHashArrayItemMemManager.WriteDebugReport">
|
|
<short>Prints out essential data to aid debugging DynHashArrayItemMemManager.</short>
|
|
<descr/>
|
|
<errors/>
|
|
<seealso/>
|
|
</element>
|
|
<!-- object Visibility: default -->
|
|
<element name="EDynHashArrayException">
|
|
<short>Raised if index is invalid in IndexOfKey.</short>
|
|
<descr>The index can be invalid if user-defined/custom function are faulty.</descr>
|
|
<errors/>
|
|
<seealso/>
|
|
</element>
|
|
<!-- constant Visibility: default -->
|
|
<element name="ItemMemManager">
|
|
<short>A small memory manager</short>
|
|
<descr/>
|
|
<seealso/>
|
|
</element>
|
|
</module>
|
|
<!-- DynHashArray -->
|
|
</package>
|
|
</fpdoc-descriptions>
|
|
|