public interface BaseCache<K,V> extends AutoCloseable
Cache
and CheckedCache
.Modifier and Type | Method and Description |
---|---|
void |
evict(K key)
Evict an entry from the cache.
|
CacheManager |
getManager() |
void |
put(K key,
V value)
Puts a new entry into the Cache, replacing any existing one.
|
close
void evict(K key)
Use CacheManager.evictAll()
to evict all entries of the entire cache.
void put(@Nonnull K key, @Nonnull V value)
Normally, you often never need to call this method, as in regular usage
scenarios a cache API client just invokes Cache.get(Object)
(or CheckedCache.get(Object)
,
which then internally (may) use the CacheFunction
(or CheckedCacheFunction
) - without you
ever having had to explicitly put something into the Cache.
This method is ONLY (!) intended for "optimizations". It is useful if the code
using a cache already has a key and value (e.g. following an external update
notification event kind of thing) and wants to "save time" on an expected
subsequent Cache.get(Object)
(or CheckedCache.get(Object)
invoking the CacheFunction
(or CheckedCacheFunction
)
unnecessarily, using this "hint" to "propose" an entry to the cache.
Any code using this must expect key/value pairs that have been put into a
cache to disappear at any time (e.g. when the cache is full and this
key/value hasn't been used, or after a programmatic or end-user operator
initiated eviction), and be able to obtain THE SAME value from the
CacheFunction
(or CheckedCacheFunction
), for the given key.
Failure to implement calls to this put method consistent with the implementation of the cache's get function WILL lead to weird cache inconsistencies!
Some Cache implementations may IGNORE this "hint" method.
key
- the key of the proposed new cache entryvalue
- the value of the proposed new cache entryNullPointerException
- if the cache's users passed a null key or valueCacheManager getManager()
Copyright © 2019 OpenDaylight. All rights reserved.