[freenet-cvs] r18303 - in trunk/freenet/src/freenet: io/xfer node node/updater
toad at freenetproject.org
toad at freenetproject.org
Sat Mar 1 21:17:09 UTC 2008
Author: toad
Date: 2008-03-01 21:17:08 +0000 (Sat, 01 Mar 2008)
New Revision: 18303
Modified:
trunk/freenet/src/freenet/io/xfer/BulkReceiver.java
trunk/freenet/src/freenet/io/xfer/BulkTransmitter.java
trunk/freenet/src/freenet/node/DarknetPeerNode.java
trunk/freenet/src/freenet/node/OpennetManager.java
trunk/freenet/src/freenet/node/updater/UpdateOverMandatoryManager.java
Log:
Bulk* now supports a ByteCounter.
Modified: trunk/freenet/src/freenet/io/xfer/BulkReceiver.java
===================================================================
--- trunk/freenet/src/freenet/io/xfer/BulkReceiver.java 2008-03-01 21:08:07 UTC (rev 18302)
+++ trunk/freenet/src/freenet/io/xfer/BulkReceiver.java 2008-03-01 21:17:08 UTC (rev 18303)
@@ -3,6 +3,7 @@
* http://www.gnu.org/ for further details of the GPL. */
package freenet.io.xfer;
+import freenet.io.comm.ByteCounter;
import freenet.io.comm.DMT;
import freenet.io.comm.DisconnectedException;
import freenet.io.comm.Message;
@@ -29,12 +30,14 @@
private boolean sentCancel;
/** Not persistent over reboots */
final long peerBootID;
+ private final ByteCounter ctr;
- public BulkReceiver(PartiallyReceivedBulk prb, PeerContext peer, long uid) {
+ public BulkReceiver(PartiallyReceivedBulk prb, PeerContext peer, long uid, ByteCounter ctr) {
this.prb = prb;
this.peer = peer;
this.uid = uid;
this.peerBootID = peer.getBootID();
+ this.ctr = ctr;
}
public void onAborted() {
@@ -43,7 +46,7 @@
sentCancel = true;
}
try {
- peer.sendAsync(DMT.createFNPBulkReceiveAborted(uid), null, 0, null);
+ peer.sendAsync(DMT.createFNPBulkReceiveAborted(uid), null, 0, ctr);
} catch (NotConnectedException e) {
// Cool
}
@@ -59,7 +62,7 @@
MessageFilter mfPacket = MessageFilter.create().setSource(peer).setType(DMT.FNPBulkPacketSend) .setField(DMT.UID, uid).setTimeout(TIMEOUT);
if(prb.hasWholeFile()) {
try {
- peer.sendAsync(DMT.createFNPBulkReceivedAll(uid), null, 0, null);
+ peer.sendAsync(DMT.createFNPBulkReceivedAll(uid), null, 0, ctr);
} catch (NotConnectedException e) {
// Ignore, we have the data.
}
@@ -67,7 +70,7 @@
}
Message m;
try {
- m = prb.usm.waitFor(mfSendKilled.or(mfPacket), null);
+ m = prb.usm.waitFor(mfSendKilled.or(mfPacket), ctr);
} catch (DisconnectedException e) {
prb.abort(RetrievalException.SENDER_DISCONNECTED, "Sender disconnected");
return false;
Modified: trunk/freenet/src/freenet/io/xfer/BulkTransmitter.java
===================================================================
--- trunk/freenet/src/freenet/io/xfer/BulkTransmitter.java 2008-03-01 21:08:07 UTC (rev 18302)
+++ trunk/freenet/src/freenet/io/xfer/BulkTransmitter.java 2008-03-01 21:17:08 UTC (rev 18303)
@@ -4,6 +4,7 @@
package freenet.io.xfer;
import freenet.io.comm.AsyncMessageFilterCallback;
+import freenet.io.comm.ByteCounter;
import freenet.io.comm.DMT;
import freenet.io.comm.DisconnectedException;
import freenet.io.comm.Message;
@@ -47,6 +48,7 @@
final boolean noWait;
private long finishTime=-1;
private String cancelReason;
+ private final ByteCounter ctr;
/**
* Create a bulk data transmitter.
@@ -57,12 +59,13 @@
* @param noWait If true, don't wait for an FNPBulkReceivedAll, return as soon as we've sent everything.
* @throws DisconnectedException If the peer we are trying to send to becomes disconnected.
*/
- public BulkTransmitter(PartiallyReceivedBulk prb, PeerContext peer, long uid, DoubleTokenBucket masterThrottle, boolean noWait) throws DisconnectedException {
+ public BulkTransmitter(PartiallyReceivedBulk prb, PeerContext peer, long uid, DoubleTokenBucket masterThrottle, boolean noWait, ByteCounter ctr) throws DisconnectedException {
this.prb = prb;
this.peer = peer;
this.uid = uid;
this.masterThrottle = masterThrottle;
this.noWait = noWait;
+ this.ctr = ctr;
peerBootID = peer.getBootID();
// Need to sync on prb while doing both operations, to avoid race condition.
// Specifically, we must not get calls to blockReceived() until blocksNotSentButPresent
@@ -153,7 +156,7 @@
sentCancel = true;
}
try {
- peer.sendAsync(DMT.createFNPBulkSendAborted(uid), null, 0, null);
+ peer.sendAsync(DMT.createFNPBulkSendAborted(uid), null, 0, ctr);
} catch (NotConnectedException e) {
// Cool
}
@@ -245,7 +248,7 @@
// Congestion control and bandwidth limiting
try {
peer.getThrottle().sendThrottledMessage(DMT.createFNPBulkPacketSend(uid, blockNo, buf), peer,
- masterThrottle, prb.blockSize, null);
+ masterThrottle, prb.blockSize, ctr);
synchronized(this) {
blocksNotSentButPresent.setBit(blockNo, false);
}
Modified: trunk/freenet/src/freenet/node/DarknetPeerNode.java
===================================================================
--- trunk/freenet/src/freenet/node/DarknetPeerNode.java 2008-03-01 21:08:07 UTC (rev 18302)
+++ trunk/freenet/src/freenet/node/DarknetPeerNode.java 2008-03-01 21:17:08 UTC (rev 18303)
@@ -842,7 +842,7 @@
throw new Error("Impossible: FileNotFoundException opening with RAF with rw! "+e, e);
}
prb = new PartiallyReceivedBulk(node.usm, size, Node.PACKET_SIZE, data, false);
- receiver = new BulkReceiver(prb, DarknetPeerNode.this, uid);
+ receiver = new BulkReceiver(prb, DarknetPeerNode.this, uid, null);
// FIXME make this persistent
node.executor.execute(new Runnable() {
public void run() {
@@ -881,7 +881,7 @@
public void send() throws DisconnectedException {
prb = new PartiallyReceivedBulk(node.usm, size, Node.PACKET_SIZE, data, true);
- transmitter = new BulkTransmitter(prb, DarknetPeerNode.this, uid, node.outputThrottle, false);
+ transmitter = new BulkTransmitter(prb, DarknetPeerNode.this, uid, node.outputThrottle, false, null);
if(logMINOR)
Logger.minor(this, "Sending "+uid);
node.executor.execute(new Runnable() {
Modified: trunk/freenet/src/freenet/node/OpennetManager.java
===================================================================
--- trunk/freenet/src/freenet/node/OpennetManager.java 2008-03-01 21:08:07 UTC (rev 18302)
+++ trunk/freenet/src/freenet/node/OpennetManager.java 2008-03-01 21:17:08 UTC (rev 18303)
@@ -508,7 +508,7 @@
new PartiallyReceivedBulk(node.usm, padded.length, Node.PACKET_SIZE, raf, true);
try {
BulkTransmitter bt =
- new BulkTransmitter(prb, peer, xferUID, node.outputThrottle, true);
+ new BulkTransmitter(prb, peer, xferUID, node.outputThrottle, true, null);
bt.send();
} catch (DisconnectedException e) {
throw new NotConnectedException(e);
@@ -611,7 +611,7 @@
byte[] buf = new byte[paddedLength];
ByteArrayRandomAccessThing raf = new ByteArrayRandomAccessThing(buf);
PartiallyReceivedBulk prb = new PartiallyReceivedBulk(node.usm, buf.length, Node.PACKET_SIZE, raf, false);
- BulkReceiver br = new BulkReceiver(prb, source, xferUID);
+ BulkReceiver br = new BulkReceiver(prb, source, xferUID, null);
if(logMINOR)
Logger.minor(this, "Receiving noderef (reply="+isReply+") as bulk transfer for request uid "+uid+" with transfer "+xferUID+" from "+source);
if(!br.receive()) {
Modified: trunk/freenet/src/freenet/node/updater/UpdateOverMandatoryManager.java
===================================================================
--- trunk/freenet/src/freenet/node/updater/UpdateOverMandatoryManager.java 2008-03-01 21:08:07 UTC (rev 18302)
+++ trunk/freenet/src/freenet/node/updater/UpdateOverMandatoryManager.java 2008-03-01 21:17:08 UTC (rev 18303)
@@ -494,7 +494,7 @@
final BulkTransmitter bt;
try {
- bt = new BulkTransmitter(prb, source, uid, updateManager.node.outputThrottle, false);
+ bt = new BulkTransmitter(prb, source, uid, updateManager.node.outputThrottle, false, null);
} catch (DisconnectedException e) {
Logger.error(this, "Peer "+source+" asked us for the blob file for the revocation key, then disconnected: "+e, e);
return true;
@@ -624,7 +624,7 @@
PartiallyReceivedBulk prb = new PartiallyReceivedBulk(updateManager.node.getUSM(), length,
Node.PACKET_SIZE, raf, false);
- final BulkReceiver br = new BulkReceiver(prb, source, uid);
+ final BulkReceiver br = new BulkReceiver(prb, source, uid, null);
updateManager.node.executor.execute(new Runnable() {
@@ -867,7 +867,7 @@
final BulkTransmitter bt;
try {
- bt = new BulkTransmitter(prb, source, uid, updateManager.node.outputThrottle, false);
+ bt = new BulkTransmitter(prb, source, uid, updateManager.node.outputThrottle, false, null);
} catch (DisconnectedException e) {
Logger.error(this, "Peer "+source+" asked us for the blob file for the main jar, then disconnected: "+e, e);
return true;
@@ -1006,7 +1006,7 @@
PartiallyReceivedBulk prb = new PartiallyReceivedBulk(updateManager.node.getUSM(), length,
Node.PACKET_SIZE, raf, false);
- final BulkReceiver br = new BulkReceiver(prb, source, uid);
+ final BulkReceiver br = new BulkReceiver(prb, source, uid, null);
updateManager.node.executor.execute(new Runnable() {
More information about the cvs
mailing list