Class CacheManager::entry

Nested Relationships

This class is a nested type of Template Class CacheManager.

Class Documentation

class entry

Public Functions

inline explicit entry(size_t count, bool persistent = false) noexcept
inline ResultPtr access() noexcept
inline void store(ResultPtr &&data, bool strict_fill_once)
Parameters:

strict_fill_once – whether a duplicate-producer store on a non-persistent entry throws; the caller (CacheManager::store_and_access) passes its own strict_fill_once() (per-instance, defaulting to the env gate eval::strict_fill_once() — see there), rather than this function reading the env gate directly, so tests can flip strictness deterministically without a process-wide static latch.

inline void reset() noexcept
inline bool persistent() const noexcept
inline size_t life_count() const noexcept
inline size_t max_life_count() const noexcept
inline size_t size_in_bytes() const noexcept
inline bool alive() const noexcept
inline bool holds(ResultPtr const &other) const noexcept
Returns:

true iff this entry currently holds the same buffer (pointer identity) as other. A sliced/permuted/phase-shifted read of this entry is a distinct buffer, so it compares unequal. Used by the peak trace to detect an operand that aliases a cached buffer (whose bytes are then already counted, and must not be added again).