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)
41
internal void AttachTokens(
CacheEntry
cacheEntry)
61
internal bool CheckForExpiredTokens(
CacheEntry
cacheEntry)
82
internal void PropagateTokens(
CacheEntry
parentEntry)
113
internal void InvokeEvictionCallbacks(
CacheEntry
cacheEntry)
117
Task.Factory.StartNew(state => InvokeCallbacks((
CacheEntry
)state!), cacheEntry,
122
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;
227
CacheEntry
? parent = _previous;
297
var
entry = (
CacheEntry
)state!;
307
if ((_tokens == null || !_tokens.CanPropagateTokens()) && _absoluteExpirationTicks < 0 || _current.Value is not
CacheEntry
parent)
MemoryCache.cs (37)
123
internal void SetEntry(
CacheEntry
entry)
159
if (coherentState.TryGetValue(entry.Key, out
CacheEntry
? priorEntry))
246
coherentState.TryGetValue(key, out
CacheEntry
? entry); // note we rely on documented "default when fails" contract re the out
263
coherentState.TryGetValue(key, out
CacheEntry
? entry); // note we rely on documented "default when fails" contract re the out
299
private bool PostProcessTryGetValue(CoherentState coherentState,
CacheEntry
? entry, out object? result)
365
if (coherentState.TryRemove(key, out
CacheEntry
? entry))
387
foreach (
CacheEntry
entry in oldState.GetAllValues())
416
internal void EntryExpired(
CacheEntry
entry)
528
foreach (
CacheEntry
entry in coherentState.GetAllValues())
548
private bool UpdateCacheSizeExceedsCapacity(
CacheEntry
entry,
CacheEntry
? priorEntry, CoherentState coherentState)
647
private void Compact(long removalSizeTarget, Func<
CacheEntry
, long> computeEntrySize, CoherentState coherentState)
649
var entriesToRemove = new List<
CacheEntry
>();
651
var lowPriEntries = new List<(
CacheEntry
entry, DateTime lastAccessed)>();
652
var normalPriEntries = new List<(
CacheEntry
entry, DateTime lastAccessed)>();
653
var highPriEntries = new List<(
CacheEntry
entry, DateTime lastAccessed)>();
658
foreach (
CacheEntry
entry in coherentState.GetAllValues())
691
foreach (
CacheEntry
entry in entriesToRemove)
709
static void ExpirePriorityBucket(ref long removedSize, long removalSizeTarget, Func<
CacheEntry
, long> computeEntrySize, List<
CacheEntry
> entriesToRemove, List<(
CacheEntry
Entry, DateTime LastAccessed)> priorityEntries)
723
foreach ((
CacheEntry
entry, _) in priorityEntries)
791
private readonly ConcurrentDictionary<string,
CacheEntry
> _stringEntries = [];
795
private readonly ConcurrentDictionary<object,
CacheEntry
> _nonStringEntries = [];
798
private readonly ConcurrentDictionary<string,
CacheEntry
>.AlternateLookup<ReadOnlySpan<char>> _stringAltLookup;
822
internal bool TryGetValue(object key, [NotNullWhen(true)] out
CacheEntry
? entry)
826
internal bool TryGetValue(ReadOnlySpan<char> key, [NotNullWhen(true)] out
CacheEntry
? entry)
831
internal bool TryRemove(object key, [NotNullWhen(true)] out
CacheEntry
? entry)
834
internal bool TryAdd(object key,
CacheEntry
entry)
837
internal bool TryUpdate(object key,
CacheEntry
entry,
CacheEntry
comparison)
840
public IEnumerable<
CacheEntry
> GetAllValues()
846
foreach (KeyValuePair<string,
CacheEntry
> entry in _stringEntries)
850
foreach (KeyValuePair<object,
CacheEntry
> entry in _nonStringEntries)
858
foreach (KeyValuePair<string,
CacheEntry
> pairs in _stringEntries)
862
foreach (KeyValuePair<object,
CacheEntry
> pairs in _nonStringEntries)
872
internal bool RemoveEntry(
CacheEntry
entry, MemoryCacheOptions options)