SelectGroup

gopher.SelectGroup
class SelectGroup[F[_], S](api: Gopher[F]) extends SelectListeners[F, S, S]

Select group is a virtual 'lock' object. Readers and writers are grouped into select groups. When event about avaiability to read or to write is arrived and no current event group members is running, than run of one of the members is triggered. I.e. only one from group can run.

Note, that application develeper usually not work with SelectGroup directly, it is created internally by select pseudostatement.

Attributes

See also

[gopher.Select]

[gopher.select]

Source
SelectGroup.scala
Graph
Supertypes
trait SelectListeners[F, S, S]
class Object
trait Matchable
class Any
Self type
SelectGroup[F, S]

Members list

Type members

Classlikes

trait Expiration

Attributes

Source
SelectGroup.scala
Supertypes
class Object
trait Matchable
class Any
Known subtypes
class ReaderRecord[A]
class WriterRecord[A]
case class ReaderRecord[A](ch: ReadChannel[F, A], action: Try[A] => F[S]) extends Reader[A], Expiration

Attributes

Source
SelectGroup.scala
Supertypes
trait Serializable
trait Product
trait Equals
trait Expiration
trait Reader[A]
trait Expirable[Try[A] => Unit]
class Object
trait Matchable
class Any
Show all
case class TimeoutRecord(duration: FiniteDuration, action: Try[FiniteDuration] => F[S]) extends Expiration

Attributes

Source
SelectGroup.scala
Supertypes
trait Serializable
trait Product
trait Equals
trait Expiration
class Object
trait Matchable
class Any
Show all
case class WriterRecord[A](ch: WriteChannel[F, A], element: A, action: Try[Unit] => F[S]) extends Writer[A], Expiration

Attributes

Source
SelectGroup.scala
Supertypes
trait Serializable
trait Product
trait Equals
trait Expiration
trait Writer[A]
trait Expirable[(A, Try[Unit] => Unit)]
class Object
trait Matchable
class Any
Show all

Value members

Concrete methods

def addReader[A](ch: ReadChannel[F, A], action: Try[A] => F[S]): Unit

Attributes

Source
SelectGroup.scala
def addWriter[A](ch: WriteChannel[F, A], element: A, action: Try[Unit] => F[S]): Unit

Attributes

Source
SelectGroup.scala
transparent inline def apply(inline pf: PartialFunction[Any, S])(using mc: CpsMonadContext[F]): S

Attributes

Source
SelectGroup.scala
override def asyncMonad: CpsSchedulingMonad[F]

Attributes

Definition Classes
Source
SelectGroup.scala
def done[S](s: S): Done[S]

short alias for SelectFold.Done

short alias for SelectFold.Done

Attributes

Source
SelectGroup.scala
def onRead[A](ch: ReadChannel[F, A])(f: A => S): SelectGroup.this.type

FluentDSL for user SelectGroup without macroses.

FluentDSL for user SelectGroup without macroses.

SelectGroup.onRead(input){ x => println(x) }
          .onRead(endSignal){ () => done=true }

Attributes

Source
SelectGroup.scala
def onReadAsync[A](ch: ReadChannel[F, A])(f: A => F[S]): SelectGroup.this.type

Attributes

Source
SelectGroup.scala
def onRead_async[A](ch: ReadChannel[F, A])(f: A => F[S]): F[SelectGroup]

Attributes

Source
SelectGroup.scala
def onTimeout(t: FiniteDuration)(f: FiniteDuration => S): SelectGroup.this.type

Attributes

Source
SelectGroup.scala
def onTimeoutAsync(t: FiniteDuration)(f: FiniteDuration => F[S]): SelectGroup.this.type

Attributes

Source
SelectGroup.scala
def onTimeout_async(t: FiniteDuration)(f: FiniteDuration => F[S]): F[SelectGroup]

Attributes

Source
SelectGroup.scala
def onWrite[A](ch: WriteChannel[F, A], a: => A)(f: A => S): SelectGroup.this.type

FluentDSL for user SelectGroup without macroses.

FluentDSL for user SelectGroup without macroses.

SelectGroup.onWrite(input){ x => println(x) }
          .onWrite(endSignal){ () => done=true }

Attributes

Source
SelectGroup.scala
def onWriteAsync[A](ch: WriteChannel[F, A], a: () => F[A])(f: A => F[S]): SelectGroup.this.type

Attributes

Source
SelectGroup.scala
def runAsync(): F[S]

Attributes

Source
SelectGroup.scala
transparent inline def select(inline pf: PartialFunction[Any, S])(using mc: CpsMonadContext[F]): S

Attributes

Source
SelectGroup.scala
def setTimeout(timeout: FiniteDuration, action: Try[FiniteDuration] => F[S]): Unit

Attributes

Source
SelectGroup.scala
def step(): F[S]

Attributes

Source
SelectGroup.scala

Inherited methods

transparent inline def run()(using CpsMonadContext[F]): R

Attributes

Inherited from:
SelectListeners
Source
SelectListeners.scala

Concrete fields

Attributes

Source
SelectGroup.scala
val waitState: AtomicInteger

instance of select group created for call of select. 0 - free 1 - now processes 2 - expired

instance of select group created for call of select. 0 - free 1 - now processes 2 - expired

Attributes

Source
SelectGroup.scala