Files
point_of_sale/PointOfSale/Utilities/ESCPOS_NET/Utils/InterceptableWriteMemoryStream.cs
Bjarne Pedersen 41e23b6184 Initial commit
Initial commit til Git.
V2 er deployed
2026-06-13 17:31:50 +02:00

52 lines
1.5 KiB
C#

using System;
using System.IO;
namespace ESCPOS_NET
{
public class InterceptableWriteMemoryStream : Stream
{
private MemoryStream _innerStream = new MemoryStream();
public override bool CanRead => _innerStream.CanRead;
public override bool CanSeek => _innerStream.CanSeek;
public override bool CanWrite => _innerStream.CanWrite;
public override long Length => _innerStream.Length;
public override long Position { get => _innerStream.Position; set => _innerStream.Position = value; }
private Action<byte[]> _writeAction { get; set; }
public InterceptableWriteMemoryStream(Action<byte[]> writeAction)
{
_writeAction = writeAction;
}
public override void Flush()
{
_innerStream.Flush();
}
public override int Read(byte[] buffer, int offset, int count)
{
return _innerStream.Read(buffer, offset, count);
}
public override long Seek(long offset, SeekOrigin origin)
{
return _innerStream.Seek(offset, origin);
}
public override void SetLength(long value)
{
_innerStream.SetLength(value);
}
public override void Write(byte[] buffer, int offset, int count)
{
var writeArray = new byte[count];
Buffer.BlockCopy(buffer, offset, writeArray, 0, count);
_writeAction(writeArray);
}
}
}