Class Continuation

java.lang.Object
com.offbynull.coroutines.user.Continuation
All Implemented Interfaces:
Serializable

public final class Continuation extends Object implements Serializable
This class is used to store and restore the execution state. Any method that takes in this type as a parameter will be instrumented to have its state saved/restored.

Calls to suspend() will suspend/yield the execution of the coroutine. Calls to setContext(java.lang.Object) / getContext() can be used to pass data back and forth between the coroutine and its caller. All other methods are for internal use by the instrumentation logic and should not be used directly..

See Also:
  • Field Details

    • serialVersionUID

      private static final long serialVersionUID
      See Also:
    • MODE_NORMAL

      public static final int MODE_NORMAL
      Do not use -- for internal use only.
      See Also:
    • MODE_SAVING

      public static final int MODE_SAVING
      Do not use -- for internal use only.
      See Also:
    • MODE_LOADING

      public static final int MODE_LOADING
      Do not use -- for internal use only.
      See Also:
    • firstPointer

      private MethodState firstPointer
    • nextLoadPointer

      private MethodState nextLoadPointer
    • nextUnloadPointer

      private MethodState nextUnloadPointer
    • firstCutpointPointer

      private MethodState firstCutpointPointer
    • mode

      private int mode
    • context

      private Object context
  • Constructor Details

    • Continuation

      Continuation()
  • Method Details

    • getMode

      public int getMode()
      Do not use -- for internal use only.
      Returns:
      n/a
    • setMode

      public void setMode(int mode)
      Do not use -- for internal use only.
      Parameters:
      mode - n/a
    • loadNextMethodState

      public MethodState loadNextMethodState()
      Do not use -- for internal use only.
      Returns:
      n/a
    • unloadCurrentMethodState

      public void unloadCurrentMethodState()
      Do not use -- for internal use only.
    • unloadMethodStateToBefore

      public void unloadMethodStateToBefore(MethodState methodState)
      Do not use -- for internal use only.
      Parameters:
      methodState - n/a
    • pushNewMethodState

      public void pushNewMethodState(MethodState methodState)
      Do not use -- for internal use only.
      Parameters:
      methodState - n/a
    • reset

      public void reset()
      Do not use -- for internal use only.
    • successExecutionCycle

      public void successExecutionCycle()
      Do not use -- for internal use only.
    • failedExecutionCycle

      public void failedExecutionCycle()
      Do not use -- for internal use only.
    • suspend

      public void suspend()
      Call to suspend/yield execution.
      Throws:
      UnsupportedOperationException - if the caller has not been instrumented
    • getContext

      public Object getContext()
      Get the context.
      Returns:
      context
    • setContext

      public void setContext(Object context)
      Set the context.
      Parameters:
      context - context
    • getSaved

      public MethodState getSaved(int idx)
      Do not use -- for internal use only. For testing.
      Parameters:
      idx - n/a
      Returns:
      n/a
    • getSize

      public int getSize()
      Do not use -- for internal use only. For testing.
      Returns:
      n/a