* Removed core::HashQueue, using the "hashing" view and a function in

core::Manager instead.

* Added a new :rtorrent:hashing state so we can distinguish between
initial hashing and manual rehashes. The former is cleared if the
download is paused.

* Added a hash failed flag to core::Download. This is used to skip
entries in the hashing view that either failed to open or are in the
process of being erased from DownloadList.

* torrent::Bitfield::unset was incrementing, rather than decrementing,
the m_set counter.

* Replaced all torrent::internal_error's in rtorrent with
torrent::client_error.

* ^D now checks :rtorrent:state to decide whetever to stop or erase a
download. Downloads queued for hashing will now stop rather than be
deleted.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@688 e378c898-3ddf-0310-93e7-cc216c733640
This commit is contained in:
rakshasa
2006-05-13 00:18:50 +00:00
parent 65f3dda9ab
commit d4706da4d5
22 changed files with 177 additions and 346 deletions
+8 -3
View File
@@ -50,8 +50,8 @@ namespace torrent {
namespace core {
class DownloadStore;
class HashQueue;
class HttpQueue;
class View;
class Manager {
public:
@@ -65,9 +65,11 @@ public:
DownloadList* download_list() { return m_downloadList; }
DownloadStore* download_store() { return m_downloadStore; }
HashQueue* hash_queue() { return m_hashQueue; }
HttpQueue* http_queue() { return m_httpQueue; }
View* hashing_view() { return m_hashingView; }
void set_hashing_view(View* v);
PollManager* get_poll_manager() { return m_pollManager; }
Log& get_log_important() { return m_logImportant; }
Log& get_log_complete() { return m_logComplete; }
@@ -103,11 +105,14 @@ private:
void receive_http_failed(std::string msg);
void receive_hashing_changed();
DownloadList* m_downloadList;
DownloadStore* m_downloadStore;
HashQueue* m_hashQueue;
HttpQueue* m_httpQueue;
View* m_hashingView;
PollManager* m_pollManager;
Log m_logImportant;
Log m_logComplete;