Mercurial > hg > ucis.core
comparison 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 |
comparison
equal
deleted
inserted
replaced
0:3ab940a0c7a0 | 1:28dc7d535036 |
---|---|
1 using System; | |
2 using System.IO; | |
3 | |
4 namespace UCIS.Util { | |
5 public abstract class PacketStream : Stream { | |
6 public abstract Byte[] ReadPacket(); | |
7 public abstract IAsyncResult BeginReadPacket(AsyncCallback callback, object state); | |
8 public abstract Byte[] EndReadPacket(IAsyncResult asyncResult); | |
9 | |
10 public virtual ArraySegment<Byte> ReadPacketFast() { return new ArraySegment<byte>(ReadPacket()); } | |
11 public virtual IAsyncResult BeginReadPacketFast(AsyncCallback callback, object state) { return BeginReadPacket(callback, state); } | |
12 public virtual ArraySegment<Byte> EndReadPacketFast(IAsyncResult asyncResult) { return new ArraySegment<byte>(EndReadPacket(asyncResult)); } | |
13 public virtual void WritePacketFast(Byte[] packet, int unusedBefore, int unusedAfter) { Write(packet, unusedBefore, packet.Length - unusedBefore - unusedAfter); } | |
14 public virtual int WriteFastBytesBefore { get { return 0; } } | |
15 public virtual int WriteFastBytesAfter { get { return 0; } } | |
16 } | |
17 } |