Object

io.reactors.protocol.BackpressureProtocols

Backpressure

Related Doc: package BackpressureProtocols

Permalink

object Backpressure

Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Backpressure
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. case class Link[T](pressure: Channel[Int], buffer: EventBuffer[T], subscription: Subscription) extends Product with Serializable

    Permalink

    Represents an established backpressure link.

    Represents an established backpressure link.

    Connection clients must manually release events from the associated event buffer and then send pressure tokens back to the producer. The event buffer has an available signal used to notify about event availability.

    For convenience, every backpressure link can be converted into a Pump object, which automatically sends backpressure tokens when events are dequeued from the event buffer.

    T

    type of the events delivered on the backpressure channel

    pressure

    backpressure channel, used by consumers to signal the producers when additional events can be sent

    buffer

    event buffer that holds events ready to be delivered

    subscription

    resources associated with the link

  2. case class Medium[R, T](openServer: (ChannelBuilder) ⇒ Connector[R], serve: (Connector[R]) ⇒ protocol.ServerSide[R, protocol.TwoWay[T, Int]], connect: (Channel[R]) ⇒ IVar[protocol.TwoWay[Int, T]]) extends Product with Serializable

    Permalink

    Abstracts over the underlying two-way communication protocol.

    Abstracts over the underlying two-way communication protocol.

    Captures the protocol needed to create a two-way server, and to connect to it.

  3. trait Policy extends AnyRef

    Permalink

    Captures the specific backpressure policy.

    Captures the specific backpressure policy.

    While the overall picture with backpressure is that producers can only send events to consumers once consumers send them pressure tokens, there are subtle differences in how this backpressure can be implemented. The details are captured in:

    • How the consumer-side (i.e. server-side) pressure stream is forwarded to the producer.
    • How a Valve object is created from a two-way link on the producer-side (i.e. client-side).
  4. case class PumpServer[R, T](channel: Channel[R], links: Events[protocol.Pump[T]], subscription: Subscription) extends protocol.ServerSide[R, protocol.Pump[T]] with Product with Serializable

    Permalink

    A variant of a backpressure server that emits backpressure pumps.

    A variant of a backpressure server that emits backpressure pumps.

    See Backpressure.Server.

  5. case class Server[R, T](channel: Channel[R], links: Events[Link[T]], subscription: Subscription) extends protocol.ServerSide[R, Link[T]] with Product with Serializable

    Permalink

    Represents the state of a backpressure link server.

    Represents the state of a backpressure link server.

    R

    type of the request object used by the underlying medium

    T

    type of the events delivered on the backpressure channel

    channel

    request channel that allows the clients to send requests for new backpressure links

    links

    server-side event stream that emits links that are established with this backpressure server

    subscription

    resources associated with the backpressure server

Value Members

  1. final def !=(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  4. object Medium extends Serializable

    Permalink
  5. object Policy

    Permalink
  6. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  7. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  8. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  9. def equals(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  10. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  11. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
  12. def hashCode(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  13. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  14. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  15. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
  16. final def notifyAll(): Unit

    Permalink
    Definition Classes
    AnyRef
  17. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  18. def toString(): String

    Permalink
    Definition Classes
    AnyRef → Any
  19. final def wait(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  20. final def wait(arg0: Long, arg1: Int): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  21. final def wait(arg0: Long): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from AnyRef

Inherited from Any

Ungrouped