aboutsummaryrefslogtreecommitdiff
path: root/lib/VNLib.Plugins.Extensions.VNCache/src/AddOrUpdateBuffer.cs
diff options
context:
space:
mode:
Diffstat (limited to 'lib/VNLib.Plugins.Extensions.VNCache/src/AddOrUpdateBuffer.cs')
-rw-r--r--lib/VNLib.Plugins.Extensions.VNCache/src/AddOrUpdateBuffer.cs97
1 files changed, 0 insertions, 97 deletions
diff --git a/lib/VNLib.Plugins.Extensions.VNCache/src/AddOrUpdateBuffer.cs b/lib/VNLib.Plugins.Extensions.VNCache/src/AddOrUpdateBuffer.cs
deleted file mode 100644
index a1fe2b5..0000000
--- a/lib/VNLib.Plugins.Extensions.VNCache/src/AddOrUpdateBuffer.cs
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
-* Copyright (c) 2023 Vaughn Nugent
-*
-* Library: VNLib
-* Package: VNLib.Plugins.Extensions.VNCache
-* File: AddOrUpdateBuffer.cs
-*
-* AddOrUpdateBuffer.cs is part of VNLib.Plugins.Extensions.VNCache
-* which is part of the larger VNLib collection of libraries and utilities.
-*
-* VNLib.Plugins.Extensions.VNCache is free software: you can redistribute it and/or modify
-* it under the terms of the GNU Affero General Public License as
-* published by the Free Software Foundation, either version 3 of the
-* License, or (at your option) any later version.
-*
-* VNLib.Plugins.Extensions.VNCache is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-* GNU Affero General Public License for more details.
-*
-* You should have received a copy of the GNU Affero General Public License
-* along with this program. If not, see https://www.gnu.org/licenses/.
-*/
-
-using System;
-using System.Buffers;
-
-using VNLib.Utils;
-using VNLib.Utils.Memory;
-using VNLib.Utils.Extensions;
-using VNLib.Data.Caching;
-
-namespace VNLib.Plugins.Extensions.VNCache
-{
- /// <summary>
- /// Implements a buffer writer that serves to serialize object data and
- /// store the object data for use by the memory cache store, and the
- /// remote cache store
- /// </summary>
- class AddOrUpdateBuffer : VnDisposeable, IBufferWriter<byte>, IObjectData
- {
- private int _count;
- private readonly IUnmangedHeap _heap;
- private MemoryHandle<byte>? _buffer;
-
- public AddOrUpdateBuffer(IUnmangedHeap heap)
- {
- _heap = heap;
- }
-
- public void Advance(int count)
- {
- //Update count
- _count += count;
- }
-
- public Memory<byte> GetMemory(int sizeHint = 0)
- {
- throw new NotImplementedException();
- }
-
- public Span<byte> GetSpan(int sizeHint = 0)
- {
- //Round to nearest page for new size
- nint newSize = MemoryUtil.NearestPage(sizeHint + _count);
-
- //Alloc buffer it not yet allocated
- if (_buffer == null)
- {
- _buffer = _heap.Alloc<byte>(newSize);
- }
- else
- {
- //check for resize if allocated
- _buffer.ResizeIfSmaller(newSize);
- }
-
- return _buffer.AsSpan(_count);
- }
-
- public void SetData(ReadOnlySpan<byte> data)
- {
- throw new NotSupportedException();
- }
-
- public ReadOnlySpan<byte> GetData()
- {
- //Get stored data from within handle
- return _buffer!.AsSpan(0, _count);
- }
-
- protected override void Free()
- {
- _buffer?.Dispose();
- }
- }
-} \ No newline at end of file