LPollable

libretto.CoreStreams.LPollable$
object LPollable

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Self type

Members list

Concise view

Value members

Concrete methods

The second LPollable is "detained" because that gives the client flexibility in how the Done signal resulting from the exhaustion of the first LPollable is awaited. For example, if polling of the second LPollable should be delayed until the first LPollable is completely shut down, the client can use detain to delay the second LPollable. If polling of the second LPollable should start as soon as it is known that there are no more elements in the first LPollable, the client can use detainClosed to delay the second LPollable.

The second LPollable is "detained" because that gives the client flexibility in how the Done signal resulting from the exhaustion of the first LPollable is awaited. For example, if polling of the second LPollable should be delayed until the first LPollable is completely shut down, the client can use detain to delay the second LPollable. If polling of the second LPollable should start as soon as it is known that there are no more elements in the first LPollable, the client can use detainClosed to delay the second LPollable.

Attributes

def cons[A](implicit A: PAffine[A]): A |*| LPollable[A] -⚬ LPollable[A]
def delayBy[A](implicit ev: Positive[A]): Done |*| LPollable[A] -⚬ LPollable[A]

Delays the first action (poll or close) until the Done signal completes.

Delays the first action (poll or close) until the Done signal completes.

Attributes

Delays the final Done signal (signaling end of stream or completed close) until the given Done signal completes.

Delays the final Done signal (signaling end of stream or completed close) until the given Done signal completes.

Attributes

Blocks the first action (poll or close) on this LPollable until released.

Blocks the first action (poll or close) on this LPollable until released.

Attributes

Delays the final Done signal resulting from close or end of stream.

Delays the final Done signal resulting from close or end of stream.

Attributes

def drain[A](implicit A: PComonoid[A]): LPollable[A] -⚬ Done

Polls and discards all elements.

Polls and discards all elements.

Attributes

def from[A, B](onClose: A -⚬ Done, onPoll: A -⚬ LPolled[B]): A -⚬ LPollable[B]
def fromLList[A](implicit A: PAffine[A]): LList[A] -⚬ LPollable[A]
def map[A, B](f: A -⚬ B): LPollable[A] -⚬ LPollable[B]
def merge[A](implicit A1: Positive[A], A2: PAffine[A]): LPollable[A] |*| LPollable[A] -⚬ LPollable[A]

Merges two LPollables into one. Left-biased: when there is a value available from both upstreams, favors the first one.

Merges two LPollables into one. Left-biased: when there is a value available from both upstreams, favors the first one.

Attributes

def mergeAll[A](implicit A1: Positive[A], A2: PAffine[A]): LList[LPollable[A]] -⚬ LPollable[A]

Merges a list of LPollables into a single LPollable. Head-biased: when there is an element available from multiple upstreams, favors the upstream closest to the head of the input list.

Merges a list of LPollables into a single LPollable. Head-biased: when there is an element available from multiple upstreams, favors the upstream closest to the head of the input list.

Attributes

Signals the first action (i.e. poll or close) via a negative (Pong) signal.

Signals the first action (i.e. poll or close) via a negative (Pong) signal.

Attributes

def of[A](as: One -⚬ A*)(implicit A: PAffine[A]): One -⚬ LPollable[A]

Splits a stream of "A or B" to a stream of A and a stream of B.

Splits a stream of "A or B" to a stream of A and a stream of B.

Polls the upstream only after ''both'' downstreams poll. When either of the downstreams closes, the other downstream and the upstream are closed as well.

Attributes

def poll[A]: LPollable[A] -⚬ LPolled[A]

Implicits

Implicits

implicit def negativeLPollable[A](implicit A: Positive[A]): Negative[LPollable[A]]
implicit def negativeSignaling[A]: Negative[LPollable[A]]
implicit def pAffineLPollable[A]: PAffine[LPollable[A]]
implicit def positiveJunction[A](implicit A: Positive[A]): Positive[LPollable[A]]