コード例 #1
0
        public SimpleTorrentManager(ITrackable trackable, IPeerComparer comparer, TrackerServer tracker)
        {
            Comparer  = comparer;
            Trackable = trackable;
            Tracker   = tracker;

            Peers     = new Dictionary <object, Peer> ();
            PeersList = new List <Peer> ();
            Random    = new Random();
        }
コード例 #2
0
 public SimpleTorrentManager(ITrackable trackable, IPeerComparer comparer, Tracker tracker)
 {
     this.comparer = comparer;
     this.trackable = trackable;
     this.tracker = tracker;
     complete = new BEncodedNumber(0);
     downloaded = new BEncodedNumber(0);
     incomplete = new BEncodedNumber(0);
     peers = new Dictionary<object, Peer>();
     random = new Random();
 }
コード例 #3
0
 public SimpleTorrentManager(ITrackable trackable, IPeerComparer comparer, Tracker tracker)
 {
     this.comparer  = comparer;
     this.trackable = trackable;
     this.tracker   = tracker;
     complete       = new BEncodedNumber(0);
     downloaded     = new BEncodedNumber(0);
     incomplete     = new BEncodedNumber(0);
     peers          = new Dictionary <object, Peer>();
     random         = new Random();
 }
コード例 #4
0
 public SimpleTorrentManager(ITrackable trackable, IPeerComparer comparer, Tracker tracker)
 {
     _comparer   = comparer;
     _trackable  = trackable;
     _tracker    = tracker;
     _complete   = new BEncodedNumber(0);
     _downloaded = new BEncodedNumber(0);
     _incomplete = new BEncodedNumber(0);
     _peers      = new Dictionary <object, Peer>();
     _random     = new Random();
 }
コード例 #5
0
 public SimpleTorrentManager(ITrackable trackable, IPeerComparer comparer, Tracker tracker)
 {
     _comparer = comparer;
     _trackable = trackable;
     _tracker = tracker;
     _complete = new BEncodedNumber(0);
     _downloaded = new BEncodedNumber(0);
     _incomplete = new BEncodedNumber(0);
     _peers = new Dictionary<object, Peer>();
     _random = new Random();
 }
コード例 #6
0
        /// <summary>
        /// Adds the trackable to the server
        /// </summary>
        /// <param name="trackable">The trackable to add</param>
        /// <param name="comparer">The comparer used to decide whether two peers are the same.</param>
        /// <returns></returns>
        public bool Add(ITrackable trackable, IPeerComparer comparer)
        {
            CheckDisposed();
            if (trackable == null)
            {
                throw new ArgumentNullException(nameof(trackable));
            }

            lock (Torrents) {
                if (Torrents.ContainsKey(trackable.InfoHash))
                {
                    return(false);
                }

                Torrents.Add(trackable.InfoHash, new SimpleTorrentManager(trackable, comparer, this));
            }

            return(true);
        }
コード例 #7
0
ファイル: Tracker.cs プロジェクト: mattbab/OctoTorrent
        public bool Add(ITrackable trackable, IPeerComparer comparer)
        {
            CheckDisposed();
            if (trackable == null)
            {
                throw new ArgumentNullException("trackable");
            }

            lock (torrents)
            {
                if (torrents.ContainsKey(trackable.InfoHash))
                {
                    return(false);
                }

                torrents.Add(trackable.InfoHash, new SimpleTorrentManager(trackable, comparer, this));
            }

            Debug.WriteLine(string.Format("Tracking Torrent: {0}", trackable.Name));
            return(true);
        }