TINMAN 3D / REALTIME TERRAIN
Software Development Kit - User Manual

interface ICacheBase in Tinman.Core.Caching

Base interface for cache-like data structures.

interface ICacheBase with <TId>  
  base of ICache
  SimpleCache

Remarks

The following terms are used by this interface:

An ICacheBase object is responsible for the following tasks: Client code can use the cache page index values for storing additional data per cache page.

Attributes

Capacity

The capacity of this cache.

property Capacity { get }
type int32
value [>0] The maximum number of entries this cache can hold.

InvalidId

The page ID value that represents non-existent mappings.

property InvalidId { get }
type TId
value The invalid page ID value.

Oldest

Returns the index of the oldest cache page.

property Oldest { get }
type int32
value [-1..Capacity-1] Index of the least-recently used cache page or -1 if all pages are unused.

Methods

EvictAll

Evicts all pages from the cache.

method EvictAll ()

EvictId

Evicts the given page from the cache.

method EvictId (TId pageId)
params pageId The cache page ID.

Remarks:

Requesting the given page later will cause a cache miss.

EvictIndex

Evicts the given page from the cache.

method EvictIndex (int32 pageIndex)
params pageIndex [0..Capacity-1] The cache page index.

Remarks:

Requesting the given page later will cause a cache miss.

Fetch

Fetches a page from the cache, loading it if necessary.

method Fetch (TId pageId)
type int32
params pageId The page ID.
returns
  • [>=0]:
    The page is present in the cache, the return value is its index.
  • [&lt;=-1]:
    The page is not present in the cache and shall be loaded into the cache using the page index given by -1-value, where value is the value that is returned by this method.

GetId

Returns the page ID of the given page.

method GetId (int32 pageIndex)
type TId
params pageIndex [0..Capacity-1] The page index.
returns The page ID.

Remarks:

The state of the cache is not modified by this method.

GetIndex

Returns the cache page index of the given page.

method GetIndex (TId pageId, bool hitPage = false)
type int32
params pageId The page ID.
  hitPage Update state of the cache by hitting the page if it exists?
returns [>=-1] The cache page index or -1.

Remarks:

The state of the cache is not modified by this method if hitPage is false.

Use

The given cache page has been used.

method Use (int32 pageIndex)
params pageIndex [0..Capacity-1] The page index.

Remarks:

Use this method to avoid specific pages to get evicted from the cache too soon.