package com.asgow.ciel.tasks;
import java.io.ObjectOutputStream;
import com.asgow.ciel.executor.Ciel;
import com.asgow.ciel.references.Reference;
import com.asgow.ciel.references.WritableReference;
public abstract class SingleOutputTask<T> implements ConstantNumOutputsTask {
private static final long serialVersionUID = 2685291728220990030L;
public void invoke() throws Exception {
T result = this.run();
WritableReference out = Ciel.RPC.getOutputFilename(0);
ObjectOutputStream oos = new ObjectOutputStream(out.open());
oos.writeObject(result);
oos.close();
}
public void setup() {
;
}
public Reference[] getDependencies() {
return new Reference[0];
}
public int getNumOutputs() {
return 1;
}
public abstract T run() throws Exception;
}