1 instantiation of CacheEntry
Microsoft.Extensions.Caching.Memory (1)
MemoryCache.cs (1)
104
return new
CacheEntry
(key, this);
58 references to CacheEntry
Microsoft.Extensions.Caching.Memory (58)
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
47
AsyncLocal<
CacheEntry
?> holder = _current;
54
internal static
CacheEntry
? Current => _current.Value;
214
CacheEntry
? parent = _previous;
281
var
entry = (
CacheEntry
)state!;
291
if ((_tokens == null || !_tokens.CanPropagateTokens()) && _absoluteExpirationTicks < 0 || _current.Value is not
CacheEntry
parent)
MemoryCache.cs (43)
107
internal void SetEntry(
CacheEntry
entry)
138
if (coherentState.TryGetValue(entry.Key, out
CacheEntry
? priorEntry))
211
coherentState.TryGetValue(key, out
CacheEntry
? entry); // note we rely on documented "default when fails" contract re the out
228
coherentState.TryGetValue(key, out
CacheEntry
? entry); // note we rely on documented "default when fails" contract re the out
264
private bool PostProcessTryGetValue(CoherentState coherentState,
CacheEntry
? entry, out object? result)
327
if (coherentState.TryRemove(key, out
CacheEntry
? entry))
349
foreach (
CacheEntry
entry in oldState.GetAllValues())
377
internal void EntryExpired(
CacheEntry
entry)
474
foreach (
CacheEntry
entry in coherentState.GetAllValues())
491
private bool UpdateCacheSizeExceedsCapacity(
CacheEntry
entry,
CacheEntry
? priorEntry, CoherentState coherentState)
586
private void Compact(long removalSizeTarget, Func<
CacheEntry
, long> computeEntrySize, CoherentState coherentState)
588
var entriesToRemove = new List<
CacheEntry
>();
590
var lowPriEntries = new List<(
CacheEntry
entry, DateTimeOffset lastAccessed)>();
591
var normalPriEntries = new List<(
CacheEntry
entry, DateTimeOffset lastAccessed)>();
592
var highPriEntries = new List<(
CacheEntry
entry, DateTimeOffset lastAccessed)>();
597
foreach (
CacheEntry
entry in coherentState.GetAllValues())
629
foreach (
CacheEntry
entry in entriesToRemove)
639
static void ExpirePriorityBucket(ref long removedSize, long removalSizeTarget, Func<
CacheEntry
, long> computeEntrySize, List<
CacheEntry
> entriesToRemove, List<(
CacheEntry
Entry, DateTimeOffset LastAccessed)> priorityEntries)
653
foreach ((
CacheEntry
entry, _) in priorityEntries)
725
private readonly ConcurrentDictionary<string,
CacheEntry
> _stringEntries = new ConcurrentDictionary<string,
CacheEntry
>(StringKeyComparer.Instance);
726
private readonly ConcurrentDictionary<object,
CacheEntry
> _nonStringEntries = new ConcurrentDictionary<object,
CacheEntry
>();
729
private readonly ConcurrentDictionary<string,
CacheEntry
>.AlternateLookup<ReadOnlySpan<char>> _stringAltLookup;
739
internal bool TryGetValue(object key, [NotNullWhen(true)] out
CacheEntry
? entry)
743
internal bool TryGetValue(ReadOnlySpan<char> key, [NotNullWhen(true)] out
CacheEntry
? entry)
748
internal bool TryRemove(object key, [NotNullWhen(true)] out
CacheEntry
? entry)
751
internal bool TryAdd(object key,
CacheEntry
entry)
754
internal bool TryUpdate(object key,
CacheEntry
entry,
CacheEntry
comparison)
757
public IEnumerable<
CacheEntry
> GetAllValues()
763
foreach (KeyValuePair<string,
CacheEntry
> entry in _stringEntries)
767
foreach (KeyValuePair<object,
CacheEntry
> entry in _nonStringEntries)
775
foreach (KeyValuePair<string,
CacheEntry
> pairs in _stringEntries)
779
foreach (KeyValuePair<object,
CacheEntry
> pairs in _nonStringEntries)
785
private ICollection<KeyValuePair<string,
CacheEntry
>> StringEntriesCollection => _stringEntries;
786
private ICollection<KeyValuePair<object,
CacheEntry
>> NonStringEntriesCollection => _nonStringEntries;
792
internal void RemoveEntry(
CacheEntry
entry, MemoryCacheOptions options)
796
if (StringEntriesCollection.Remove(new KeyValuePair<string,
CacheEntry
>(s, entry)))
805
else if (NonStringEntriesCollection.Remove(new KeyValuePair<object,
CacheEntry
>(entry.Key, entry)))