Class Spore<I,O>

java.lang.Object
org.nustaq.kontraktor.Spore<I,O>
All Implemented Interfaces:
Serializable, Cloneable

public abstract class Spore<I,O> extends Object implements Serializable, Cloneable
A Spore is sent to a foreign actor executes on its data and sends results back to caller.
See Also:
  • Field Details

    • cb

      protected Callback cb
    • finished

      protected transient volatile boolean finished
  • Constructor Details

    • Spore

      public Spore()
  • Method Details

    • setExpectedFinishCount

      public void setExpectedFinishCount(int count)
    • remote

      public abstract void remote(I input)
      implements code to be executed at receiver side
      Parameters:
      input -
    • setForEach

      public Spore<I,O> setForEach(Callback<O> cb)
      use local (sender side). Register and receive data streamed back from remote spore execution.
      Parameters:
      cb -
    • onFinish

      public Spore<I,O> onFinish(Runnable toRun)
    • 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(Object err)
      note that sending an error implicitely will close the backstream.
      Parameters:
      err -
    • stream

      protected void stream(O result)
    • complete

      public void complete(O res, Object err)
      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

      public Spore clone()
      Overrides:
      clone in class Object