| [Overview][Resource strings][Types][Classes][Index] | 
[Properties (by Name)] [Methods (by Name)] [Events (by Name)]
Cache class
Source position: cachecls.pp line 63
type TCache = class  | 
||
public  | 
||
constructor Create();  | 
  | 
Create a new cache class.  | 
destructor Destroy; override;  | 
  | 
Free the TCache class from memory  | 
function Add();  | 
  | 
Add a data element to the list.  | 
function AddNew();  | 
  | 
Add a new item to the list.  | 
function FindSlot();  | 
  | 
Find data pointer in the list  | 
function IndexOf();  | 
  | 
Return index of a data pointer in the list.  | 
procedure Remove();  | 
  | 
Remove a data item from the list.  | 
property Data []: Pointer; [rw]  | 
  | 
Indexed access to data items  | 
property MRUSlot: PCacheSlot; [rw]  | 
  | 
Most recent item slot.  | 
property LRUSlot: PCacheSlot; [r]  | 
  | 
Last used item  | 
  | 
Number of slots in the list  | 
|
property Slots []: PCacheSlot; [r]  | 
  | 
Indexed array to the slots  | 
property OnIsDataEqual: TOnIsDataEqual; [rw]  | 
  | 
Event to compare 2 items.  | 
property OnFreeSlot: TOnFreeSlot; [rw]  | 
  | 
Event called when a slot is freed  | 
end;  | 
  | 
Cache class  | 
|
| | | ||
TObject  | 
TCache implements a cache class: it is a list-like class, but which uses a counting mechanism, and keeps a Most-Recent-Used list; this list represents the 'cache'. The list is internally kept as a doubly-linked list.
The Data property offers indexed access to the array of items. When accessing the array through this property, the MRUSlot property is updated.