Inheritance: MonoTorrent.Client.PeerListener
        public BitTorrentFileTransferProvider(ILoggingService loggingService)
        {
            this.loggingService = loggingService;
            MonoTorrent.Client.Logger.AddListener(new System.Diagnostics.ConsoleTraceListener());

            string         downloadPath = Core.Settings.IncompleteDownloadDir;
            EngineSettings settings     = new EngineSettings(downloadPath, 1);

            this.torrentDefaults = new TorrentSettings(4, 60, 0, 0);
            this.listener        = new MeshworkPeerConnectionListener();
            this.engine          = new ClientEngine(settings, this.listener);

                        #if RIDICULOUS_DEBUG_OUTPUT
            engine.ConnectionManager.PeerMessageTransferred += delegate(object sender, PeerMessageEventArgs e) {
                LoggingService.LogDebug("{0}: {1}", e.Direction, e.Message.GetType().Name);
            };
                        #endif
        }
        public BitTorrentFileTransferProvider()
        {
            MonoTorrent.Client.Logger.AddListener(new System.Diagnostics.ConsoleTraceListener());

            string downloadPath = Core.Settings.IncompleteDownloadDir;
            EngineSettings settings = new EngineSettings (downloadPath, 1);

            torrentDefaults = new TorrentSettings (4, 60, 0, 0);

            listener = new MeshworkPeerConnectionListener ();
            engine = new ClientEngine(settings, listener);

            Core.FinishedLoading += delegate {
                Core.FileTransferManager.FileTransferRemoved += Core_FileTransferRemoved;
            };

            #if RIDICULOUS_DEBUG_OUTPUT
            engine.ConnectionManager.PeerMessageTransferred += delegate (object sender, PeerMessageEventArgs e) {
                LoggingService.LogDebug("{0}: {1}", e.Direction, e.Message.GetType().Name);
            };
            #endif
        }