You've already forked lidgren-network-gen3
mirror of
https://github.com/lidgren/lidgren-network-gen3.git
synced 2026-05-06 02:11:06 +09:00
66 lines
1.5 KiB
C#
66 lines
1.5 KiB
C#
using System;
|
|
using System.IO;
|
|
|
|
namespace Lidgren.Network
|
|
{
|
|
public partial class NetIncomingMessage : Stream
|
|
{
|
|
public override bool CanRead { get { return true; } }
|
|
public override bool CanSeek { get { return true; } }
|
|
public override bool CanWrite { get { return false; } }
|
|
|
|
public override void Flush()
|
|
{
|
|
// no op
|
|
}
|
|
|
|
/// <summary>
|
|
/// Gets the length in bytes
|
|
/// </summary>
|
|
public override long Length
|
|
{
|
|
get { return LengthBytes; }
|
|
}
|
|
|
|
public override int Read(byte[] buffer, int offset, int count)
|
|
{
|
|
// limit amount to remaining
|
|
int remainingBytes = NetUtility.BytesToHoldBits(m_bitLength - m_readPosition);
|
|
if (count > remainingBytes)
|
|
count = remainingBytes;
|
|
if (count < 1)
|
|
return 0;
|
|
|
|
ReadBytes(buffer, offset, count);
|
|
return count;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Sets the position in the stream, in bytes
|
|
/// </summary>
|
|
public override long Seek(long offset, SeekOrigin origin)
|
|
{
|
|
switch (origin)
|
|
{
|
|
case SeekOrigin.Begin:
|
|
Position = (offset * 8);
|
|
break;
|
|
case SeekOrigin.Current:
|
|
Position = Position + (offset * 8);
|
|
break;
|
|
case SeekOrigin.End:
|
|
Position = (LengthBytes - offset) * 8;
|
|
break;
|
|
default:
|
|
throw new NotImplementedException("Bad SeekOrigin");
|
|
}
|
|
return Position;
|
|
}
|
|
|
|
public override void SetLength(long value)
|
|
{
|
|
throw new NetException("It's not possible to set the length of the NetIncomingMessage");
|
|
}
|
|
}
|
|
}
|