/*
 * Copyright 2004-2019 H2 Group. Multiple-Licensed under the MPL 2.0,
 * and the EPL 1.0 (http://h2database.com/html/license.html).
 * Initial Developer: H2 Group
 */
package org.h2.util;

import java.util.ArrayList;

The cache keeps frequently used objects in the main memory.
/** * The cache keeps frequently used objects in the main memory. */
public interface Cache {
Get all objects in the cache that have been changed.
Returns:the list of objects
/** * Get all objects in the cache that have been changed. * * @return the list of objects */
ArrayList<CacheObject> getAllChanged();
Clear the cache.
/** * Clear the cache. */
void clear();
Get an element in the cache if it is available. This will move the item to the front of the list.
Params:
  • pos – the unique key of the element
Returns:the element or null
/** * Get an element in the cache if it is available. * This will move the item to the front of the list. * * @param pos the unique key of the element * @return the element or null */
CacheObject get(int pos);
Add an element to the cache. Other items may fall out of the cache because of this. It is not allowed to add the same record twice.
Params:
  • r – the object
/** * Add an element to the cache. Other items may fall out of the cache * because of this. It is not allowed to add the same record twice. * * @param r the object */
void put(CacheObject r);
Update an element in the cache. This will move the item to the front of the list.
Params:
  • pos – the unique key of the element
  • record – the element
Returns:the element
/** * Update an element in the cache. * This will move the item to the front of the list. * * @param pos the unique key of the element * @param record the element * @return the element */
CacheObject update(int pos, CacheObject record);
Remove an object from the cache.
Params:
  • pos – the unique key of the element
Returns:true if the key was in the cache
/** * Remove an object from the cache. * * @param pos the unique key of the element * @return true if the key was in the cache */
boolean remove(int pos);
Get an element from the cache if it is available. This will not move the item to the front of the list.
Params:
  • pos – the unique key of the element
Returns:the element or null
/** * Get an element from the cache if it is available. * This will not move the item to the front of the list. * * @param pos the unique key of the element * @return the element or null */
CacheObject find(int pos);
Set the maximum memory to be used by this cache.
Params:
  • size – the maximum size in KB
/** * Set the maximum memory to be used by this cache. * * @param size the maximum size in KB */
void setMaxMemory(int size);
Get the maximum memory to be used.
Returns:the maximum size in KB
/** * Get the maximum memory to be used. * * @return the maximum size in KB */
int getMaxMemory();
Get the used size in KB.
Returns:the current size in KB
/** * Get the used size in KB. * * @return the current size in KB */
int getMemory(); }