7 instantiations of BufferChunk
Microsoft.Extensions.Caching.Hybrid (7)
Internal\DefaultHybridCache.L2.cs (5)
55? new(writer.DetachCommitted(out int length), 0, length, returnToPool: true) 72? new(writer.DetachCommitted(out int length), 0, length, returnToPool: true) 114ValueTask pending = SetDirectL2Async(TagKeyPrefix + tag, new BufferChunk(oversized, 0, sizeof(long), false), _tagInvalidationEntryOptions, token); 230await SetDirectL2Async(key, new(oversized, 0, length, true), GetL2DistributedCacheOptions(options), token).ConfigureAwait(false); 244return new(payload);
Internal\DefaultHybridCache.Serialization.cs (1)
68buffer = new(writer.DetachCommitted(out int length), 0, length, returnToPool: true); // remove buffer ownership from the writer
Internal\DefaultHybridCache.StampedeStateT.cs (1)
236result = 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)
25internal ValueTask<BufferChunk> GetFromL2DirectAsync(string key, CancellationToken token) 54BufferChunk result = pendingBuffers.GetAwaiter().GetResult() 63static async Task<BufferChunk> AwaitedLegacyAsync(Task<byte[]?> pending, DefaultHybridCache @this) 69static async Task<BufferChunk> AwaitedBuffersAsync(ValueTask<bool> pending, RecyclableArrayBufferWriter<byte> writer) 71BufferChunk result = await pending.ConfigureAwait(false) 79internal ValueTask SetL2Async(string key, CacheItem cacheItem, in BufferChunk buffer, HybridCacheEntryOptions? options, CancellationToken token) 82internal ValueTask SetDirectL2Async(string key, in BufferChunk buffer, DistributedCacheEntryOptions options, CancellationToken token) 144BufferChunk buffer = await GetFromL2DirectAsync(TagKeyPrefix + tag, cts.Token).ConfigureAwait(false); 221private async ValueTask WritePayloadAsync(string key, CacheItem cacheItem, BufferChunk payload, HybridCacheEntryOptions? options, CancellationToken token) 235private 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)
54private bool TrySerialize<T>(T value, out BufferChunk buffer, out IHybridCacheSerializer<T>? serializer)
Internal\DefaultHybridCache.StampedeStateT.cs (5)
182BufferChunk result; 341BufferChunk bufferToRelease = default; 342if (Cache.TrySerialize(newValue, out BufferChunk buffer, out IHybridCacheSerializer<T>? serializer)) 438private void SetResultAndRecycleIfAppropriate(ref BufferChunk value, TimeSpan remainingTime) 488private void SetResultPreSerialized(T value, ref BufferChunk buffer, IHybridCacheSerializer<T>? serializer)