* 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
+3 -3
View File
@@ -85,10 +85,10 @@ CommandScheduler::erase(iterator itr) {
void
CommandScheduler::call_item(value_type item) {
if (item->is_queued())
throw torrent::internal_error("CommandScheduler::call_item(...) called but item is still queued.");
throw torrent::client_error("CommandScheduler::call_item(...) called but item is still queued.");
if (std::find(begin(), end(), item) == end())
throw torrent::internal_error("CommandScheduler::call_item(...) called but the item isn't in the scheduler.");
throw torrent::client_error("CommandScheduler::call_item(...) called but the item isn't in the scheduler.");
// Remove the item before calling the command if it should be
// removed.
@@ -110,7 +110,7 @@ CommandScheduler::call_item(value_type item) {
}
if (next <= cachedTime)
throw torrent::internal_error("CommandScheduler::call_item(...) tried to schedule a zero interval item.");
throw torrent::client_error("CommandScheduler::call_item(...) tried to schedule a zero interval item.");
item->enable(next);
}