THub

abstract class THub[A] extends TEnqueue[A]

A THub is a transactional message hub. Publishers can publish messages to the hub and subscribers can subscribe to take messages from the hub.

Companion:
object
trait TEnqueue[A]
class Object
trait Matchable
class Any

Value members

Abstract methods

def publish(a: A): USTM[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.

def publishAll(as: Iterable[A]): USTM[Boolean]

Publishes all of the specified messages to the hub, returning whether they were published to the hub.

Publishes all of the specified messages to the hub, returning whether they were published to the hub.

Subscribes to receive messages from the hub. The resulting subscription can be evaluated multiple times to take a message from the hub each time. The caller is responsible for unsubscribing from the hub by shutting down the queue.

Subscribes to receive messages from the hub. The resulting subscription can be evaluated multiple times to take a message from the hub each time. The caller is responsible for unsubscribing from the hub by shutting down the queue.

Concrete methods

final override def awaitShutdown: USTM[Unit]

Waits for the hub to be shut down.

Waits for the hub to be shut down.

Definition Classes
final override def isEmpty: USTM[Boolean]

Checks if the queue is empty.

Checks if the queue is empty.

Definition Classes
final override def isFull: USTM[Boolean]

Checks if the queue is at capacity.

Checks if the queue is at capacity.

Definition Classes
final def offer(a: A): USTM[Boolean]

Offers a value to the queue, returning whether the value was offered to the queue.

Offers a value to the queue, returning whether the value was offered to the queue.

final def offerAll(as: Iterable[A]): USTM[Boolean]

Offers all of the specified values to the queue, returning whether they were offered to the queue.

Offers all of the specified values to the queue, returning whether they were offered to the queue.

final def subscribeScoped(implicit trace: Trace): ZIO[Scope, Nothing, TDequeue[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.

Inherited methods

def capacity: Int

The maximum capacity of the queue.

The maximum capacity of the queue.

Inherited from:
TEnqueue
def isShutdown: USTM[Boolean]

Checks whether the queue is shut down.

Checks whether the queue is shut down.

Inherited from:
TEnqueue
def shutdown: USTM[Unit]

Shuts down the queue.

Shuts down the queue.

Inherited from:
TEnqueue
def size: USTM[Int]

The current number of values in the queue.

The current number of values in the queue.

Inherited from:
TEnqueue