forked from I2P_Developers/i2p.i2p
i2psnark: Don't say 'download finished' unless we downloaded something
atomics
This commit is contained in:
@ -33,6 +33,7 @@ import java.util.Map;
|
|||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.concurrent.LinkedBlockingDeque;
|
import java.util.concurrent.LinkedBlockingDeque;
|
||||||
|
import java.util.concurrent.atomic.AtomicLong;
|
||||||
|
|
||||||
import net.i2p.I2PAppContext;
|
import net.i2p.I2PAppContext;
|
||||||
import net.i2p.data.ByteArray;
|
import net.i2p.data.ByteArray;
|
||||||
@ -87,8 +88,8 @@ class PeerCoordinator implements PeerListener
|
|||||||
// final static int MAX_DOWNLOADERS = MAX_CONNECTIONS;
|
// final static int MAX_DOWNLOADERS = MAX_CONNECTIONS;
|
||||||
// int downloaders = 0;
|
// int downloaders = 0;
|
||||||
|
|
||||||
private long uploaded;
|
private final AtomicLong uploaded = new AtomicLong();
|
||||||
private long downloaded;
|
private final AtomicLong downloaded = new AtomicLong();
|
||||||
final static int RATE_DEPTH = 3; // make following arrays RATE_DEPTH long
|
final static int RATE_DEPTH = 3; // make following arrays RATE_DEPTH long
|
||||||
private final long uploaded_old[] = {-1,-1,-1};
|
private final long uploaded_old[] = {-1,-1,-1};
|
||||||
private final long downloaded_old[] = {-1,-1,-1};
|
private final long downloaded_old[] = {-1,-1,-1};
|
||||||
@ -279,7 +280,7 @@ class PeerCoordinator implements PeerListener
|
|||||||
*/
|
*/
|
||||||
public long getUploaded()
|
public long getUploaded()
|
||||||
{
|
{
|
||||||
return uploaded;
|
return uploaded.get();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -287,7 +288,7 @@ class PeerCoordinator implements PeerListener
|
|||||||
* @since 0.9.15
|
* @since 0.9.15
|
||||||
*/
|
*/
|
||||||
public void setUploaded(long up) {
|
public void setUploaded(long up) {
|
||||||
uploaded = up;
|
uploaded.set(up);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -295,7 +296,7 @@ class PeerCoordinator implements PeerListener
|
|||||||
*/
|
*/
|
||||||
public long getDownloaded()
|
public long getDownloaded()
|
||||||
{
|
{
|
||||||
return downloaded;
|
return downloaded.get();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -944,7 +945,7 @@ class PeerCoordinator implements PeerListener
|
|||||||
*/
|
*/
|
||||||
public void uploaded(Peer peer, int size)
|
public void uploaded(Peer peer, int size)
|
||||||
{
|
{
|
||||||
uploaded += size;
|
uploaded.addAndGet(size);
|
||||||
|
|
||||||
//if (listener != null)
|
//if (listener != null)
|
||||||
// listener.peerChange(this, peer);
|
// listener.peerChange(this, peer);
|
||||||
@ -955,7 +956,7 @@ class PeerCoordinator implements PeerListener
|
|||||||
*/
|
*/
|
||||||
public void downloaded(Peer peer, int size)
|
public void downloaded(Peer peer, int size)
|
||||||
{
|
{
|
||||||
downloaded += size;
|
downloaded.addAndGet(size);
|
||||||
|
|
||||||
//if (listener != null)
|
//if (listener != null)
|
||||||
// listener.peerChange(this, peer);
|
// listener.peerChange(this, peer);
|
||||||
@ -1004,7 +1005,7 @@ class PeerCoordinator implements PeerListener
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Oops. We didn't actually download this then... :(
|
// Oops. We didn't actually download this then... :(
|
||||||
downloaded -= metainfo.getPieceLength(piece);
|
downloaded.addAndGet(0 - metainfo.getPieceLength(piece));
|
||||||
_log.warn("Got BAD piece " + piece + "/" + metainfo.getPieces() + " from " + peer + " for " + metainfo.getName());
|
_log.warn("Got BAD piece " + piece + "/" + metainfo.getPieces() + " from " + peer + " for " + metainfo.getName());
|
||||||
return false; // No need to announce BAD piece to peers.
|
return false; // No need to announce BAD piece to peers.
|
||||||
}
|
}
|
||||||
|
@ -1976,6 +1976,7 @@ public class SnarkManager implements CompleteListener {
|
|||||||
if (meta.getFiles() != null)
|
if (meta.getFiles() != null)
|
||||||
buf.append('/');
|
buf.append('/');
|
||||||
buf.append("\">").append(base).append("</a>");
|
buf.append("\">").append(base).append("</a>");
|
||||||
|
if (snark.getDownloaded() > 0)
|
||||||
addMessageNoEscape(_("Download finished: {0}", buf.toString())); // + " (" + _("size: {0}B", DataHelper.formatSize2(len)) + ')');
|
addMessageNoEscape(_("Download finished: {0}", buf.toString())); // + " (" + _("size: {0}B", DataHelper.formatSize2(len)) + ')');
|
||||||
updateStatus(snark);
|
updateStatus(snark);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user