Mercurial > hg > ucis.core
diff Util/PacketStream.cs @ 1:28dc7d535036
Small improvements, introduced PacketStream
author | Ivo Smits <Ivo@UCIS.nl> |
---|---|
date | Mon, 07 Jan 2013 16:43:28 +0100 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Util/PacketStream.cs Mon Jan 07 16:43:28 2013 +0100 @@ -0,0 +1,17 @@ +using System; +using System.IO; + +namespace UCIS.Util { + public abstract class PacketStream : Stream { + public abstract Byte[] ReadPacket(); + public abstract IAsyncResult BeginReadPacket(AsyncCallback callback, object state); + public abstract Byte[] EndReadPacket(IAsyncResult asyncResult); + + public virtual ArraySegment<Byte> ReadPacketFast() { return new ArraySegment<byte>(ReadPacket()); } + public virtual IAsyncResult BeginReadPacketFast(AsyncCallback callback, object state) { return BeginReadPacket(callback, state); } + public virtual ArraySegment<Byte> EndReadPacketFast(IAsyncResult asyncResult) { return new ArraySegment<byte>(EndReadPacket(asyncResult)); } + public virtual void WritePacketFast(Byte[] packet, int unusedBefore, int unusedAfter) { Write(packet, unusedBefore, packet.Length - unusedBefore - unusedAfter); } + public virtual int WriteFastBytesBefore { get { return 0; } } + public virtual int WriteFastBytesAfter { get { return 0; } } + } +}