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; } }
+	}
+}