PoolingMicroscopes
N scientists sharing M microscopes (N > M).
This examples demonstrates:
- concurrency (scientists operate concurrently)
- sequencing (each scientist performs experiments sequentially, at most one at a time)
- resource sharing via pooling (the limited number of microscopes is made available throught a pool)
class StarterApp
class StarterAppBase
class Object
trait Matchable
class Any
Type members
Classlikes
Inherited types
final type BimapSyntax >: ([F[_, _], A, B] =>> BimapSyntax[F, A, B]) <: ([F[_, _], A, B] =>> BimapSyntax[F, A, B])
- Inherited from
- StarterAppBase
final type ClosedLinearFunctionOps >: ([A, B] =>> ClosedLinearFunctionOps[A, B]) <: ([A, B] =>> ClosedLinearFunctionOps[A, B])
- Inherited from
- StarterAppBase
final type ContraExternalizer >: ([F[_]] =>> ContraExternalizer[F]) <: ([F[_]] =>> ContraExternalizer[F])
- Inherited from
- StarterAppBase
final type FocusedBi >: ([F[_, _], B1, B2] =>> FocusedBi[F, B1, B2]) <: ([F[_, _], B1, B2] =>> FocusedBi[F, B1, B2])
- Inherited from
- StarterAppBase
final type FocusedContra >: ([F[_], B] =>> FocusedContra[F, B]) <: ([F[_], B] =>> FocusedContra[F, B])
- Inherited from
- StarterAppBase
final type FocusedOnChoiceCo >: ([F[_], B1, B2] =>> FocusedOnChoiceCo[F, B1, B2]) <: ([F[_], B1, B2] =>> FocusedOnChoiceCo[F, B1, B2])
- Inherited from
- StarterAppBase
final type FocusedOnChoiceContra >: ([A, F[_], B1, B2] =>> FocusedOnChoiceContra[A, F, B1, B2]) <: ([A, F[_], B1, B2] =>> FocusedOnChoiceContra[A, F, B1, B2])
- Inherited from
- StarterAppBase
final type FocusedOnDoneTimesCo >: ([F[_], B2] =>> FocusedOnDoneTimesCo[F, B2]) <: ([F[_], B2] =>> FocusedOnDoneTimesCo[F, B2])
- Inherited from
- StarterAppBase
final type FocusedOnFunctionCo >: ([F[_], A, B] =>> FocusedOnFunctionCo[F, A, B]) <: ([F[_], A, B] =>> FocusedOnFunctionCo[F, A, B])
- Inherited from
- StarterAppBase
final type FocusedOnFunctionContra >: ([F[_], A, B] =>> FocusedOnFunctionContra[F, A, B]) <: ([F[_], A, B] =>> FocusedOnFunctionContra[F, A, B])
- Inherited from
- StarterAppBase
final type FocusedOnPairCo >: ([F[_], B1, B2] =>> FocusedOnPairCo[F, B1, B2]) <: ([F[_], B1, B2] =>> FocusedOnPairCo[F, B1, B2])
- Inherited from
- StarterAppBase
final type FocusedOnPairContra >: ([A, F[_], B1, B2] =>> FocusedOnPairContra[A, F, B1, B2]) <: ([A, F[_], B1, B2] =>> FocusedOnPairContra[A, F, B1, B2])
- Inherited from
- StarterAppBase
final type FocusedOnPlusCo >: ([F[_], B1, B2] =>> FocusedOnPlusCo[F, B1, B2]) <: ([F[_], B1, B2] =>> FocusedOnPlusCo[F, B1, B2])
- Inherited from
- StarterAppBase
final type FocusedOnPlusContra >: ([A, F[_], B1, B2] =>> FocusedOnPlusContra[A, F, B1, B2]) <: ([A, F[_], B1, B2] =>> FocusedOnPlusContra[A, F, B1, B2])
- Inherited from
- StarterAppBase
final type FocusedOnTimesDoneCo >: ([F[_], B1] =>> FocusedOnTimesDoneCo[F, B1]) <: ([F[_], B1] =>> FocusedOnTimesDoneCo[F, B1])
- Inherited from
- StarterAppBase
final type LinearFunctionOps >: ([A, B] =>> LinearFunctionOps[A, B]) <: ([A, B] =>> LinearFunctionOps[A, B])
- Inherited from
- StarterAppBase
final type LinearFunctionToPairOps >: ([A, B1, B2] =>> LinearFunctionToPairOps[A, B1, B2]) <: ([A, B1, B2] =>> LinearFunctionToPairOps[A, B1, B2])
- Inherited from
- StarterAppBase
final type LinearFunctionToPlusOps >: ([A, B1, B2] =>> LinearFunctionToPlusOps[A, B1, B2]) <: ([A, B1, B2] =>> LinearFunctionToPlusOps[A, B1, B2])
- Inherited from
- StarterAppBase
final type ValMatcher >: ([U >: V, V, A, R] =>> ValMatcher[U, V, A, R]) <: ([U >: V, V, A, R] =>> ValMatcher[U, V, A, R])
- Inherited from
- StarterAppBase
Value members
Concrete methods
def doExperiment(scientistName: String, experimentName: String, experimentDuration: FiniteDuration): Done |*| Unlimited[BorrowedMicroscope] -⚬ Done |*| Unlimited[BorrowedMicroscope]
def scientist(name: String, experiments: (String, FiniteDuration)*): Unlimited[BorrowedMicroscope] -⚬ Done
Inherited methods
Implicits
Inherited implicits
Exports
Inherited defined exports
final def relayCompletion[A, B]: Pollable[A] |*| Subscriber[B] -⚬ One |+| Val[A] |*| Pollable[A] |*| Neg[B] |*| Subscriber[B]
Exported from instance.function
- Inherited from
- StarterAppBase
final def scalaStreams: ScalaStreams[ScalaDSL, CoreLib[ScalaDSL], ScalaLib[ScalaDSL, CoreLib[ScalaDSL]], CoreStreams[ScalaDSL, CoreLib[ScalaDSL]]]
Exported from StarterKit.scalaStreams
- Inherited from
- StarterAppBase