8 instantiations of TagSet
Microsoft.Extensions.Caching.Hybrid (8)
Internal\HybridCachePayload.cs (2)
318pendingTags = new(pendingTagBuffer[0]); 321pendingTags = new(pendingTagBuffer.AsSpan(0, pendingTagsCount).ToArray());
Internal\TagSet.cs (6)
111return new TagSet(list[0]); 116return new TagSet(arr[0]); 120return new TagSet(arr); 134return new TagSet(firstTag); 157return new TagSet(oversized); 163return new TagSet(final);
73 references to TagSet
Microsoft.Extensions.Caching.Hybrid (27)
Internal\DefaultHybridCache.CacheItem.cs (4)
19protected CacheItem(long creationTimestamp, TagSet tags) 31public TagSet Tags { get; } 107protected CacheItem(long creationTimestamp, TagSet tags) 136internal static CacheItem<T> Create(long creationTimestamp, TagSet tags) => ImmutableTypeCache<T>.IsImmutable
Internal\DefaultHybridCache.cs (2)
130_globalInvalidateTimestamp = _backendCache is null ? _zeroTimestamp : SafeReadTagInvalidationAsync(TagSet.WildcardTag); 217var state = new StampedeState<T, T>(this, new StampedeKey(key, flags), TagSet.Create(tags), token);
Internal\DefaultHybridCache.ImmutableCacheItem.cs (2)
15public ImmutableCacheItem(long creationTimestamp, TagSet tags) 33obj = new(0, TagSet.Empty); // timestamp doesn't matter - not used in L1/L2
Internal\DefaultHybridCache.MutableCacheItem.cs (1)
17public MutableCacheItem(long creationTimestamp, TagSet tags)
Internal\DefaultHybridCache.Stampede.cs (1)
31stampedeState = new StampedeState<TState, T>(this, stampedeKey, TagSet.Create(tags), canBeCanceled);
Internal\DefaultHybridCache.StampedeStateT.cs (3)
33public StampedeState(DefaultHybridCache cache, in StampedeKey key, TagSet tags, bool canBeCanceled) 39public StampedeState(DefaultHybridCache cache, in StampedeKey key, TagSet tags, CancellationToken token) 541private static bool ValidateUnicodeCorrectness(ILogger logger, string key, TagSet tags)
Internal\DefaultHybridCache.TagInvalidation.cs (6)
45TagSet tags = cacheItem.Tags; 141public ValueTask<bool> IsAnyTagExpiredAsync(TagSet tags, long timestamp) 150static async ValueTask<bool> SlowAsync(DefaultHybridCache @this, TagSet tags, long timestamp) 202if (tag == TagSet.WildcardTag) 212internal void PrefetchTags(TagSet tags) 244if (tag == TagSet.WildcardTag)
Internal\HybridCachePayload.cs (6)
64TagSet PendingTags, 69public static int GetMaxBytes(string key, TagSet tags, int payloadSize) 110string key, long creationTime, TimeSpan duration, PayloadFlags flags, TagSet tags, ReadOnlySequence<byte> payload) 181public static HybridCachePayloadParseResult TryParse(ArraySegment<byte> source, string key, TagSet knownTags, DefaultHybridCache cache, 196TagSet pendingTags = TagSet.Empty;
Internal\TagSet.cs (2)
19public static readonly TagSet Empty = default!; 96internal static TagSet Create(IEnumerable<string>? tags)
Microsoft.Extensions.Caching.Hybrid.Tests (46)
BufferReleaseTests.cs (6)
132var arr = ArrayPool<byte>.Shared.Rent(HybridCachePayload.GetMaxBytes(key, TagSet.Empty, writer.CommittedBytes)); 133var bytes = HybridCachePayload.Write(arr, key, cache.CurrentTimestamp(), TimeSpan.FromHours(1), 0, TagSet.Empty, writer.AsSequence()); 195var arr = ArrayPool<byte>.Shared.Rent(HybridCachePayload.GetMaxBytes(key, TagSet.Empty, writer.CommittedBytes)); 196var bytes = HybridCachePayload.Write(arr, key, cache.CurrentTimestamp(), TimeSpan.FromHours(1), 0, TagSet.Empty, writer.AsSequence()); 246var obj = Assert.IsType<ImmutableCacheItem<string>>(CacheItem<string>.Create(12345, TagSet.Empty)); 261var obj = Assert.IsType<MutableCacheItem<Customer>>(CacheItem<Customer>.Create(12345, TagSet.Empty));
PayloadTests.cs (19)
44var tags = string.IsNullOrEmpty(delimitedTags) 45? TagSet.Empty : TagSet.Create(delimitedTags.Split(',')); 77var tags = TagSet.Create(["some_tag"]); 111var tags = TagSet.Create(["some_tag"]); 141var tags = TagSet.Create(["some_tag"]); 177var tags = TagSet.Create(["some_tag"]); 213var result = HybridCachePayload.TryParse(new(bytes), "whatever", TagSet.Empty, cache, out var parsed, out _); 232var tags = TagSet.Create(["some_tag"]); 259var tags = TagSet.Create(["some_tag"]); 343var writeTags = TagSet.Create(tagsArray); 361var result = HybridCachePayload.TryParse(new(oversized, 0, actualLength), key, TagSet.Empty, cache, out var parsed, out _);
StampedeTests.cs (1)
76var state = new DefaultHybridCache.StampedeState<string, string>(cache, in key, TagSet.Empty, true);
TagSetTests.cs (20)
13var tags = TagSet.Empty; 24var tags = TagSet.Create([]); 35var tags = TagSet.Create(Custom()); 52var tags = TagSet.Create(arr); 65var tags = TagSet.Create(Custom()); 83var tags = TagSet.Create(arr); 98var tags = TagSet.Create(Custom()); 120var tags = TagSet.Create(arr); 132var tags = TagSet.Create(LongCustom()); 143var ex = Assert.Throws<ArgumentException>(() => TagSet.Create(["abc", "", "ghi"])); 151var ex = Assert.Throws<ArgumentException>(() => TagSet.Create(["abc", "*", "ghi"]));