Hub

zio.Hub
See theHub companion object
abstract class Hub[A] extends Enqueue[A]

A Hub is an asynchronous message hub. Publishers can offer messages to the hub and subscribers can subscribe to take messages from the hub.

Attributes

Companion
object
Graph
Supertypes
trait Enqueue[A]
trait Serializable
class Object
trait Matchable
class Any

Members list

Value members

Abstract methods

def publish(a: A)(implicit trace: Trace): UIO[Boolean]

Publishes a message to the hub, returning whether the message was published to the hub.

Publishes a message to the hub, returning whether the message was published to the hub.

Attributes

def publishAll[A1 <: A](as: Iterable[A1])(implicit trace: Trace): UIO[Chunk[A1]]

Publishes all of the specified messages to the hub, returning any messages that were not published to the hub.

Publishes all of the specified messages to the hub, returning any messages that were not published to the hub.

Attributes

def subscribe(implicit trace: Trace): ZIO[Scope, Nothing, Dequeue[A]]

Subscribes to receive messages from the hub. The resulting subscription can be evaluated multiple times within the scope to take a message from the hub each time.

Subscribes to receive messages from the hub. The resulting subscription can be evaluated multiple times within the scope to take a message from the hub each time.

Attributes

Concrete methods

final override def isEmpty(implicit trace: Trace): UIO[Boolean]

Checks whether the queue is currently empty.

Checks whether the queue is currently empty.

Attributes

Definition Classes
final override def isFull(implicit trace: Trace): UIO[Boolean]

Checks whether the queue is currently full.

Checks whether the queue is currently full.

Attributes

Definition Classes
final def offer(a: A)(implicit trace: Trace): UIO[Boolean]

Places one value in the queue.

Places one value in the queue.

Attributes

final def offerAll[A1 <: A](as: Iterable[A1])(implicit trace: Trace): UIO[Chunk[A1]]

For Bounded Queue: uses the BackPressure Strategy, places the values in the queue and always returns no leftovers. If the queue has reached capacity, then the fiber performing the offerAll will be suspended until there is room in the queue.

For Bounded Queue: uses the BackPressure Strategy, places the values in the queue and always returns no leftovers. If the queue has reached capacity, then the fiber performing the offerAll will be suspended until there is room in the queue.

For Unbounded Queue: Places all values in the queue and returns no leftovers.

For Sliding Queue: uses Sliding Strategy If there is room in the queue, it places the values otherwise it removes the old elements and enqueues the new ones. Always returns no leftovers.

For Dropping Queue: uses Dropping Strategy, It places the values in the queue but if there is no room it will not enqueue them and return the leftovers.

Attributes

Inherited methods

def awaitShutdown(implicit trace: Trace): UIO[Unit]

Waits until the queue is shutdown. The IO returned by this method will not resume until the queue has been shutdown. If the queue is already shutdown, the IO will resume right away.

Waits until the queue is shutdown. The IO returned by this method will not resume until the queue has been shutdown. If the queue is already shutdown, the IO will resume right away.

Attributes

Inherited from:
Enqueue
def capacity: Int

How many elements can hold in the queue

How many elements can hold in the queue

Attributes

Inherited from:
Enqueue
def isShutdown(implicit trace: Trace): UIO[Boolean]

true if shutdown has been called.

true if shutdown has been called.

Attributes

Inherited from:
Enqueue
def shutdown(implicit trace: Trace): UIO[Unit]

Interrupts any fibers that are suspended on offer or take. Future calls to offer* and take* will be interrupted immediately.

Interrupts any fibers that are suspended on offer or take. Future calls to offer* and take* will be interrupted immediately.

Attributes

Inherited from:
Enqueue
def size(implicit trace: Trace): UIO[Int]

Retrieves the size of the queue. This may be negative if fibers are suspended waiting for elements to be added to the queue or greater than the capacity if fibers are suspended waiting to add elements to the queue.

Retrieves the size of the queue. This may be negative if fibers are suspended waiting for elements to be added to the queue or greater than the capacity if fibers are suspended waiting to add elements to the queue.

Attributes

Inherited from:
Enqueue