1 instantiation of CacheEntry
Microsoft.Extensions.Caching.Memory (1)
MemoryCache.cs (1)
120
return new
CacheEntry
(key, this);
52 references to CacheEntry
Microsoft.Extensions.Caching.Memory (52)
CacheEntry.CacheEntryTokens.cs (6)
27
internal void AttachTokens(
CacheEntry
cacheEntry)
48
internal bool CheckForExpiredTokens(
CacheEntry
cacheEntry)
68
internal void PropagateTokens(
CacheEntry
parentEntry)
105
internal void InvokeEvictionCallbacks(
CacheEntry
cacheEntry)
109
Task.Factory.StartNew(state => InvokeCallbacks((
CacheEntry
)state!), cacheEntry,
114
private static void InvokeCallbacks(
CacheEntry
entry)
CacheEntry.cs (9)
18
private static readonly AsyncLocal<
CacheEntry
?> _current = new AsyncLocal<
CacheEntry
?>();
26
private
CacheEntry
? _previous; // this field is not null only before the entry is added to the cache and tracking is enabled
46
AsyncLocal<
CacheEntry
?> holder = _current;
53
internal static
CacheEntry
? Current => _current.Value;
213
CacheEntry
? parent = _previous;
283
var
entry = (
CacheEntry
)state!;
293
if ((_tokens == null || !_tokens.CanPropagateTokens()) && _absoluteExpirationTicks < 0 || _current.Value is not
CacheEntry
parent)
MemoryCache.cs (37)
123
internal void SetEntry(
CacheEntry
entry)
154
if (coherentState.TryGetValue(entry.Key, out
CacheEntry
? priorEntry))
241
coherentState.TryGetValue(key, out
CacheEntry
? entry); // note we rely on documented "default when fails" contract re the out
258
coherentState.TryGetValue(key, out
CacheEntry
? entry); // note we rely on documented "default when fails" contract re the out
294
private bool PostProcessTryGetValue(CoherentState coherentState,
CacheEntry
? entry, out object? result)
360
if (coherentState.TryRemove(key, out
CacheEntry
? entry))
382
foreach (
CacheEntry
entry in oldState.GetAllValues())
411
internal void EntryExpired(
CacheEntry
entry)
523
foreach (
CacheEntry
entry in coherentState.GetAllValues())
543
private bool UpdateCacheSizeExceedsCapacity(
CacheEntry
entry,
CacheEntry
? priorEntry, CoherentState coherentState)
642
private void Compact(long removalSizeTarget, Func<
CacheEntry
, long> computeEntrySize, CoherentState coherentState)
644
var entriesToRemove = new List<
CacheEntry
>();
646
var lowPriEntries = new List<(
CacheEntry
entry, DateTime lastAccessed)>();
647
var normalPriEntries = new List<(
CacheEntry
entry, DateTime lastAccessed)>();
648
var highPriEntries = new List<(
CacheEntry
entry, DateTime lastAccessed)>();
653
foreach (
CacheEntry
entry in coherentState.GetAllValues())
686
foreach (
CacheEntry
entry in entriesToRemove)
704
static void ExpirePriorityBucket(ref long removedSize, long removalSizeTarget, Func<
CacheEntry
, long> computeEntrySize, List<
CacheEntry
> entriesToRemove, List<(
CacheEntry
Entry, DateTime LastAccessed)> priorityEntries)
718
foreach ((
CacheEntry
entry, _) in priorityEntries)
786
private readonly ConcurrentDictionary<string,
CacheEntry
> _stringEntries = [];
790
private readonly ConcurrentDictionary<object,
CacheEntry
> _nonStringEntries = [];
793
private readonly ConcurrentDictionary<string,
CacheEntry
>.AlternateLookup<ReadOnlySpan<char>> _stringAltLookup;
817
internal bool TryGetValue(object key, [NotNullWhen(true)] out
CacheEntry
? entry)
821
internal bool TryGetValue(ReadOnlySpan<char> key, [NotNullWhen(true)] out
CacheEntry
? entry)
826
internal bool TryRemove(object key, [NotNullWhen(true)] out
CacheEntry
? entry)
829
internal bool TryAdd(object key,
CacheEntry
entry)
832
internal bool TryUpdate(object key,
CacheEntry
entry,
CacheEntry
comparison)
835
public IEnumerable<
CacheEntry
> GetAllValues()
841
foreach (KeyValuePair<string,
CacheEntry
> entry in _stringEntries)
845
foreach (KeyValuePair<object,
CacheEntry
> entry in _nonStringEntries)
853
foreach (KeyValuePair<string,
CacheEntry
> pairs in _stringEntries)
857
foreach (KeyValuePair<object,
CacheEntry
> pairs in _nonStringEntries)
867
internal bool RemoveEntry(
CacheEntry
entry, MemoryCacheOptions options)