mirror of
https://github.com/adamhathcock/sharpcompress.git
synced 2026-02-14 13:35:38 +00:00
132 lines
3.1 KiB
C#
132 lines
3.1 KiB
C#
using System;
|
|
using System.IO;
|
|
|
|
namespace SharpCompress.IO
|
|
{
|
|
internal class MarkingBinaryReader : BinaryReader
|
|
{
|
|
public MarkingBinaryReader(Stream stream)
|
|
: base(stream)
|
|
{
|
|
}
|
|
|
|
public long CurrentReadByteCount { get; private set; }
|
|
|
|
public void Mark()
|
|
{
|
|
CurrentReadByteCount = 0;
|
|
}
|
|
|
|
public override int Read()
|
|
{
|
|
CurrentReadByteCount += 4;
|
|
return base.Read();
|
|
}
|
|
|
|
public override int Read(byte[] buffer, int index, int count)
|
|
{
|
|
CurrentReadByteCount += count;
|
|
return base.Read(buffer, index, count);
|
|
}
|
|
|
|
public override int Read(char[] buffer, int index, int count)
|
|
{
|
|
throw new NotImplementedException();
|
|
}
|
|
|
|
public override bool ReadBoolean()
|
|
{
|
|
CurrentReadByteCount++;
|
|
return base.ReadBoolean();
|
|
}
|
|
|
|
public override byte ReadByte()
|
|
{
|
|
CurrentReadByteCount++;
|
|
return base.ReadByte();
|
|
}
|
|
|
|
public override byte[] ReadBytes(int count)
|
|
{
|
|
CurrentReadByteCount += count;
|
|
return base.ReadBytes(count);
|
|
}
|
|
|
|
public override char ReadChar()
|
|
{
|
|
throw new NotImplementedException();
|
|
}
|
|
|
|
public override char[] ReadChars(int count)
|
|
{
|
|
throw new NotImplementedException();
|
|
}
|
|
|
|
#if !SILVERLIGHT && !PORTABLE
|
|
public override decimal ReadDecimal()
|
|
{
|
|
CurrentReadByteCount += 16;
|
|
return base.ReadDecimal();
|
|
}
|
|
#endif
|
|
|
|
public override double ReadDouble()
|
|
{
|
|
CurrentReadByteCount += 8;
|
|
return base.ReadDouble();
|
|
}
|
|
|
|
public override short ReadInt16()
|
|
{
|
|
CurrentReadByteCount += 2;
|
|
return base.ReadInt16();
|
|
}
|
|
|
|
public override int ReadInt32()
|
|
{
|
|
CurrentReadByteCount += 4;
|
|
return base.ReadInt32();
|
|
}
|
|
|
|
public override long ReadInt64()
|
|
{
|
|
CurrentReadByteCount += 8;
|
|
return base.ReadInt64();
|
|
}
|
|
|
|
public override sbyte ReadSByte()
|
|
{
|
|
CurrentReadByteCount++;
|
|
return base.ReadSByte();
|
|
}
|
|
|
|
public override float ReadSingle()
|
|
{
|
|
CurrentReadByteCount += 4;
|
|
return base.ReadSingle();
|
|
}
|
|
|
|
public override string ReadString()
|
|
{
|
|
throw new NotImplementedException();
|
|
}
|
|
|
|
public override ushort ReadUInt16()
|
|
{
|
|
CurrentReadByteCount += 2;
|
|
return base.ReadUInt16();
|
|
}
|
|
|
|
public override uint ReadUInt32()
|
|
{
|
|
CurrentReadByteCount += 4;
|
|
return base.ReadUInt32();
|
|
}
|
|
|
|
public override ulong ReadUInt64()
|
|
{
|
|
CurrentReadByteCount += 8;
|
|
return base.ReadUInt64();
|
|
}
|
|
}
|
|
} |