Author: alanmc
Date: 2007-02-17 14:31:46 -0500 (Sat, 17 Feb 2007)
New Revision: 73060

Modified:
   trunk/bitsharp/src/MonoTorrent.Client/Settings/EngineSettings.cs
Log:
Updated to allow specifying if uPnP should be used or not to map ports

Modified: trunk/bitsharp/src/MonoTorrent.Client/Settings/EngineSettings.cs
===================================================================
--- trunk/bitsharp/src/MonoTorrent.Client/Settings/EngineSettings.cs    
2007-02-17 17:32:08 UTC (rev 73059)
+++ trunk/bitsharp/src/MonoTorrent.Client/Settings/EngineSettings.cs    
2007-02-17 19:31:46 UTC (rev 73060)
@@ -38,7 +38,22 @@
     /// </summary>
     public class EngineSettings
     {
-        #region Member Variables
+
+        #region Private Fields
+
+        private int listenPort;                         // The port to listen 
to incoming connections on
+        private int globalMaxConnections;               // The maximum number 
of connections that can be opened
+        private int globalMaxHalfOpenConnections;       // The maximum number 
of simultaenous 1/2 open connections
+        private int globalMaxDownloadSpeed;             // The maximum 
combined download speed
+        private int globalMaxUploadSpeed;               // The maximum 
combined upload speed
+        private string savePath;                        // The path that 
torrents will be downloaded to by default
+        private bool useuPnP;                           // True if uPnP should 
be used to map ports when available
+
+        #endregion Private Fields
+
+
+        #region Properties
+
         /// <summary>
         /// This is the default directory that torrents will be downloaded to
         /// </summary>
@@ -47,7 +62,6 @@
             get { return this.savePath; }
             set { this.savePath = value; }
         }
-        private string savePath;
 
 
         /// <summary>
@@ -58,7 +72,6 @@
             get { return this.globalMaxConnections; }
             set { this.globalMaxConnections = value; }
         }
-        private int globalMaxConnections;
 
 
         /// <summary>
@@ -69,7 +82,6 @@
             get { return this.globalMaxHalfOpenConnections; }
             set { this.globalMaxHalfOpenConnections = value; }
         }
-        private int globalMaxHalfOpenConnections;
 
 
         /// <summary>
@@ -80,7 +92,6 @@
             get { return this.globalMaxDownloadSpeed; }
             set { this.globalMaxDownloadSpeed = value; }
         }
-        private int globalMaxDownloadSpeed;
 
 
         /// <summary>
@@ -91,7 +102,6 @@
             get { return this.globalMaxUploadSpeed; }
             set { this.globalMaxUploadSpeed = value; }
         }
-        private int globalMaxUploadSpeed;
 
 
         /// <summary>
@@ -102,25 +112,45 @@
             get { return this.listenPort; }
             set { this.listenPort = value; }
         }
-        private int listenPort;
-        #endregion
 
 
+        /// <summary>
+        /// True if the engine should use uPnP to map ports if it is available
+        /// </summary>
+        public bool UsePnP
+        {
+            get { return this.useuPnP; }
+            set { this.useuPnP = value; }
+        }
+
+        #endregion Properties
+
+
         #region Defaults
+
         private const string DefaultSavePath = "";
         private const int DefaultMaxConnections = 150;
         private const int DefaultMaxDownloadSpeed = 0;
         private const int DefaultMaxUploadSpeed = 0;
         private const int DefaultMaxHalfOpenConnections = 5;
         private const int DefaultListenPort = 52138;
+        private const bool DefaultUseuPnP = true;
+
         #endregion
 
 
         #region Constructors
+
         private EngineSettings()
         {
         }
 
+        public EngineSettings(string defaultSavePath, bool useuPnP)
+            : this(defaultSavePath, useuPnP, DefaultMaxConnections, 
DefaultMaxHalfOpenConnections, DefaultListenPort, DefaultMaxDownloadSpeed, 
DefaultMaxUploadSpeed)
+        {
+
+        }
+
         /// <summary>
         /// Initialises a new engine settings with the supplied values
         /// </summary>
@@ -128,8 +158,8 @@
         /// <param name="globalHalfOpenConnections">The overall maximum number 
of half open connections</param>
         /// <param name="defaultSavePath">The default path to save downloaded 
material to</param>
         /// <param name="listenPort">The port to listen for incoming 
connections on</param>
-        public EngineSettings(int globalMaxConnections, int 
globalHalfOpenConnections, string defaultSavePath, int listenPort)
-            : this(globalMaxConnections, globalHalfOpenConnections, 
defaultSavePath, listenPort, DefaultMaxDownloadSpeed, DefaultMaxUploadSpeed)
+        public EngineSettings(string defaultSavePath, bool useuPnP, int 
globalMaxConnections, int globalHalfOpenConnections)
+            : this(defaultSavePath, useuPnP, globalMaxConnections, 
globalHalfOpenConnections, DefaultListenPort, DefaultMaxDownloadSpeed, 
DefaultMaxUploadSpeed)
         {
         }
 
@@ -142,7 +172,7 @@
         /// <param name="globalHalfOpenConnections">The overall maximum number 
of half open connections</param>
         /// <param name="defaultSavePath">The default path to save downloaded 
material to</param>
         /// <param name="listenPort">The port to listen for incoming 
connections on</param>
-        public EngineSettings(int globalMaxConnections, int 
globalHalfOpenConnections, string defaultSavePath, int listenPort, int 
globalMaxDownloadSpeed, int globalMaxUploadSpeed)
+        public EngineSettings(string defaultSavePath, bool useuPnP, int 
globalMaxConnections, int globalHalfOpenConnections, int listenPort, int 
globalMaxDownloadSpeed, int globalMaxUploadSpeed)
         {
             this.globalMaxConnections = globalMaxConnections;
             this.globalMaxDownloadSpeed = globalMaxDownloadSpeed;
@@ -150,7 +180,9 @@
             this.globalMaxHalfOpenConnections = globalHalfOpenConnections;
             this.savePath = defaultSavePath;
             this.listenPort = listenPort;
+            this.useuPnP = useuPnP;
         }
+        
         #endregion
 
 
@@ -160,12 +192,13 @@
         /// </summary>
         public static EngineSettings DefaultSettings()
         {
-            return new EngineSettings(DefaultMaxConnections,
-                DefaultMaxHalfOpenConnections,
-                DefaultSavePath,
-                DefaultListenPort,
-                DefaultMaxDownloadSpeed,
-                DefaultMaxUploadSpeed);
+            return new EngineSettings(DefaultSavePath,
+                                     DefaultUseuPnP,
+                                     DefaultMaxConnections,
+                                     DefaultMaxHalfOpenConnections,
+                                     DefaultListenPort,
+                                     DefaultMaxDownloadSpeed,
+                                     DefaultMaxUploadSpeed);
         }
         #endregion
     }

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

Reply via email to