* Removed Content and moved stuff to DownloadWrapper and FileList.

* Using a char buffer instead of std::string in
Handshake::prepare_key_plus_pad().


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@813 e378c898-3ddf-0310-93e7-cc216c733640
This commit is contained in:
rakshasa
2006-12-02 09:16:36 +00:00
parent c992fa60df
commit e4db1cacc2
10 changed files with 20 additions and 19 deletions
+2 -2
View File
@@ -227,7 +227,7 @@ Download::priority_to_string(uint32_t p) {
float
Download::distributed_copies() const {
const uint8_t* avail = m_download.chunks_seen();
const uint8_t* end = avail + m_download.chunks_total();
const uint8_t* end = avail + m_download.file_list()->size_chunks();
if (avail == NULL)
return 0;
@@ -243,7 +243,7 @@ Download::distributed_copies() const {
num = 1;
}
return minAvail + 1 - (float)num / m_download.chunks_total();
return minAvail + 1 - (float)num / m_download.file_list()->size_chunks();
}
void
+2 -1
View File
@@ -43,6 +43,7 @@
#include <torrent/hash_string.h>
#include <torrent/tracker_list.h>
#include <torrent/torrent.h>
#include <torrent/data/file_list.h>
#include "utils/variable_map.h"
@@ -66,7 +67,7 @@ public:
bool is_open() const { return m_download.is_open(); }
bool is_active() const { return m_download.is_active(); }
bool is_done() const { return m_download.chunks_done() == m_download.chunks_total(); }
bool is_done() const { return m_download.file_list()->is_done(); }
bool is_downloading() const { return is_active() && !is_done(); }
bool is_seeding() const { return is_active() && is_done(); }
+1 -1
View File
@@ -296,7 +296,7 @@ DownloadFactory::initialize_rtorrent(Download* download, torrent::Object* rtorre
download->download()->up_rate()->set_total(rtorrent->get_key_value("total_uploaded"));
if (rtorrent->has_key_value("chunks_done"))
download->download()->set_chunks_done(std::min<uint32_t>(rtorrent->get_key_value("chunks_done"), download->download()->chunks_total()));
download->download()->set_chunks_done(std::min<uint32_t>(rtorrent->get_key_value("chunks_done"), download->download()->file_list()->completed_chunks()));
if (!rtorrent->has_key_value("ignore_commands"))
rtorrent->insert_key("ignore_commands", (int64_t)0);
+1 -1
View File
@@ -107,7 +107,7 @@ DownloadStore::save(Download* d) {
// Move this somewhere else?
d->bencode()->get_key("rtorrent").insert_key("total_uploaded", d->download()->up_rate()->total());
d->bencode()->get_key("rtorrent").insert_key("chunks_done", d->download()->chunks_done());
d->bencode()->get_key("rtorrent").insert_key("chunks_done", d->download()->file_list()->completed_chunks());
torrent::Object& resumeObject = d->download()->bencode()->get_key("libtorrent_resume");
+2 -2
View File
@@ -181,7 +181,7 @@ print_download_status(char* first, char* last, core::Download* d) {
if (d->is_hash_checking()) {
first = print_buffer(first, last, "Checking hash [%2i%%]",
(d->download()->chunks_hashed() * 100) / d->download()->chunks_total());
(d->download()->chunks_hashed() * 100) / d->download()->file_list()->size_chunks());
} else if (d->tracker_list()->is_busy() && d->tracker_list()->focus() < d->tracker_list()->size()) {
torrent::TrackerList* tl = d->tracker_list();
@@ -220,7 +220,7 @@ print_download_percentage_done(char* first, char* last, core::Download* d) {
//return print_buffer(first, last, "[--%%]");
return print_buffer(first, last, " ");
else
return print_buffer(first, last, "[%2u%%]", (d->download()->chunks_done() * 100) / d->download()->chunks_total());
return print_buffer(first, last, "[%2u%%]", (d->download()->file_list()->completed_chunks() * 100) / d->download()->file_list()->size_chunks());
}
char*
+4 -4
View File
@@ -73,7 +73,7 @@ WindowDownloadChunksSeen::redraw() {
const uint8_t* seen = m_download->download()->chunks_seen();
if (seen == NULL || m_download->download()->bitfield()->empty()) {
if (seen == NULL || m_download->download()->file_list()->bitfield()->empty()) {
m_canvas->print(2, 2, "Not available.");
return;
}
@@ -88,9 +88,9 @@ WindowDownloadChunksSeen::redraw() {
*m_focus = std::min(*m_focus, max_focus());
const uint8_t* chunk = seen + *m_focus * chunks_per_row();
const uint8_t* last = seen + m_download->download()->chunks_total();
const uint8_t* last = seen + m_download->download()->file_list()->size_chunks();
const torrent::Bitfield* bitfield = m_download->download()->bitfield();
const torrent::Bitfield* bitfield = m_download->download()->file_list()->bitfield();
const torrent::TransferList* transfers = m_download->download()->transfer_list();
std::vector<torrent::BlockList*> transferChunks(transfers->size(), 0);
@@ -138,7 +138,7 @@ WindowDownloadChunksSeen::rows() const {
if (m_canvas->width() < 18)
return 0;
return (m_download->download()->chunks_total() + chunks_per_row() - 1) / chunks_per_row();
return (m_download->download()->file_list()->size_chunks() + chunks_per_row() - 1) / chunks_per_row();
}
}
+1 -1
View File
@@ -98,7 +98,7 @@ WindowFileList::redraw() {
Range range = rak::advance_bidirectional<unsigned int>(0, *m_focus, fl->size_files(), m_canvas->height() - pos);
while (range.first != range.second) {
torrent::File* e = fl->at_index(range.first);
torrent::File* e = *(fl->begin() + range.first);
std::string path = e->path()->as_string();
+2 -2
View File
@@ -91,7 +91,7 @@ WindowPeerList::redraw() {
m_list->end(),
m_canvas->height() - y);
if (m_download->download()->chunks_total() <= 0)
if (m_download->download()->file_list()->size_chunks() <= 0)
throw std::logic_error("WindowPeerList::redraw() m_slotChunksTotal() returned invalid value");
while (range.first != range.second) {
@@ -151,7 +151,7 @@ WindowPeerList::redraw() {
int
WindowPeerList::done_percentage(torrent::Peer& p) {
int chunks = m_download->download()->chunks_total();
int chunks = m_download->download()->file_list()->size_chunks();
return chunks ? (100 * p.chunks_done()) / chunks : 0;
}
+1 -1
View File
@@ -157,7 +157,7 @@ Download::create_info() {
element->push_column("Tied to file:", te_variable_string("tied_to_file"));
element->push_back("");
element->push_column("Chunks:", te_value(&torrent::Download::chunks_done), " / ", te_value(&torrent::Download::chunks_total), " * ", te_value(&torrent::Download::chunks_size));
element->push_column("Chunks:", te_value(&torrent::FileList::completed_chunks), " / ", te_value(&torrent::FileList::size_chunks), " * ", te_value(&torrent::FileList::chunk_size));
element->push_column("Priority:", te_variable_value("priority"));
element->push_column("State changed:", te_variable_value("state_changed", value_base::flag_timer | value_base::flag_elapsed));
+4 -4
View File
@@ -181,7 +181,7 @@ ElementFileList::receive_priority() {
if (m_focus >= fl->size_files())
return;
torrent::File* file = fl->at_index(m_focus);
torrent::File* file = *(fl->begin() + m_focus);
file->set_priority(next_priority(file->priority()));
@@ -199,10 +199,10 @@ ElementFileList::receive_change_all() {
if (m_focus >= fl->size_files())
return;
Priority p = next_priority(fl->at_index(m_focus)->priority());
Priority p = next_priority((*(fl->begin() + m_focus))->priority());
for (int i = 0, last = fl->size_files(); i != last; ++i)
fl->at_index(i)->set_priority(p);
for (torrent::FileList::iterator itr = fl->begin(), last = fl->end(); itr != last; ++itr)
(*itr)->set_priority(p);
m_download->download()->update_priorities();
m_window->mark_dirty();