Files
HawkeyeVision/framework/Inspectron.Fastbuffer/IsolatedRingbuffer.cs
2025-09-05 11:11:23 +02:00

39 lines
1.0 KiB
C#

using Inspectron.Fastbuffer.Interfaces;
using OpenCvSharp;
namespace Inspectron.Fastbuffer;
public class IsolatedRingbuffer: IDisposable
{
private readonly string _path;
private readonly int _bufferSize;
private readonly IFilesystem _filesystem;
private readonly string _indexPath;
private readonly IndexFile _index;
public const string BufferDirectory = ".rb";
public const string IndexFile = "index.idx";
public IsolatedRingbuffer(string path, int bufferSize, IFilesystem filesystem)
{
_path = path;
_bufferSize = bufferSize;
_filesystem = filesystem;
_indexPath = Path.Combine(_path, BufferDirectory,IndexFile );
Directory.CreateDirectory(Path.Combine(_path, BufferDirectory));
_index = new IndexFile(_indexPath, _bufferSize, _filesystem);
}
public void Write(Mat data, string fileName)
{
_index.WriteNextArtifact(data, fileName);
}
public void Dispose()
{
_filesystem.Dispose();
}
}