Lines Matching +full:file +full:- +full:entry +full:- +full:cache
9 * File UNIFIEDCACHE.H - The ICU Unified cache.
33 * A base class for all cache keys.
57 * Create a new object for this key. Called by cache on cache miss.
59 * that getting an object from the cache and returning it without calling
121 buffer[bufLen - 1] = 0; in writeDescription()
135 * Cache key based on locale.
172 buffer[bufLen - 1] = 0; in writeDescription()
179 * The unified cache. A singleton type.
193 * Return a pointer to the global cache instance.
198 * Fetches a value from the cache by key. Equivalent to
210 * Fetches value from the cache by key.
212 * @param key the cache key.
214 * @param ptr On entry, ptr must be NULL or be included if
217 * from the cache or is left unchanged on
249 * Dumps the contents of this cache to standard error. Used for testing of
250 * cache only.
256 * Convenience method to get a value of type T from cache for a
259 * @param ptr On entry, must be NULL or included in the ref count
270 const UnifiedCache *cache = getInstance(status); in getByLocale() local
274 cache->get(LocaleCacheKey<T>(loc), ptr, status); in getByLocale()
279 * Dumps the cache contents to stderr. For testing only.
285 * Returns the number of keys in this cache. For testing only.
290 * Removes any values from cache that are not referenced outside
291 * the cache.
298 * BOTH count AND (number of in-use items) * (percentageOfInUseItems / 100).
301 * the actual unused entry count may exceed both these numbers
304 * A cache entry is defined as unused if it is not essential to guarantee
305 * that for a given key X, the cache returns the same reference to the
311 * Although this method is thread-safe, it is designed to be called at
313 * will have no immediate effect on the cache. However over time, the
314 * cache will perform eviction slices in an attempt to honor the new
318 * in the cache such that the number of those unique values far exceeds
319 * "count" then the cache may not be able to maintain this maximum.
320 * However, if this happens, the cache still guarantees that the number of
321 * unused entries will remain only a small percentage of the total cache
333 * of this cache. This only includes auto evicted entries, not
339 * Returns the unused entry count in this cache. For testing only,
361 * Flushes the contents of the cache. If cache values hold references to other
362 * cache values then _flush should be called in a loop until it returns false.
364 * On entry, gCacheMutex must be held.
371 * the cache, so that a subsequent removeRefs can delete them.
373 * @return true if any value in cache was flushed or false otherwise.
378 * Gets value out of cache.
379 * On entry. gCacheMutex must not be held. value must be NULL. status
381 * On exit. value and status set to what is in cache at key or on cache
384 * value and status to the cache. If createObject() fails to create a value,
385 * fNoValue is stored in cache, and value is set to NULL. Caller must call
395 * Attempts to fetch value and status for key from cache.
396 * On entry, gCacheMutex must not be held value must be NULL and status must
402 * entry could not be made but value will remain unchanged. When true is
411 * Places a new value and creationStatus in the cache for the given key.
412 * On entry, gCacheMutex must be held. key must not exist in the cache.
423 * Places value and status at key if there is no value at key or if cache
424 * entry for key is in progress. Otherwise, it leaves the current value and
427 * On entry. gCacheMutex must not be held. Value must be
430 * On exit, value and status are changed to what was already in the cache if
432 * unchanged in which case they are placed in the cache on a best-effort basis.
441 * Returns the next element in the cache round robin style.
442 * Returns nullptr if the cache is empty.
443 * On entry, gCacheMutex must be held.
448 * Return the number of cache items that would need to be evicted
451 * An item corresponds to an entry in the hash table, a hash table element.
453 * On entry, gCacheMutex must be held.
459 * On entry, gCacheMutex must be held.
461 * 10 entries in the cache round robin style evicting them if they are eligible.
466 * Register a primary cache entry. A primary key is the first key to create
468 * produce references to an already existing SharedObject are not primary -
471 * On entry, gCacheMutex must be held.
472 * On exit, items in use count incremented, entry is marked as a primary
473 * entry, and value registered with cache so that subsequent calls to
474 * addRef() and removeRef() on it correctly interact with the cache.
479 * Store a value and creation error status in given hash entry.
480 * On entry, gCacheMutex must be held. Hash entry element must be in progress.
483 * entry. Soft reference removed from previous stored value. Waiting
524 * Fetch value and error code from a particular hash entry.
525 * On entry, gCacheMutex must be held. value must be either NULL or must be
527 * On exit, value and status set to what is in the hash entry. Caller must
529 * If hash entry is in progress, value will be set to gNoValue and status will
536 * Determine if given hash entry is in progress.
537 * On entry, gCacheMutex must be held.
542 * Determine if given hash entry is in progress.
543 * On entry, gCacheMutex must be held.
548 * Determine if given hash entry is eligible for eviction.
549 * On entry, gCacheMutex must be held.