|
| | 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().