TIncrementalCacheTimer

From Ultibo.org
Revision as of 04:57, 17 May 2018 by Ultibo (Talk | contribs) (Created page with "Return to Unit Filesystem __TOC__ === Description === ---- ''To be documented'' === Class definitions === ---- <div class="toccolours mw-collapsible...")

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Return to Unit Filesystem


Description


To be documented

Class definitions



TIncrementalCacheTimer = class(TObject)

constructor Create(ACache:TIncrementalCache);  
destructor Destroy; override;  
protected
FCache:TIncrementalCache;  
 
FLock:TMutexHandle;  
FInterval:LongWord;  
FCheckTimer:TTimerHandle;  
FProcessSemaphore:TSemaphoreHandle;  
 
FFirst:PCacheTimerItem;  
FLast:PCacheTimerItem;  
 
function AcquireLock:Boolean;  
function ReleaseLock:Boolean;  
 
function Dequeue(AMax:Integer):TCachePage;  
 
function FirstKey:Integer;  
function InsertKey(APage:TCachePage; AKey:Integer):Boolean;  
function DeleteKey(APage:TCachePage):Boolean;  
function DecrementKey:Integer;  
public
function StartTimer(AInterval:LongWord):Boolean;  
function StopTimer:Boolean;  
 
function CheckTimer:Boolean;  
function ProcessTimer:Boolean;  
 
function SchedulePage(APage:TCachePage; ATimeout:LongWord):Boolean;  
function UnschedulePage(APage:TCachePage):Boolean;  


Function declarations



constructor TIncrementalCacheTimer.Create(ACache:TIncrementalCache);
Description: To be documented
Note None documented


destructor TIncrementalCacheTimer.Destroy;
Description: To be documented
Note None documented


function TIncrementalCacheTimer.AcquireLock:Boolean;
Description: To be documented
Note None documented


function TIncrementalCacheTimer.ReleaseLock:Boolean;
Description: To be documented
Note None documented


function TIncrementalCacheTimer.Dequeue(AMax:Integer):TCachePage;
Description: Get and remove the first page from the timer list if the key is less than or equal to Max
Max The maximum value of the key for the page to be dequeued
Return Dequeued Page or nil on non ready or failure


function TIncrementalCacheTimer.FirstKey:Integer;
Description: Get the first Key value from the timer list
Return First Key value from timer list or CACHE_TIMER_KEY_NONE on failure


function TIncrementalCacheTimer.InsertKey(APage:TCachePage; AKey:Integer):Boolean;
Description: Insert the supplied page in the timer list in delta ascending order based on Key
Page The page to be inserted
Key The key to order the insertion on
Return True if completed or False on failure


function TIncrementalCacheTimer.DeleteKey(APage:TCachePage):Boolean;
Description: Delete the supplied page from the timer list
Page The page to be deleted
Return True if completed or False on failure


function TIncrementalCacheTimer.DecrementKey:Integer;
Description: Decrement the first Key value in the Timer list
Return First Key value in timer list after decrement or CACHE_TIMER_KEY_NONE on failure


function TIncrementalCacheTimer.StartTimer(AInterval:LongWord):Boolean;
Description: To be documented
Note None documented


function TIncrementalCacheTimer.StopTimer:Boolean;
Description: To be documented
Note None documented


function TIncrementalCacheTimer.CheckTimer:Boolean;
Description: To be documented
Note None documented


function TIncrementalCacheTimer.ProcessTimer:Boolean;
Description: To be documented
Note None documented


function TIncrementalCacheTimer.SchedulePage(APage:TCachePage; ATimeout:LongWord):Boolean;
Description: To be documented
Note None documented


function TIncrementalCacheTimer.UnschedulePage(APage:TCachePage):Boolean;
Description: To be documented
Note None documented


Return to Unit Reference