|
| Hash_Cache (size_t(*hash_fct)(const Key &), const size_t &__hash_size, const size_t &__cache_size) throw (std::exception, std::bad_alloc) |
|
Cache_Entry * | insert (const Key &key, const Data &data) |
|
Cache_Entry * | search (const Key &key) |
|
Cache_Entry * | search_next (Cache_Entry *cache_entry) |
|
void | lock_entry (Cache_Entry *cache_entry) throw (std::exception, std::runtime_error, std::domain_error) |
|
void | unlock_entry (Cache_Entry *cache_entry) throw (std::exception, std::runtime_error) |
|
void | remove (Cache_Entry *cache_entry) throw (std::exception, std::runtime_error, std::domain_error) |
|
void | expand (const size_t &plus_size) throw (std::exception, std::range_error, std::bad_alloc) |
|
const size_t & | capacity () const |
| Retorna el tamaño de cache.
|
|
const size_t & | size () const |
| Retorna en número de datos que están contenidos en el cache.
|
|
const size_t & | get_num_locked () const |
|
const size_t & | get_num_busy_slots () const |
|
const size_t & | get_hash_capacity () const |
| Retorna el tamaño de la tabla hash.
|
|
template<typename Key, typename Data, class Cmp = Aleph::equal_to<Key>>
class Aleph::Hash_Cache< Key, Data, Cmp >
Cache de datos mapeados a una clave.
Hash_Cache<Key,Data> implanta un cache instrumentado mediante una tabla hash que asocia claves de un conjunto dominio Key a datos de un conjunto rango Data.
Los métodos principales de Hash_Cache operan según un tipo denominado Cache_Entry, el cual es la unidad que contiene el par (clave,dato).
- Parámetros
-
Key | tipo de clave de indización. |
Data | tipo de dato asociado a la clave. |
Cmp | clase de comparación entre las claves. |
- Ver también
- Cache_Entry
template<typename Key , typename Data , class Cmp = Aleph::equal_to<Key>>
Inserta un nuevo par (key,data) en el cache.
insert(key,data) inserta en el cache el par (key,data). Si el cache está lleno, entonces el elementos más antiguamente accedido es eliminado y substituido por el par de inserción.
Después de la inserción, el par (key,data) deviene el elemento más recientemente accedido.
- Parámetros
-
[in] | key | clave de indización. |
[in] | data | dato asociado a la clave. |
- Devuelve
- un puntero a un Objeto de tipo [[Cache_Entry]] contentivo del par (key,data) recién insertado.
- Excepciones
-
underflow_error | si el cache está lleno y todas sus entradas trancadas. |
Hace referencia a Aleph::Hash_Cache< Key, Data, Cmp >::Cache_Entry::get_data() y Aleph::Dlink::insert().