7 instantiations of BufferChunk
Microsoft.Extensions.Caching.Hybrid (7)
Internal\DefaultHybridCache.L2.cs (5)
57? new(writer.DetachCommitted(out int length), 0, length, returnToPool: true) 74? new(writer.DetachCommitted(out int length), 0, length, returnToPool: true) 116ValueTask pending = SetDirectL2Async(TagKeyPrefix + tag, new BufferChunk(oversized, 0, sizeof(long), false), _tagInvalidationEntryOptions, token); 233await SetDirectL2Async(key, new(oversized, 0, length, true), GetL2DistributedCacheOptions(options), token).ConfigureAwait(false); 247return new(payload);
Internal\DefaultHybridCache.Serialization.cs (1)
70buffer = new(writer.DetachCommitted(out int length), 0, length, returnToPool: true); // remove buffer ownership from the writer
Internal\DefaultHybridCache.StampedeStateT.cs (1)
242result = new(payload.Array!, payload.Offset, payload.Count, result.ReturnToPool);
23 references to BufferChunk
Microsoft.Extensions.Caching.Hybrid (23)
Internal\BufferChunk.cs (2)
94internal BufferChunk DoNotReturnToPool() 96BufferChunk copy = this;
Internal\DefaultHybridCache.CacheItem.cs (1)
56public abstract bool TryReserveBuffer(out BufferChunk buffer);
Internal\DefaultHybridCache.ImmutableCacheItem.cs (1)
59public override bool TryReserveBuffer(out BufferChunk buffer)
Internal\DefaultHybridCache.L2.cs (10)
27internal ValueTask<BufferChunk> GetFromL2DirectAsync(string key, CancellationToken token) 56BufferChunk result = pendingBuffers.GetAwaiter().GetResult() 65static async Task<BufferChunk> AwaitedLegacyAsync(Task<byte[]?> pending, DefaultHybridCache @this) 71static async Task<BufferChunk> AwaitedBuffersAsync(ValueTask<bool> pending, RecyclableArrayBufferWriter<byte> writer) 73BufferChunk result = await pending.ConfigureAwait(false) 81internal ValueTask SetL2Async(string key, CacheItem cacheItem, in BufferChunk buffer, HybridCacheEntryOptions? options, CancellationToken token) 84internal ValueTask SetDirectL2Async(string key, in BufferChunk buffer, DistributedCacheEntryOptions options, CancellationToken token) 147BufferChunk buffer = await GetFromL2DirectAsync(TagKeyPrefix + tag, cts.Token).ConfigureAwait(false); 224private async ValueTask WritePayloadAsync(string key, CacheItem cacheItem, BufferChunk payload, HybridCacheEntryOptions? options, CancellationToken token) 238private BufferChunk GetValidPayloadSegment(byte[]? payload)
Internal\DefaultHybridCache.MutableCacheItem.cs (3)
14private BufferChunk _buffer; 26public void SetValue(ref BufferChunk buffer, IHybridCacheSerializer<T> serializer) 78public override bool TryReserveBuffer(out BufferChunk buffer)
Internal\DefaultHybridCache.Serialization.cs (1)
56private bool TrySerialize<T>(T value, out BufferChunk buffer, out IHybridCacheSerializer<T>? serializer)
Internal\DefaultHybridCache.StampedeStateT.cs (5)
188BufferChunk result; 347BufferChunk bufferToRelease = default; 348if (Cache.TrySerialize(newValue, out BufferChunk buffer, out IHybridCacheSerializer<T>? serializer)) 444private void SetResultAndRecycleIfAppropriate(ref BufferChunk value, TimeSpan remainingTime) 494private void SetResultPreSerialized(T value, ref BufferChunk buffer, IHybridCacheSerializer<T>? serializer)