Package org.nustaq.kontraktor
Class Spore<I,O>
java.lang.Object
org.nustaq.kontraktor.Spore<I,O>
- All Implemented Interfaces:
java.io.Serializable,java.lang.Cloneable
public abstract class Spore<I,O>
extends java.lang.Object
implements java.io.Serializable, java.lang.Cloneable
A Spore is sent to a foreign actor executes on its data and sends results back to caller.
- See Also:
- Serialized Form
-
Field Summary
-
Constructor Summary
Constructors Constructor Description Spore() -
Method Summary
Modifier and Type Method Description Sporeclone()voidcomplete(O res, java.lang.Object err)to called from remote site. directly send stuff to remote site via callback.voidfinish()to be called at remote side when using streaming to deliver multiple results, call this in order to signal no further results are expected.booleanisFinished()to be read at remote side in order to decide wether to stop e.g. iteration.Spore<I,O>onFinish(java.lang.Runnable toRun)abstract voidremote(I input)implements code to be executed at receiver sidevoidsetExpectedFinishCount(int count)Spore<I,O>setForEach(Callback<O> cb)use local (sender side).protected voidstream(O result)protected voidstreamError(java.lang.Object err)note that sending an error implicitely will close the backstream.
-
Field Details
-
Constructor Details
-
Spore
public Spore()
-
-
Method Details
-
setExpectedFinishCount
public void setExpectedFinishCount(int count) -
remote
implements code to be executed at receiver side- Parameters:
input-
-
setForEach
use local (sender side). Register and receive data streamed back from remote spore execution.- Parameters:
cb-
-
onFinish
-
finish
public void finish()to be called at remote side when using streaming to deliver multiple results, call this in order to signal no further results are expected. -
streamError
protected void streamError(java.lang.Object err)note that sending an error implicitely will close the backstream.- Parameters:
err-
-
stream
-
complete
to called from remote site. directly send stuff to remote site via callback. Warning: prefer stream(), streamError() and finish(). this can be used for generic exception catching etc. Take care to not accidentally introduce multithreading .. Any error != 'CONT' will shut down the backchannel to remote callee afterwards.- Parameters:
res-err-
-
isFinished
public boolean isFinished()to be read at remote side in order to decide wether to stop e.g. iteration.- Returns:
-
clone
- Overrides:
clonein classjava.lang.Object
-