/* This code is part of Freenet. It is distributed under the GNU General
* Public License, version 2 (or at your option any later version). See
* http://www.gnu.org/ for further details of the GPL. */
package freenet.client.async;
import java.util.List;
import freenet.client.ClientMetadata;
import freenet.client.FetchException;
import freenet.client.InsertContext.CompatibilityMode;
import freenet.crypt.HashResult;
import freenet.keys.FreenetURI;
import freenet.keys.USK;
import freenet.node.RequestClient;
import freenet.support.compress.Compressor;
import freenet.support.io.ResumeFailedException;
/**
* Wrapper for a backgrounded USKFetcher.
*/
public class USKFetcherWrapper extends BaseClientGetter {
final USK usk;
public USKFetcherWrapper(USK usk, short prio, final RequestClient client) {
super(prio, new ClientBaseCallback() {
@Override
public void onResume(ClientContext context) {
throw new IllegalStateException();
}
@Override
public RequestClient getRequestClient() {
return client;
}
});
this.usk = usk;
}
@Override
public FreenetURI getURI() {
return usk.getURI();
}
@Override
public boolean isFinished() {
return false;
}
@Override
protected void innerNotifyClients(ClientContext context) {
// Do nothing
}
@Override
public void onSuccess(StreamGenerator streamGenerator, ClientMetadata clientMetadata, List<? extends Compressor> decompressors, ClientGetState state, ClientContext context) {
// Ignore; we don't do anything with it because we are running in the background.
}
@Override
public void onFailure(FetchException e, ClientGetState state, ClientContext context) {
// Ignore
}
@Override
public void onBlockSetFinished(ClientGetState state, ClientContext context) {
// Ignore
}
@Override
public void onTransition(ClientGetState oldState, ClientGetState newState, ClientContext context) {
// Ignore
}
@Override
public String toString() {
return super.toString()+ ':' +usk;
}
@Override
public void onExpectedMIME(ClientMetadata meta, ClientContext context) {
// Ignore
}
@Override
public void onExpectedSize(long size, ClientContext context) {
// Ignore
}
@Override
public void onFinalizedMetadata() {
// Ignore
}
@Override
public void cancel(ClientContext context) {
super.cancel();
}
@Override
protected void innerToNetwork(ClientContext context) {
// Ignore
}
@Override
public void onExpectedTopSize(long size, long compressed, int blocksReq, int blocksTotal, ClientContext context) {
// Ignore
}
@Override
public void onSplitfileCompatibilityMode(CompatibilityMode min, CompatibilityMode max, byte[] splitfileKey, boolean compressed, boolean bottomLayer, boolean definitiveAnyway, ClientContext context) {
// Ignore
}
@Override
public void onHashes(HashResult[] hashes, ClientContext context) {
// Ignore
}
@Override
public void innerOnResume(ClientContext context) throws ResumeFailedException {
super.innerOnResume(context);
}
@Override
protected ClientBaseCallback getCallback() {
return null;
}
}