Class Poco::LRUStrategy
Author: Applied Informatics Software Engineering GmbH and Contributors
Date: 2009-11-24

# Poco

# template < class TKey, class TValue >

# class LRUStrategy

Library: Foundation
Package: Cache
Header: Poco/LRUStrategy.h

## Description

An LRUStrategy implements least recently used cache replacement.

## Inheritance

Direct Base Classes: AbstractStrategy < TKey, TValue >

All Base Classes: AbstractStrategy < TKey, TValue >

## Member Summary

Member Functions: onAdd, onClear, onGet, onIsValid, onRemove, onReplace

## Types

### ConstIndexIterator

typedef typename KeyIndex::const_iterator ConstIndexIterator;

### ConstIterator

typedef typename Keys::const_iterator ConstIterator;

### IndexIterator

typedef typename KeyIndex::iterator IndexIterator;

### Iterator

typedef typename Keys::iterator Iterator;

### KeyIndex

typedef std::map < TKey, Iterator > KeyIndex;

### Keys

typedef std::list < TKey > Keys;

## Constructors

### LRUStrategy

LRUStrategy(
std::size_t size
);

## Destructor

### ~LRUStrategy

~LRUStrategy();

## Member Functions

### onAdd

void onAdd(
const void * param120,
const KeyValueArgs < TKey,
TValue > & args
);

### onClear

void onClear(
const void * param123,
const EventArgs & args
);

### onGet

void onGet(
const void * param122,
const TKey & key
);

### onIsValid

void onIsValid(
const void * param124,
ValidArgs < TKey > & args
);

### onRemove

void onRemove(
const void * param121,
const TKey & key
);

### onReplace

void onReplace(
const void * param125,
std::set < TKey > & elemsToRemove
);

## Variables

### _keyIndex

KeyIndex _keyIndex;

For faster access to _keys

### _keys

Keys _keys;

### _size

std::size_t _size;

Number of keys the cache can store.