Exemple #1
0
 public void Update(Core.BitField bf)
 {
     AllSet   = bf.all_set;
     Empty    = bf.empty;
     NoneSet  = bf.none_set;
     NumWords = bf.num_words;
     Size     = bf.size;
 }
Exemple #2
0
 public BitField(Core.BitField bf)
 {
     Update(bf);
     Parts = new ObservableCollection <Part>();
     for (int i = 0; i < Size; i++)
     {
         Parts.Add(new Part()
         {
             Id = i, Downloaded = false, Priority = 4
         });
     }
 }
Exemple #3
0
        public void Update(Core.TorrentStatus ts)
        {
            Name = ts.name;
            //Priority = ts.priority;
            //QueuePosition = ts.queue_position;
            TotalWanted  = ts.total_wanted;
            TotalDone    = ts.total_done;
            Progress     = ts.progress;
            DownloadRate = ts.download_rate;
            UploadRate   = ts.upload_rate;

            //ActiveTime = ts.active_time;
            //AddedTime = ts.added_time;
            //AllTimeDownload = ts.all_time_download;
            //AllTimeUpload = ts.all_time_upload;
            //AnnounceInterval = ts.announce_interval;
            //AutoManaged = ts.auto_managed;
            //BlockSize = ts.block_size;
            //CompletedTime = ts.completed_time;
            //ConnectionsLimit = ts.connections_limit;
            //ConnectCandidates = ts.connect_candidates;
            //CurrentTracker = ts.current_tracker;
            //DistributedCopies = ts.distributed_copies;
            //DistributedFraction = ts.distributed_fraction;
            //DistributedFullCopies = ts.distributed_full_copies;
            //DownloadPayloadRate = ts.download_payload_rate;
            //DownBandwidthQueue = ts.down_bandwidth_queue;
            Error = ts.error;
            //FinishedTime = ts.finished_time;
            //HasIncoming = ts.has_incoming;
            //HasMetadata = ts.has_metadata;
            //IpFilterApplies = ts.ip_filter_applies;
            IsFinished = ts.is_finished;
            IsSeeding  = ts.is_seeding;
            //LastScrape = ts.last_scrape;
            //LastSeenComplete = ts.last_seen_complete;
            //ListPeers = ts.list_peers;
            //ListSeeds = ts.list_seeds;
            //MovingStorage = ts.moving_storage;
            NeedSaveResume = ts.need_save_resume;
            //NextAnnounce = ts.next_announce;
            //NumComplete = ts.num_complete;
            //NumIncomplete = ts.num_incomplete;
            //NumPeers = ts.num_peers;
            NumPieces = ts.num_pieces;
            //NumSeeds = ts.num_seeds;
            //NumUploads = ts.num_uploads;
            Paused = ts.paused;
            //using (Core.BitField bf = ts.pieces)
            //{
            //    if (ReferenceEquals(null, Pieces))
            //    {
            //        Pieces = new BitField(bf);
            //    } else
            //    {
            //        Pieces.Update(bf);
            //    }
            //}
            //ProgressPpm = ts.progress_ppm;
            //SavePath = ts.save_path;
            //SeedingTime = ts.seeding_time;
            //SeedMode = ts.seed_mode;
            //SeedRank = ts.seed_rank;
            //SequentialDownload = ts.sequential_download;
            //ShareMode = ts.share_mode;
            State = (ts.paused) ? "Paused" : Classes.Utils.GiveMeStateFromEnum(ts.state);
            //StorageMode = Classes.Utils.GiveMeStorageModeFromEnum(ts.storage_mode);
            //SuperSeeding = ts.super_seeding;
            //TimeSinceDownload = ts.time_since_download;
            //TimeSinceUpload = ts.time_since_upload;
            TotalDownload = ts.total_download;
            //TotalFailedBytes = ts.total_failed_bytes;
            //TotalPayloadDownload = ts.total_payload_download;
            //TotalPayloadUpload = ts.total_payload_upload;
            //TotalReduntantBytes = ts.total_reduntant_bytes;
            TotalUpload     = ts.total_upload;
            TotalWantedDone = ts.total_wanted_done;
            //UploadsLimit = ts.uploads_limit;
            //UploadMode = ts.upload_mode;
            //UploadPayloadRate = ts.upload_payload_rate;
            //UpBandwidthQueue = ts.up_bandwidth_queue;
            //using (Core.BitField vp = ts.verified_pieces)
            //{
            //    if (ReferenceEquals(null, VerifiedPieces))
            //    {
            //        VerifiedPieces = new BitField(vp);
            //    }
            //    else
            //    {
            //        VerifiedPieces.Update(vp);
            //    }
            //}

            using (Core.BitField bf = ts.pieces)
            {
                if (ReferenceEquals(null, Pieces))
                {
                    Pieces = new BitField(bf);
                }
                else
                {
                    Pieces.Update(bf);
                }

                foreach (Models.FileEntry item in FileList)
                {
                    foreach (Models.Part part in item.Pieces.Where(x => x.Downloaded == false))
                    {
                        bool sub = bf.op_Subscript(part.Id);
                        part.Downloaded = sub;
                        Pieces.Parts[part.Id].Downloaded = sub;
                    }
                }
            }
        }