trait SelectTransputer extends ForeverSelectorBuilder with Transputer
Transputer, where dehaviour can be described by selector function
- Alphabetic
- By Inheritance
- SelectTransputer
- Transputer
- ForeverSelectorBuilder
- SelectorBuilder
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Type Members
- type timeout = FiniteDuration
- Definition Classes
- SelectorBuilder
- class InPort[A] extends Input[A]
- Definition Classes
- Transputer
- class OutPort[A] extends Output[A]
- Definition Classes
- Transputer
Abstract Value Members
- abstract def api: GopherAPI
- Definition Classes
- Transputer
- abstract def recoverFactory: () => Transputer
Used for recover failed instances
Used for recover failed instances
- Definition Classes
- Transputer
Concrete Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##(): Int
- Definition Classes
- AnyRef → Any
- def +(p: Transputer): ParTransputer
- Definition Classes
- Transputer
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- macro def apply(f: PartialFunction[Any, Unit]): Future[Unit]
provide syntax for running select loop as async operation.
provide syntax for running select loop as async operation.
val receiver = gopherApi.select.forever{ case x: channel.read => Console.println(s"received:$x") }
- Definition Classes
- ForeverSelectorBuilder
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native() @HotSpotIntrinsicCandidate()
- def copyPorts(prev: Transputer): Unit
copy conection from previous instance when transputer is restarted.
copy conection from previous instance when transputer is restarted.
- Definition Classes
- Transputer
- def copyState(prev: Transputer): Unit
copyState from previous instance when transputer is restarted.
copyState from previous instance when transputer is restarted. can be overriden in subclasses (by default: do nothing)
Note, that port connection is restored before call of copyState
- Definition Classes
- Transputer
- implicit def ec: ExecutionContext
- Definition Classes
- SelectorBuilder
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def failureLimit(maxFailures: Int = recoveryLimits.maxFailures, windowDuration: Duration = recoveryLimits.windowDuration): SelectTransputer.this.type
set failure limit.
set failure limit. (when number of failures during windowsDuration is bigger than maxFailures, TooManyFailures exception is escalated to parent transputer.
- Definition Classes
- Transputer
- macro def foreach(f: (Any) => Unit): Unit
provide syntax for running select loop inside go (or async) block example of usage:
provide syntax for running select loop inside go (or async) block example of usage:
go { ..... for(s <- gopherApi.select.forever) s match { case x: ch1.read => do something with x case q: chq.read => implicitly[FlowTermination[Unit]].doExit(()) case y: ch2.write if (y=expr) => do something with y case _ => do somethig when idle. }
Note, that you can use implicit instance of [FlowTermination[Unit]] to stop loop.
- Definition Classes
- ForeverSelectorBuilder
- def futureInput[A](f: Future[A]): FutureInput[A]
- Definition Classes
- SelectorBuilder
- Annotations
- @inline()
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- final def go: Future[Unit]
- Definition Classes
- SelectorBuilder
- def goOnce: Future[Unit]
- Definition Classes
- SelectTransputer → Transputer
- macro def handleError(f: (Throwable) => Unit): ForeverSelectorBuilder
- Definition Classes
- ForeverSelectorBuilder
- def handleErrorWithFlowTerminationAsync(f: (ExecutionContext, FlowTermination[Unit], Continuated[Unit], Throwable) => Future[Unit]): SelectTransputer.this.type
- Definition Classes
- ForeverSelectorBuilder
- Annotations
- @inline()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- macro def idle(body: Unit): ForeverSelectorBuilder
- Definition Classes
- ForeverSelectorBuilder
- macro def input[B](f: PartialFunction[Any, B]): Input[B]
- Definition Classes
- ForeverSelectorBuilder
- def inputBuilder[B](): InputSelectorBuilder[B]
- Definition Classes
- ForeverSelectorBuilder
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- implicit def logSource: LogSource[Transputer]
- Definition Classes
- Transputer
- macro def loop(f: PartialFunction[Any, Unit]): Unit
configure loop in selector
- macro def map[B](f: (Any) => B): Input[B]
provide syntax for creating output channels.
provide syntax for creating output channels.
val multiplexed = for(s <- gopherApi.select.forever) yield s match { case x: channelA => s"A:${x}" case x: channelB => s"B:${x}" }
- Definition Classes
- ForeverSelectorBuilder
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- def onError(arg: ErrorSelectorArgument[Unit]): SelectTransputer.this.type
- Definition Classes
- SelectorBuilder
- def onEscalatedFailure(ex: Throwable): Unit
called when failure is escalated.
called when failure is escalated.
- Attributes
- protected
- Definition Classes
- SelectTransputer → Transputer
- def onIdle(arg: SkipSelectorArgument[Unit]): SelectTransputer.this.type
- Definition Classes
- SelectorBuilder
- def onRead[E](ch: Input[E])(arg: ReadSelectorArgument[E, Unit]): SelectTransputer.this.type
- Definition Classes
- SelectorBuilder
- def onRestart(prev: Transputer): Unit
called when transducer is restarted.
called when transducer is restarted.
- prev
- previous (i.e. failed) instance of trnasputer.
- Attributes
- protected
- Definition Classes
- Transputer
- def onResume(): Unit
called when transducer is choose to resume durign recovery.
called when transducer is choose to resume durign recovery.
- Attributes
- protected
- Definition Classes
- Transputer
- def onStart(): Unit
called when transducer is started.
called when transducer is started.
- Attributes
- protected
- Definition Classes
- Transputer
- def onStop(): Unit
called when transputer is stopped.
called when transputer is stopped.
- Attributes
- protected
- Definition Classes
- SelectTransputer → Transputer
- def onTimeout(t: FiniteDuration)(arg: SkipSelectorArgument[Unit]): SelectTransputer.this.type
- Definition Classes
- SelectorBuilder
- def onWrite[E](ch: Output[E])(arg: WriteSelectorArgument[E, Unit]): SelectTransputer.this.type
- Definition Classes
- SelectorBuilder
- macro def reading[A](ch: Input[A])(f: (A) => Unit): ForeverSelectorBuilder
- Definition Classes
- ForeverSelectorBuilder
- def readingWithFlowTerminationAsync[A](ch: Input[A], f: (ExecutionContext, FlowTermination[Unit], A) => Future[Unit]): SelectTransputer.this.type
- Definition Classes
- ForeverSelectorBuilder
- def recover(f: PartialFunction[Throwable, Directive]): SelectTransputer.this.type
set recover function
set recover function
- Definition Classes
- Transputer
- def recoverAppend(f: PartialFunction[Throwable, Directive]): SelectTransputer.this.type
append recover function to existing
append recover function to existing
- Definition Classes
- Transputer
- def replica: Int
return replica number of current instance, if transponder run replicated.
return replica number of current instance, if transponder run replicated.
- Attributes
- protected
- Definition Classes
- Transputer
- val selectorInit: () => Unit
- Attributes
- protected
- def selectorRun: Future[Unit]
- Definition Classes
- SelectorBuilder
- def start(): Future[Unit]
- Definition Classes
- Transputer
- def stop(): Unit
- Definition Classes
- SelectTransputer → Transputer
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- macro def timeout(t: FiniteDuration)(f: (FiniteDuration) => Unit): ForeverSelectorBuilder
- Definition Classes
- ForeverSelectorBuilder
- def timeoutWithFlowTerminationAsync(t: FiniteDuration, f: (ExecutionContext, FlowTermination[Unit], FiniteDuration) => Future[Unit]): SelectTransputer.this.type
- Definition Classes
- ForeverSelectorBuilder
- Annotations
- @inline()
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- def withError(f: (ExecutionContext, FlowTermination[Unit], Continuated[Unit], Throwable) => Future[Continuated[Unit]]): SelectTransputer.this.type
- Definition Classes
- SelectorBuilder
- Annotations
- @inline()
- def withIdle(f: (Skip[Unit]) => Option[Future[Continuated[Unit]]]): SelectTransputer.this.type
- Definition Classes
- SelectorBuilder
- Annotations
- @inline()
- def withReader[B](ch: Input[B], f: (ContRead[B, Unit]) => Option[(In[B]) => Future[Continuated[Unit]]]): SelectTransputer.this.type
- Definition Classes
- SelectorBuilder
- Annotations
- @inline()
- def withTimeout(t: FiniteDuration)(f: (Skip[Unit]) => Option[Future[Continuated[Unit]]]): SelectTransputer.this.type
- Definition Classes
- SelectorBuilder
- Annotations
- @inline()
- def withWriter[B](ch: Output[B], f: (ContWrite[B, Unit]) => Option[(B, Future[Continuated[Unit]])]): SelectTransputer.this.type
- Definition Classes
- SelectorBuilder
- Annotations
- @inline()
- macro def writing[A](ch: Output[A], x: A)(f: (A) => Unit): ForeverSelectorBuilder
- Definition Classes
- ForeverSelectorBuilder
- def writingWithFlowTerminationAsync[A](ch: Output[A], x: => A, f: (ExecutionContext, FlowTermination[Unit], A) => Future[Unit]): ForeverSelectorBuilder
- Definition Classes
- ForeverSelectorBuilder
- Annotations
- @inline()
- object InPort
- Definition Classes
- Transputer
- object OutPort
- Definition Classes
- Transputer