GuardedSPSCBaseChannel

gopher.impl.GuardedSPSCBaseChannel
See theGuardedSPSCBaseChannel companion object
abstract class GuardedSPSCBaseChannel[F[_], A](val gopherApi: JVMGopher[F], controlExecutor: ExecutorService, taskExecutor: ExecutorService)(implicit evidence$1: CpsAsyncMonad[F]) extends Channel[F, A, A]

Guarded channel work in the next way: reader and writer asynchronically added to readers and writers and force evaluation of internal step function or ensure that currently running step function will see the chanes in readers/writers. Step functions is executed in some thread loop, and in the same time, only one instance of step function is running. (which is ensured by guard)

Attributes

Companion
object
Source
GuardedSPSCBaseChannel.scala
Graph
Supertypes
trait Channel[F, A, A]
trait Closeable
trait AutoCloseable
trait ReadChannel[F, A]
trait WriteChannel[F, A]
class Object
trait Matchable
class Any
Show all
Known subtypes

Members list

Type members

Inherited classlikes

class DoneReadChannel extends ReadChannel[F, Unit]

Attributes

Inherited from:
ReadChannel
Source
ReadChannel.scala
Supertypes
trait ReadChannel[F, Unit]
class Object
trait Matchable
class Any
class SimpleReader(f: (Try[A]) => Unit) extends Reader[A]

Attributes

Inherited from:
ReadChannel
Source
ReadChannel.scala
Supertypes
trait Reader[A]
trait Expirable[(Try[A]) => Unit]
class Object
trait Matchable
class Any

Inherited types

type done = Unit

Attributes

Inherited from:
ReadChannel
Source
ReadChannel.scala
type read = A

Special type which is used in select statement.

Special type which is used in select statement.

Attributes

See also

[gopher.Select]

Inherited from:
ReadChannel
Source
ReadChannel.scala
type write = A

Attributes

Inherited from:
WriteChannel
Source
WriteChannel.scala

Value members

Concrete methods

def addDoneReader(reader: Reader[Unit]): Unit

Attributes

Source
GuardedSPSCBaseChannel.scala
def addReader(reader: Reader[A]): Unit

Attributes

Source
GuardedSPSCBaseChannel.scala
def addWriter(writer: Writer[A]): Unit

Attributes

Source
GuardedSPSCBaseChannel.scala
def close(): Unit

Attributes

Source
GuardedSPSCBaseChannel.scala
def isClosed: Boolean

Attributes

Source
GuardedSPSCBaseChannel.scala

Inherited methods

transparent inline def !(inline a: A)(using CpsMonadContext[F]): Unit

Attributes

Inherited from:
WriteChannel
Source
WriteChannel.scala
transparent inline def <~(inline a: A)(using CpsMonadContext[F]): Unit

Attributes

Inherited from:
WriteChannel
Source
WriteChannel.scala
transparent inline def ?(using mc: CpsMonadContext[F]): A

Synonim for read.

Synonim for read.

Attributes

Inherited from:
ReadChannel
Source
ReadChannel.scala
def aOptRead(): F[Option[A]]

read value and return future with

read value and return future with

  • Some(value) if value is available to read
  • None if stream is closed.

Attributes

Inherited from:
ReadChannel
Source
ReadChannel.scala
def afold[S](s0: S)(f: (S, A) => S): F[S]

Attributes

Inherited from:
ReadChannel
Source
ReadChannel.scala
def afold_async[S](s0: S)(f: (S, A) => F[S]): F[S]

Attributes

Inherited from:
ReadChannel
Source
ReadChannel.scala
def aforeach(f: A => Unit): F[Unit]

Attributes

Inherited from:
ReadChannel
Source
ReadChannel.scala
def aforeach_async(f: A => F[Unit]): F[F[Unit]]

Attributes

Inherited from:
ReadChannel
Source
ReadChannel.scala
def append(other: ReadChannel[F, A]): ReadChannel[F, A]

Attributes

Inherited from:
ReadChannel
Source
ReadChannel.scala
def aread(): F[A]

async version of read. Immediatly return future, which will contains result of read or failur with StreamClosedException in case of stream is closed.

async version of read. Immediatly return future, which will contains result of read or failur with StreamClosedException in case of stream is closed.

Attributes

Inherited from:
ReadChannel
Source
ReadChannel.scala
def asyncMonad: CpsSchedulingMonad[F]

Attributes

Inherited from:
ReadChannel
Source
ReadChannel.scala
def atake(n: Int): F[IndexedSeq[A]]

return F which contains sequence from first n elements.

return F which contains sequence from first n elements.

Attributes

Inherited from:
ReadChannel
Source
ReadChannel.scala
def awrite(a: A): F[Unit]

Attributes

Inherited from:
WriteChannel
Source
WriteChannel.scala
def awriteAll(collection: IterableOnce[A]): F[Unit]

Attributes

Inherited from:
WriteChannel
Source
WriteChannel.scala
def dup(bufSize: Int, expiration: Duration): (ReadChannel[F, A], ReadChannel[F, A])

Attributes

Inherited from:
ReadChannel
Source
ReadChannel.scala
override def filter(p: A => Boolean): Channel[F, A, A]

Attributes

Definition Classes
Inherited from:
Channel
Source
Channel.scala
override def filterAsync(p: A => F[Boolean]): Channel[F, A, A]

Attributes

Definition Classes
Inherited from:
Channel
Source
Channel.scala
def flatMap[R1](f: A => ReadChannel[F, R1]): Channel[F, A, R1]

Attributes

Inherited from:
Channel
Source
Channel.scala
transparent inline def fold[S](inline s0: S)(inline f: (S, A) => S)(using mc: CpsMonadContext[F]): S

Attributes

Inherited from:
ReadChannel
Source
ReadChannel.scala
def fold_async[S](s0: S)(f: (S, A) => F[S]): F[S]

Attributes

Inherited from:
ReadChannel
Source
ReadChannel.scala
transparent inline def foreach(inline f: A => Unit)(using CpsMonadContext[F]): Unit

run code each time when new object is arriced. until end of stream is not reached

run code each time when new object is arriced. until end of stream is not reached

Attributes

Inherited from:
ReadChannel
Source
ReadChannel.scala
def foreach_async(f: A => F[Unit]): F[Unit]

Attributes

Inherited from:
ReadChannel
Source
ReadChannel.scala
override def map[R1](f: A => R1): Channel[F, A, R1]

Attributes

Definition Classes
Inherited from:
Channel
Source
Channel.scala
override def mapAsync[R1](f: A => F[R1]): Channel[F, A, R1]

Attributes

Definition Classes
Inherited from:
Channel
Source
Channel.scala
transparent inline def optRead()(using CpsMonadContext[F]): Option[A]

read value and return

read value and return

  • Some(value) if value is available to read
  • None if stream is closed.

should be called inside async block.

Attributes

Inherited from:
ReadChannel
Source
ReadChannel.scala
def or(other: ReadChannel[F, A]): ReadChannel[F, A]

Attributes

Inherited from:
ReadChannel
Source
ReadChannel.scala
transparent inline def read[G[_]]()(using mc: CpsMonadContext[G], fg: CpsMonadConversion[F, G]): A

blocked read: if currently not element available - wait for one. Can be used only inside async block. If stream is closed and no values to read left in the stream - throws StreamClosedException

blocked read: if currently not element available - wait for one. Can be used only inside async block. If stream is closed and no values to read left in the stream - throws StreamClosedException

Attributes

Inherited from:
ReadChannel
Source
ReadChannel.scala
transparent inline def take(n: Int)(using CpsMonadContext[F]): IndexedSeq[A]

take first n elements. should be called inside async block.

take first n elements. should be called inside async block.

Attributes

Inherited from:
ReadChannel
Source
ReadChannel.scala
def withExpiration(ttl: FiniteDuration, throwTimeouts: Boolean): ChannelWithExpiration[F, A, A]

Attributes

Inherited from:
Channel
Source
Channel.scala
def withWriteExpiration(ttl: FiniteDuration, throwTimeouts: Boolean)(using gopherApi: Gopher[F]): WriteChannelWithExpiration[F, A]

Attributes

Inherited from:
WriteChannel
Source
WriteChannel.scala
transparent inline def write(inline a: A)(using CpsMonadContext[F]): Unit

Attributes

Inherited from:
WriteChannel
Source
WriteChannel.scala
transparent inline def writeAll(inline collection: IterableOnce[A])(using mc: CpsMonadContext[F]): Unit

Attributes

Inherited from:
WriteChannel
Source
WriteChannel.scala
def zip[B](x: ReadChannel[F, B]): ReadChannel[F, (A, B)]

Attributes

Inherited from:
ReadChannel
Source
ReadChannel.scala
def |(other: ReadChannel[F, A]): ReadChannel[F, A]

Attributes

Inherited from:
ReadChannel
Source
ReadChannel.scala

Concrete fields

override val gopherApi: JVMGopher[F]

Attributes

Source
GuardedSPSCBaseChannel.scala

Inherited fields

final lazy val done: ReadChannel[F, Unit]

Attributes

Inherited from:
ReadChannel
Source
ReadChannel.scala