forked from premiere/premiere-libtorrent
*** empty log message ***
This commit is contained in:
parent
2d4c01ec65
commit
1bc22888a8
|
@ -168,7 +168,6 @@ namespace libtorrent
|
||||||
// piece-block, or if it's queued for downloading by some client
|
// piece-block, or if it's queued for downloading by some client
|
||||||
// or if it already has been successfully downlloaded
|
// or if it already has been successfully downlloaded
|
||||||
bool is_downloading(piece_block block) const;
|
bool is_downloading(piece_block block) const;
|
||||||
|
|
||||||
bool is_finished(piece_block block) const;
|
bool is_finished(piece_block block) const;
|
||||||
|
|
||||||
// marks this piece-block as queued for downloading
|
// marks this piece-block as queued for downloading
|
||||||
|
|
|
@ -285,6 +285,12 @@ namespace libtorrent
|
||||||
// all seeds and let the tracker know we're finished.
|
// all seeds and let the tracker know we're finished.
|
||||||
void completed();
|
void completed();
|
||||||
|
|
||||||
|
// this is called when the torrent has finished. i.e.
|
||||||
|
// all the pieces we have not filtered have been downloaded.
|
||||||
|
// If no pieces are filtered, this is called first and then
|
||||||
|
// completed() is called immediately after it.
|
||||||
|
void finished();
|
||||||
|
|
||||||
bool verify_piece(int piece_index);
|
bool verify_piece(int piece_index);
|
||||||
|
|
||||||
// this is called from the peer_connection
|
// this is called from the peer_connection
|
||||||
|
|
|
@ -640,10 +640,10 @@ namespace libtorrent
|
||||||
int incomplete = -1;
|
int incomplete = -1;
|
||||||
|
|
||||||
try { complete = e["complete"].integer(); }
|
try { complete = e["complete"].integer(); }
|
||||||
catch(type_error& e) {}
|
catch(type_error&) {}
|
||||||
|
|
||||||
try { incomplete = e["incomplete"].integer(); }
|
try { incomplete = e["incomplete"].integer(); }
|
||||||
catch(type_error& e) {}
|
catch(type_error&) {}
|
||||||
|
|
||||||
requester().tracker_response(m_req, peer_list, interval, complete
|
requester().tracker_response(m_req, peer_list, interval, complete
|
||||||
, incomplete);
|
, incomplete);
|
||||||
|
|
|
@ -992,6 +992,8 @@ namespace libtorrent
|
||||||
m_torrent->filesystem().write(&m_recv_buffer[9], p.piece, p.start, p.length);
|
m_torrent->filesystem().write(&m_recv_buffer[9], p.piece, p.start, p.length);
|
||||||
|
|
||||||
bool was_seed = m_torrent->is_seed();
|
bool was_seed = m_torrent->is_seed();
|
||||||
|
bool was_finished = picker.num_filtered() + m_torrent->num_pieces()
|
||||||
|
== m_torrent->torrent_file().num_pieces();
|
||||||
|
|
||||||
picker.mark_as_finished(block_finished, m_socket->sender());
|
picker.mark_as_finished(block_finished, m_socket->sender());
|
||||||
|
|
||||||
|
@ -1004,6 +1006,17 @@ namespace libtorrent
|
||||||
if (verified)
|
if (verified)
|
||||||
{
|
{
|
||||||
m_torrent->announce_piece(p.piece);
|
m_torrent->announce_piece(p.piece);
|
||||||
|
assert(m_torrent->valid_metadata());
|
||||||
|
if (!was_finished
|
||||||
|
&& picker.num_filtered() + m_torrent->num_pieces()
|
||||||
|
== m_torrent->torrent_file().num_pieces())
|
||||||
|
{
|
||||||
|
// torrent finished
|
||||||
|
// i.e. all the pieces we're interested in have
|
||||||
|
// been downloaded. Release the files (they will open
|
||||||
|
// in read only mode if needed)
|
||||||
|
m_torrent->finished();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
@ -739,7 +739,8 @@ namespace libtorrent
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void torrent::completed()
|
// called when torrent is finished (all interested pieces downloaded)
|
||||||
|
void torrent::finished()
|
||||||
{
|
{
|
||||||
if (alerts().should_post(alert::info))
|
if (alerts().should_post(alert::info))
|
||||||
{
|
{
|
||||||
|
@ -748,11 +749,9 @@ namespace libtorrent
|
||||||
, "torrent has finished downloading"));
|
, "torrent has finished downloading"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// disconnect all seeds
|
// disconnect all seeds
|
||||||
for (peer_iterator i = m_connections.begin();
|
for (peer_iterator i = m_connections.begin();
|
||||||
i != m_connections.end();
|
i != m_connections.end(); ++i)
|
||||||
++i)
|
|
||||||
{
|
{
|
||||||
assert(i->second->associated_torrent() == this);
|
assert(i->second->associated_torrent() == this);
|
||||||
if (i->second->is_seed())
|
if (i->second->is_seed())
|
||||||
|
@ -760,7 +759,19 @@ namespace libtorrent
|
||||||
}
|
}
|
||||||
|
|
||||||
m_storage->release_files();
|
m_storage->release_files();
|
||||||
|
}
|
||||||
|
|
||||||
|
// called when torrent is complete (all pieces downloaded)
|
||||||
|
void torrent::completed()
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
if (alerts().should_post(alert::info))
|
||||||
|
{
|
||||||
|
alerts().post_alert(torrent_complete_alert(
|
||||||
|
get_handle()
|
||||||
|
, "torrent is complete"));
|
||||||
|
}
|
||||||
|
*/
|
||||||
// make the next tracker request
|
// make the next tracker request
|
||||||
// be a completed-event
|
// be a completed-event
|
||||||
m_event = tracker_request::completed;
|
m_event = tracker_request::completed;
|
||||||
|
|
Loading…
Reference in New Issue