| | |
| | | /** The mapping between backend+ID and their corresponding entries. */ |
| | | private ConcurrentMap<String, ConcurrentMap<Long, Reference<CacheEntry>>> idMap; |
| | | |
| | | /** |
| | | * The reference queue that will be used to notify us whenever a soft |
| | | * reference is freed. |
| | | */ |
| | | /** The reference queue that will be used to notify us whenever a soft reference is freed. */ |
| | | private ReferenceQueue<CacheEntry> referenceQueue; |
| | | |
| | | /** Currently registered configuration object. */ |
| | |
| | | private Thread cleanerThread; |
| | | private volatile boolean shutdown; |
| | | |
| | | |
| | | |
| | | /** |
| | | * Creates a new instance of this soft reference entry cache. All |
| | | * initialization should be performed in the <CODE>initializeEntryCache</CODE> |
| | |
| | | referenceQueue = new ReferenceQueue<>(); |
| | | } |
| | | |
| | | /** {@inheritDoc} */ |
| | | @Override |
| | | public void initializeEntryCache( |
| | | SoftReferenceEntryCacheCfg configuration |
| | |
| | | } |
| | | } |
| | | |
| | | /** {@inheritDoc} */ |
| | | @Override |
| | | public synchronized void finalizeEntryCache() |
| | | { |
| | |
| | | } |
| | | } |
| | | |
| | | /** {@inheritDoc} */ |
| | | @Override |
| | | public boolean containsEntry(DN entryDN) |
| | | { |
| | | return entryDN != null && dnMap.containsKey(entryDN); |
| | | } |
| | | |
| | | /** {@inheritDoc} */ |
| | | @Override |
| | | public Entry getEntry(DN entryDN) |
| | | { |
| | |
| | | return cacheEntry.getEntry(); |
| | | } |
| | | |
| | | /** {@inheritDoc} */ |
| | | @Override |
| | | public long getEntryID(DN entryDN) |
| | | { |
| | |
| | | return -1; |
| | | } |
| | | |
| | | /** {@inheritDoc} */ |
| | | @Override |
| | | public DN getEntryDN(String backendID, long entryID) |
| | | { |
| | |
| | | return null; |
| | | } |
| | | |
| | | /** {@inheritDoc} */ |
| | | @Override |
| | | public void putEntry(Entry entry, String backendID, long entryID) |
| | | { |
| | |
| | | } |
| | | } |
| | | |
| | | /** {@inheritDoc} */ |
| | | @Override |
| | | public boolean putEntryIfAbsent(Entry entry, String backendID, long entryID) |
| | | { |
| | |
| | | return false; |
| | | } |
| | | |
| | | |
| | | // Create the cache entry based on the provided information. |
| | | CacheEntry cacheEntry = new CacheEntry(entry, backendID, entryID); |
| | | Reference<CacheEntry> ref = new SoftReference<>(cacheEntry, referenceQueue); |
| | |
| | | return true; |
| | | } |
| | | |
| | | /** {@inheritDoc} */ |
| | | @Override |
| | | public void removeEntry(DN entryDN) |
| | | { |
| | |
| | | } |
| | | } |
| | | |
| | | /** {@inheritDoc} */ |
| | | @Override |
| | | public void clear() |
| | | { |
| | |
| | | idMap.clear(); |
| | | } |
| | | |
| | | /** {@inheritDoc} */ |
| | | @Override |
| | | public void clearBackend(String backendID) |
| | | { |
| | |
| | | } |
| | | } |
| | | |
| | | /** {@inheritDoc} */ |
| | | @Override |
| | | public void clearSubtree(DN baseDN) |
| | | { |
| | |
| | | } |
| | | } |
| | | |
| | | /** {@inheritDoc} */ |
| | | @Override |
| | | public void handleLowMemory() |
| | | { |
| | |
| | | // FIXME -- Do we need to do anything at all here? |
| | | } |
| | | |
| | | /** {@inheritDoc} */ |
| | | @Override |
| | | public boolean isConfigurationAcceptable(EntryCacheCfg configuration, |
| | | List<LocalizableMessage> unacceptableReasons) |
| | |
| | | return isConfigurationChangeAcceptable(config, unacceptableReasons); |
| | | } |
| | | |
| | | /** {@inheritDoc} */ |
| | | @Override |
| | | public boolean isConfigurationChangeAcceptable( |
| | | SoftReferenceEntryCacheCfg configuration, |
| | |
| | | return errorHandler.getIsAcceptable(); |
| | | } |
| | | |
| | | /** {@inheritDoc} */ |
| | | @Override |
| | | public ConfigChangeResult applyConfigurationChange(SoftReferenceEntryCacheCfg configuration) |
| | | { |
| | |
| | | return changeResult; |
| | | } |
| | | |
| | | |
| | | |
| | | /** |
| | | * Parses the provided configuration and configure the entry cache. |
| | | * |
| | |
| | | return Long.valueOf(dnMap.size()); |
| | | } |
| | | |
| | | /** {@inheritDoc} */ |
| | | @Override |
| | | public String toVerboseString() |
| | | { |