* Minor cleanup in rtorrent.

* Changing priorities of closed torrents caused a crash due to empty
ChunkSelector, fixed.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@615 e378c898-3ddf-0310-93e7-cc216c733640
This commit is contained in:
rakshasa
2005-12-22 03:55:43 +00:00
parent 2c5151def5
commit 5a8a402745
7 changed files with 56 additions and 67 deletions
+20 -24
View File
@@ -46,10 +46,29 @@
namespace core {
Download::Download() :
Download::Download(torrent::Download d) :
m_download(d),
m_chunksFailed(0),
m_connectionLeech(torrent::Download::CONNECTION_LEECH),
m_connectionSeed(torrent::Download::CONNECTION_SEED) {
m_connTrackerSucceded = m_download.signal_tracker_succeded(sigc::bind(sigc::mem_fun(*this, &Download::receive_tracker_msg), ""));
m_connTrackerFailed = m_download.signal_tracker_failed(sigc::mem_fun(*this, &Download::receive_tracker_msg));
m_connStorageError = m_download.signal_storage_error(sigc::mem_fun(*this, &Download::receive_storage_error));
m_download.signal_chunk_failed(sigc::mem_fun(*this, &Download::receive_chunk_failed));
}
Download::~Download() {
if (!m_download.is_valid())
return;
m_connTrackerSucceded.disconnect();
m_connTrackerFailed.disconnect();
m_connStorageError.disconnect();
m_download = torrent::Download();
}
void
@@ -65,17 +84,6 @@ Download::start() {
m_download.start();
}
void
Download::set_download(torrent::Download d) {
m_download = d;
m_connTrackerSucceded = m_download.signal_tracker_succeded(sigc::bind(sigc::mem_fun(*this, &Download::receive_tracker_msg), ""));
m_connTrackerFailed = m_download.signal_tracker_failed(sigc::mem_fun(*this, &Download::receive_tracker_msg));
m_connStorageError = m_download.signal_storage_error(sigc::mem_fun(*this, &Download::receive_storage_error));
m_download.signal_chunk_failed(sigc::mem_fun(*this, &Download::receive_chunk_failed));
}
void
Download::set_root_directory(const std::string& d) {
m_download.set_root_dir(d +
@@ -93,18 +101,6 @@ Download::enable_udp_trackers(bool state) {
m_download.tracker(i).disable();
}
void
Download::release_download() {
if (!m_download.is_valid())
return;
m_connTrackerSucceded.disconnect();
m_connTrackerFailed.disconnect();
m_connStorageError.disconnect();
m_download = torrent::Download();
}
void
Download::receive_finished() {
m_download.set_connection_type(m_connectionSeed);