class OffHeapCache extends AbstractSearchableCache<K, V> {

  protected void doEviction() {
    final Set<Entry<K, Pointer>> entries = pointerMap.entrySet();
    for (final Entry<K, Pointer> entry : entries) {
      if (entry.getValue().isExpired()) {
        final V value = invalidate(entry.getKey());
        evictionListener.onEviction(entry.getKey(), value);
        stats.incrementEvictionCount();
      }
    }
  }

  public  OffHeapCache(final String name, final CacheLoader<K, V> cacheLoader,
      final EvictionListener<K, V> evictionListener,
      final IndexHandler<K, V> indexHandler, final OffHeapByteBufferStore byteBufferStore,
      final Serializer<V> serializer,
      final long bufferCleanerPeriod, final float bufferCleanerThreshold,
      final int concurrencyLevel,
      final long evictionPeriod);

}