Author: toad
Date: 2006-01-25 22:07:20 +0000 (Wed, 25 Jan 2006)
New Revision: 7928
Modified:
branches/async-client/src/freenet/client/async/BaseClientPutter.java
branches/async-client/src/freenet/client/async/ClientPutter.java
branches/async-client/src/freenet/client/async/MultiPutCompletionCallback.java
branches/async-client/src/freenet/client/async/SimpleManifestPutter.java
branches/async-client/src/freenet/client/async/SingleFileInserter.java
branches/async-client/src/freenet/client/async/SplitFileInserter.java
Log:
Eliminate setCurrentState in favour of onTransition.
Modified: branches/async-client/src/freenet/client/async/BaseClientPutter.java
===================================================================
--- branches/async-client/src/freenet/client/async/BaseClientPutter.java
2006-01-25 22:02:03 UTC (rev 7927)
+++ branches/async-client/src/freenet/client/async/BaseClientPutter.java
2006-01-25 22:07:20 UTC (rev 7928)
@@ -6,6 +6,4 @@
super(priorityClass, scheduler);
}
- public abstract void setCurrentState(ClientPutState inserter);
-
}
Modified: branches/async-client/src/freenet/client/async/ClientPutter.java
===================================================================
--- branches/async-client/src/freenet/client/async/ClientPutter.java
2006-01-25 22:02:03 UTC (rev 7927)
+++ branches/async-client/src/freenet/client/async/ClientPutter.java
2006-01-25 22:07:20 UTC (rev 7928)
@@ -48,10 +48,6 @@
}
}
- public void setCurrentState(ClientPutState s) {
- currentState = s;
- }
-
public void onSuccess(ClientPutState state) {
finished = true;
currentState = null;
@@ -85,8 +81,11 @@
return uri;
}
- public void onTransition(ClientPutState oldState, ClientPutState
newState) {
- // Ignore
+ public synchronized void onTransition(ClientPutState oldState,
ClientPutState newState) {
+ if(currentState == oldState)
+ currentState = newState;
+ else
+ Logger.error(this, "onTransition: cur="+currentState+",
old="+oldState+", new="+newState);
}
public void onMetadata(Metadata m, ClientPutState state) {
Modified:
branches/async-client/src/freenet/client/async/MultiPutCompletionCallback.java
===================================================================
---
branches/async-client/src/freenet/client/async/MultiPutCompletionCallback.java
2006-01-25 22:02:03 UTC (rev 7927)
+++
branches/async-client/src/freenet/client/async/MultiPutCompletionCallback.java
2006-01-25 22:07:20 UTC (rev 7928)
@@ -18,13 +18,11 @@
private boolean finished;
private boolean started;
- public MultiPutCompletionCallback(PutCompletionCallback cb,
BaseClientPutter parent, boolean dontTellParent) {
+ public MultiPutCompletionCallback(PutCompletionCallback cb,
BaseClientPutter parent) {
this.cb = cb;
this.waitingFor = new LinkedList();
this.parent = parent;
finished = false;
- if(!dontTellParent)
- parent.setCurrentState(this);
}
public synchronized void onSuccess(ClientPutState state) {
Modified:
branches/async-client/src/freenet/client/async/SimpleManifestPutter.java
===================================================================
--- branches/async-client/src/freenet/client/async/SimpleManifestPutter.java
2006-01-25 22:02:03 UTC (rev 7927)
+++ branches/async-client/src/freenet/client/async/SimpleManifestPutter.java
2006-01-25 22:07:20 UTC (rev 7928)
@@ -101,11 +101,6 @@
gotAllMetadata();
}
}
-
- public void setCurrentState(ClientPutState inserter) {
- // Ignore
- }
-
}
private final HashMap putHandlersByName;
@@ -272,8 +267,4 @@
fail(new InserterException(InserterException.INTERNAL_ERROR));
}
- public void setCurrentState(ClientPutState inserter) {
- // Ignore
- }
-
}
Modified: branches/async-client/src/freenet/client/async/SingleFileInserter.java
===================================================================
--- branches/async-client/src/freenet/client/async/SingleFileInserter.java
2006-01-25 22:02:03 UTC (rev 7927)
+++ branches/async-client/src/freenet/client/async/SingleFileInserter.java
2006-01-25 22:07:20 UTC (rev 7928)
@@ -64,8 +64,6 @@
this.cb = cb;
this.dontTellParent = dontTellParent;
this.getCHKOnly = getCHKOnly;
- if(!dontTellParent)
- parent.setCurrentState(this);
}
public void start() throws InserterException {
@@ -174,7 +172,7 @@
dataPutter.schedule();
} else {
MultiPutCompletionCallback mcb =
- new MultiPutCompletionCallback(cb,
parent, dontTellParent);
+ new MultiPutCompletionCallback(cb,
parent);
SingleBlockInserter dataPutter = new
SingleBlockInserter(parent, data, codecNumber, FreenetURI.EMPTY_CHK_URI, ctx,
mcb, metadata, (int)origSize, -1, getCHKOnly);
Metadata meta = new
Metadata(Metadata.SIMPLE_REDIRECT, dataPutter.getURI(), block.clientMetadata);
Bucket metadataBucket;
@@ -199,17 +197,13 @@
// insert it. Then when the splitinserter has finished, and the
// metadata insert has finished too, tell the master callback.
if(reportMetadataOnly) {
- SplitFileInserter sfi = new SplitFileInserter(parent,
cb, data, bestCodec, block.clientMetadata, ctx, getCHKOnly, metadata, true);
+ SplitFileInserter sfi = new SplitFileInserter(parent,
cb, data, bestCodec, block.clientMetadata, ctx, getCHKOnly, metadata);
cb.onTransition(this, sfi);
- if(!dontTellParent)
- parent.setCurrentState(sfi);
sfi.start();
} else {
SplitHandler sh = new SplitHandler();
- SplitFileInserter sfi = new SplitFileInserter(parent,
sh, data, bestCodec, block.clientMetadata, ctx, getCHKOnly, metadata, true);
+ SplitFileInserter sfi = new SplitFileInserter(parent,
sh, data, bestCodec, block.clientMetadata, ctx, getCHKOnly, metadata);
sh.sfi = sfi;
- if(!dontTellParent)
- parent.setCurrentState(sh);
cb.onTransition(this, sh);
sfi.start();
}
Modified: branches/async-client/src/freenet/client/async/SplitFileInserter.java
===================================================================
--- branches/async-client/src/freenet/client/async/SplitFileInserter.java
2006-01-25 22:02:03 UTC (rev 7927)
+++ branches/async-client/src/freenet/client/async/SplitFileInserter.java
2006-01-25 22:07:20 UTC (rev 7928)
@@ -36,10 +36,8 @@
final boolean isMetadata;
private boolean finished;
- public SplitFileInserter(BaseClientPutter put, PutCompletionCallback
cb, Bucket data, Compressor bestCodec, ClientMetadata clientMetadata,
InserterContext ctx, boolean getCHKOnly, boolean isMetadata, boolean
dontTellParent) throws InserterException {
+ public SplitFileInserter(BaseClientPutter put, PutCompletionCallback
cb, Bucket data, Compressor bestCodec, ClientMetadata clientMetadata,
InserterContext ctx, boolean getCHKOnly, boolean isMetadata) throws
InserterException {
this.parent = put;
- if(!dontTellParent)
- parent.setCurrentState(this);
this.finished = false;
this.isMetadata = isMetadata;
this.cm = clientMetadata;