Packages

c

com.workflowfm.pew.execution

MutexExecutor

class MutexExecutor extends ProcessExecutor[Int] with SimplePiObservable[Int]

A multi-state mutex-based ProcessExecutor.

Uses this.synchronized to create mutexes for safe access when adding/removing/updating states.

Known Subclasses
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. MutexExecutor
  2. SimplePiObservable
  3. PiPublisher
  4. PiObservable
  5. ProcessExecutor
  6. AnyRef
  7. Any
Implicitly
  1. by any2stringadd
  2. by StringFormat
  3. by Ensuring
  4. by ArrowAssoc
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new MutexExecutor(store: PiInstanceStore[Int] = SimpleInstanceStore[Int]())(implicit executionContext: ExecutionContext = ExecutionContext.global)

    store

    An immutable PiInstanceStore to use.

Type Members

  1. case class Switch(name: String) extends PiSwitch with Product with Serializable
    Definition Classes
    SimplePiObservable

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. def +(other: String): String
    Implicit
    This member is added by an implicit conversion from MutexExecutor to any2stringadd[MutexExecutor] performed by method any2stringadd in scala.Predef.
    Definition Classes
    any2stringadd
  4. def ->[B](y: B): (MutexExecutor, B)
    Implicit
    This member is added by an implicit conversion from MutexExecutor to ArrowAssoc[MutexExecutor] performed by method ArrowAssoc in scala.Predef.
    Definition Classes
    ArrowAssoc
    Annotations
    @inline()
  5. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  6. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  7. def call[H <: PiEventHandler[Int]](instance: PiInstance[_], factory: PiEventHandlerFactory[Int, H]): Future[H]

    A init ; start sequence that gives us a chance to subscribe a listener that is specific to this execution.

    A init ; start sequence that gives us a chance to subscribe a listener that is specific to this execution. A new ID will be generated for the PiInstance to ensure freshness.

    instance

    The PiInstance to be executed

    factory

    A PiEventHandlerFactory which generates PiEventHandler's for a given ID

    returns

    A Future with the PiEventHandler that was generated

    Definition Classes
    ProcessExecutor
  8. def call[H <: PiEventHandler[Int]](process: PiProcess, args: Seq[Any], factory: PiEventHandlerFactory[Int, H]): Future[H]

    A init ; start sequence that gives us a chance to subscribe a listener that is specific to this execution.

    A init ; start sequence that gives us a chance to subscribe a listener that is specific to this execution.

    process

    The (atomic or composite) PiProcess to be executed

    args

    The (real) arguments to be passed to the process

    factory

    A PiEventHandlerFactory which generates PiEventHandler's for a given ID

    returns

    A Future with the PiEventHandler that was generated

    Definition Classes
    ProcessExecutor
  9. def call(instance: PiInstance[_]): Future[Int]

    A simple init ; start sequence when we do not need any even listeners.

    A simple init ; start sequence when we do not need any even listeners. A new ID will be generated for the PiInstance to ensure freshness.

    instance

    The PiInstance to be executed

    returns

    A Future with the ID corresponding to this execution

    Definition Classes
    ProcessExecutor
  10. def call(process: PiProcess, args: Seq[Any]): Future[Int]

    A simple init ; start sequence when we do not need any even listeners.

    A simple init ; start sequence when we do not need any even listeners.

    process

    The (atomic or composite) PiProcess to be executed

    args

    The (real) arguments to be passed to the process

    returns

    A Future with the ID corresponding to this execution

    Definition Classes
    ProcessExecutor
  11. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  12. var ctr: Int
  13. def ensuring(cond: (MutexExecutor) ⇒ Boolean, msg: ⇒ Any): MutexExecutor
    Implicit
    This member is added by an implicit conversion from MutexExecutor to Ensuring[MutexExecutor] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  14. def ensuring(cond: (MutexExecutor) ⇒ Boolean): MutexExecutor
    Implicit
    This member is added by an implicit conversion from MutexExecutor to Ensuring[MutexExecutor] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  15. def ensuring(cond: Boolean, msg: ⇒ Any): MutexExecutor
    Implicit
    This member is added by an implicit conversion from MutexExecutor to Ensuring[MutexExecutor] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  16. def ensuring(cond: Boolean): MutexExecutor
    Implicit
    This member is added by an implicit conversion from MutexExecutor to Ensuring[MutexExecutor] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  17. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  18. def equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  19. def execute(instance: PiInstance[_]): Future[Any]

    Executes a PiInstance with a PromiseHandler A new ID will be generated for the PiInstance to ensure freshness.

    Executes a PiInstance with a PromiseHandler A new ID will be generated for the PiInstance to ensure freshness.

    returns

    A Future with the result of the executed process

    Definition Classes
    ProcessExecutor
  20. def execute(process: PiProcess, args: Seq[Any]): Future[Any]

    Executes a process with a PromiseHandler

    Executes a process with a PromiseHandler

    returns

    A Future with the result of the executed process

    Definition Classes
    ProcessExecutor
  21. implicit val executionContext: ExecutionContext
  22. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  23. def formatted(fmtstr: String): String
    Implicit
    This member is added by an implicit conversion from MutexExecutor to StringFormat[MutexExecutor] performed by method StringFormat in scala.Predef.
    Definition Classes
    StringFormat
    Annotations
    @inline()
  24. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  25. def handleThread(i: PiInstance[Int])(ref: Int, f: PiFuture): Boolean
  26. val handlers: Map[String, PiEventHandler[Int]]
    Attributes
    protected
    Definition Classes
    SimplePiObservable
  27. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  28. def init(instance: PiInstance[_]): Future[Int]

    Initializes a PiInstance for a process execution.

    Initializes a PiInstance for a process execution. A new ID will be generated for the PiInstance to ensure freshness. This is always and only invoked before a start, hence why it is protected. This separation gives a chance to PiEventHandlers to subscribe before execution starts.

    instance

    The PiInstance to be executed

    returns

    A Future with the new unique ID that was generated

    Attributes
    protected
    Definition Classes
    MutexExecutorProcessExecutor
  29. def init(process: PiProcess, args: Seq[PiObject]): Future[Int]

    Initializes a PiProcess call for a process execution.

    Initializes a PiProcess call for a process execution. This is always and only invoked before a start, hence why it is protected. This separation gives a chance to PiEventHandlers to subscribe before execution starts.

    process

    The (atomic or composite) PiProcess to be executed

    args

    The PiObject arguments to be passed to the process

    returns

    A Future with the new unique ID that was generated

    Attributes
    protected
    Definition Classes
    ProcessExecutor
  30. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  31. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  32. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  33. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  34. def postResult(id: Int, ref: Int, res: PiObject): Unit
  35. def publish(evt: PiEvent[Int]): Unit
    Definition Classes
    SimplePiObservablePiPublisher
  36. final def run(id: Int, f: (PiInstance[Int]) ⇒ PiInstance[Int]): Unit
  37. def start(id: Int): Unit

    Starts the execution of an initialized PiInstance.

    Starts the execution of an initialized PiInstance. This is always and only invoked after an init, hence why it is protected. This separation gives a chance to PiEventHandlers to subscribe before execution starts.

    id

    The ID of the instance to start executing

    Definition Classes
    MutexExecutorProcessExecutor
  38. var store: PiInstanceStore[Int]
  39. def subscribe(handler: PiEventHandler[Int]): Future[PiSwitch]

    Subscribes a com.workflowfm.pew.stream.PiEventHandler to observe.

    handler

    the handler to subscribe

    returns

    the com.workflowfm.pew.stream.PiSwitch that allows us to stop/unsubscribe the subscribed handler

    Definition Classes
    SimplePiObservablePiObservable
  40. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  41. def toString(): String
    Definition Classes
    AnyRef → Any
  42. def unsubscribe(handlerName: String): Future[Boolean]
    Definition Classes
    SimplePiObservable
  43. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  44. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  45. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  46. def [B](y: B): (MutexExecutor, B)
    Implicit
    This member is added by an implicit conversion from MutexExecutor to ArrowAssoc[MutexExecutor] performed by method ArrowAssoc in scala.Predef.
    Definition Classes
    ArrowAssoc

Inherited from SimplePiObservable[Int]

Inherited from PiPublisher[Int]

Inherited from PiObservable[Int]

Inherited from ProcessExecutor[Int]

Inherited from AnyRef

Inherited from Any

Inherited by implicit conversion any2stringadd from MutexExecutor to any2stringadd[MutexExecutor]

Inherited by implicit conversion StringFormat from MutexExecutor to StringFormat[MutexExecutor]

Inherited by implicit conversion Ensuring from MutexExecutor to Ensuring[MutexExecutor]

Inherited by implicit conversion ArrowAssoc from MutexExecutor to ArrowAssoc[MutexExecutor]

Ungrouped