Author: alanmc
Date: 2008-02-08 09:26:03 -0500 (Fri, 08 Feb 2008)
New Revision: 95252

Added:
   
trunk/bitsharp/src/MonoTorrent/MonoTorrent.Client/Messages/UdpTrackerMessages/UdpTrackerMessage.cs
Log:
Reorganised directory structure

Added: 
trunk/bitsharp/src/MonoTorrent/MonoTorrent.Client/Messages/UdpTrackerMessages/UdpTrackerMessage.cs
===================================================================
--- 
trunk/bitsharp/src/MonoTorrent/MonoTorrent.Client/Messages/UdpTrackerMessages/UdpTrackerMessage.cs
  2008-02-08 14:23:45 UTC (rev 95251)
+++ 
trunk/bitsharp/src/MonoTorrent/MonoTorrent.Client/Messages/UdpTrackerMessages/UdpTrackerMessage.cs
  2008-02-08 14:26:03 UTC (rev 95252)
@@ -0,0 +1,48 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+using MonoTorrent.Client.Tracker.UdpTrackerMessages;
+using MonoTorrent.Client.Tracker;
+
+namespace MonoTorrent.Client.Messages
+{
+    public abstract class UdpTrackerMessage : Message
+    {
+        public static UdpTrackerMessage DecodeMessage(ArraySegment<byte> 
buffer, int offset, int count)
+        {
+            return DecodeMessage(buffer.Array, buffer.Offset + offset, count);
+        }
+
+        public static UdpTrackerMessage DecodeMessage(byte[] buffer, int 
offset, int count)
+        {
+            UdpTrackerMessage m = null;
+            switch (ReadInt(buffer, offset))
+            {
+                case 0:
+                    m = new ConnectResponseMessage();
+                    break;
+                case 1:
+                    m = new AnnounceResponseMessage();
+                    break;
+                case 2:
+                    m = new ScrapeResponseMessage();
+                    break;
+                case 3:
+                    m = new ErrorMessage();
+                    break;
+                default:
+                    throw new ProtocolException(string.Format("Invalid udp 
message received: {0}", buffer[offset]));
+            }
+
+            try
+            {
+                m.Decode(buffer, offset, count);
+            }
+            catch
+            {
+                m = new ErrorMessage("Couldn't decode the tracker response");
+            }
+            return m;
+        }
+    }
+}


Property changes on: 
trunk/bitsharp/src/MonoTorrent/MonoTorrent.Client/Messages/UdpTrackerMessages/UdpTrackerMessage.cs
___________________________________________________________________
Name: svn:eol-style
   + native

_______________________________________________
Mono-patches maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches

Reply via email to