void HandleShouldStart(object sender, ShouldStartEventArgs e)
        {
            if (MaxDownloads <= 0)
                return;

            TorrentController c = ServiceManager.Get <TorrentController> ();
            int count = 0;
            c.Torrents.ForEach (delegate (Download d) {
                if (d.Manager.State == TorrentState.Downloading)
                    count++;
            });

            if (count >= MaxDownloads) {
                e.ShouldStart = false;
                e.Download.Queue ();
            }
        }
Example #2
0
        public void Start()
        {
            EventHandler <ShouldStartEventArgs> h = ShouldStart;

            if (h != null)
            {
                ShouldStartEventArgs e = new ShouldStartEventArgs(this);
                h(this, e);
                if (!e.ShouldStart)
                {
                    return;
                }
            }
            Active = true;
            manager.Start();
            manager.Engine.ConnectionManager.PeerMessageTransferred += HandlePeerMessageTransferred;

            Event.Raise(Started, this, EventArgs.Empty);
            State = manager.Complete ? State.Seeding : State.Downloading;
        }
        void HandleShouldStart(object sender, ShouldStartEventArgs e)
        {
            if (MaxDownloads <= 0)
            {
                return;
            }

            TorrentController c = ServiceManager.Get <TorrentController> ();
            int count           = 0;

            c.Torrents.ForEach(delegate(Download d) {
                if (d.Manager.State == TorrentState.Downloading)
                {
                    count++;
                }
            });

            if (count >= MaxDownloads)
            {
                e.ShouldStart = false;
                e.Download.Queue();
            }
        }
Example #4
0
        public void Start()
        {
            EventHandler <ShouldStartEventArgs> h = ShouldStart;
            if (h != null) {
                ShouldStartEventArgs e = new ShouldStartEventArgs (this);
                h (this, e);
                if (!e.ShouldStart)
                    return;
            }
            Active = true;
            manager.Start ();
            manager.Engine.ConnectionManager.PeerMessageTransferred += HandlePeerMessageTransferred;

            Event.Raise (Started, this, EventArgs.Empty);
            State = manager.Complete ? State.Seeding : State.Downloading;
        }