Top Inners Fields Constructors Methods
io.reactivex.rxjava3.internal.operators.flowable

public final Class FlowableReplay<T>

extends ConnectableFlowable<T>
implements HasUpstreamPublisher<T>
Class Inheritance
All Implemented Interfaces
io.reactivex.rxjava3.internal.fuseable.HasUpstreamPublisher
Imports
java.util.*, java.util.concurrent.TimeUnit, java.util.concurrent.atomic.*, org.reactivestreams.*, io.reactivex.rxjava3.core.*, io.reactivex.rxjava3.disposables.Disposable, io.reactivex.rxjava3.exceptions.Exceptions, io.reactivex.rxjava3.flowables.ConnectableFlowable, io.reactivex.rxjava3.functions.*, io.reactivex.rxjava3.internal.fuseable.HasUpstreamPublisher, io.reactivex.rxjava3.internal.subscribers.SubscriberResourceWrapper, io.reactivex.rxjava3.internal.subscriptions.*, io.reactivex.rxjava3.internal.util.*, io.reactivex.rxjava3.plugins.RxJavaPlugins, io.reactivex.rxjava3.schedulers.Timed

Nested and Inner Type Summary

Modifier and TypeClass and Description
pack-priv abstract static class
FlowableReplay.BoundedReplayBuffer<
the value type
T
>

Base class for bounded buffering with options to specify an enter and leave transforms and custom truncation behavior.

pack-priv static class
pack-priv static class
FlowableReplay.InnerSubscription<
the value type
T
>

A Subscription that manages the request and cancellation state of a child subscriber in thread-safe manner.

pack-priv static class
pack-priv static class
FlowableReplay.Node

Represents a node in a bounded replay buffer's linked list.

pack-priv static interface
FlowableReplay.ReplayBuffer<
the value type
T
>

The interface for interacting with various buffering logic.

pack-priv static class
pack-priv static class
pack-priv static class
pack-priv static class
pack-priv static class
FlowableReplay.SizeAndTimeBoundReplayBuffer<
the buffered value type
T
>

Size and time bound replay buffer.

pack-priv static class
FlowableReplay.SizeBoundReplayBuffer<
the value type
T
>

A bounded replay buffer implementation with size limit only.

pack-priv static class
FlowableReplay.UnboundedReplayBuffer<
the value type
T
>

Holds an unbounded list of events.

Field Summary

Modifier and TypeField and Description
pack-priv final Supplier<? extends FlowableReplay.ReplayBuffer<T>>
bufferFactory

A factory that creates the appropriate buffer for the ReplaySubscriber.

pack-priv final AtomicReference<FlowableReplay.ReplaySubscriber<T>>
current

Holds the current subscriber that is, will be or just was subscribed to the source observable.

pack-priv static final Supplier<T>
pack-priv final Publisher<T>
pack-priv final Flowable<T>
source

The source observable.

Constructor Summary

AccessConstructor and Description
private
FlowableReplay(Publisher<T> onSubscribe, Flowable<T> source, final AtomicReference<FlowableReplay.ReplaySubscriber<T>> current, final Supplier<? extends FlowableReplay.ReplayBuffer<T>> bufferFactory)

Method Summary

Modifier and TypeMethod and Description
public void
connect(Consumer<? super Disposable> connection)

public static <
the value type
T
>
ConnectableFlowable<T>

Returns:

the new ConnectableObservable instance
create
(Flowable<T>
the source Flowable to use
source
,
final int
the maximum number of elements to hold
bufferSize
,
boolean
if true, the head reference is refreshed to avoid unwanted item retention
eagerTruncate
)

Creates a replaying ConnectableObservable with a size bound buffer.

public static <
the value type
T
>
ConnectableFlowable<T>

Returns:

the new ConnectableObservable instance
create
(Flowable<T>
the source Flowable to use
source
,
long
the maximum age of entries
maxAge
,
TimeUnit
the unit of measure of the age amount
unit
,
Scheduler
the target scheduler providing the current time
scheduler
,
boolean
if true, the head reference is refreshed to avoid unwanted item retention
eagerTruncate
)

Creates a replaying ConnectableObservable with a time bound buffer.

public static <
the value type
T
>
ConnectableFlowable<T>

Returns:

the new ConnectableFlowable instance
create
(Flowable<T>
the source Flowable to use
source
,
final long
the maximum age of entries
maxAge
,
final TimeUnit
the unit of measure of the age amount
unit
,
final Scheduler
the target scheduler providing the current time
scheduler
,
final int
the maximum number of elements to hold
bufferSize
,
boolean
if true, the head reference is refreshed to avoid unwanted item retention
eagerTruncate
)

Creates a replaying ConnectableObservable with a size and time bound buffer.

pack-priv static <
the value type
T
>
ConnectableFlowable<T>

Returns:

the ConnectableFlowable instance
create
(Flowable<T>
the source Flowable to use
source
,
final Supplier<? extends FlowableReplay.ReplayBuffer<T>>
the factory to instantiate the appropriate buffer when the Flowable becomes active
bufferFactory
)

Creates a OperatorReplay instance to replay values of the given source Flowable.

public static <
the value type
T
>
ConnectableFlowable<T>

Returns:

the new ConnectableObservable instance
createFrom
(Flowable<? extends T>
the source Publisher to use
source
)

Creates a replaying ConnectableObservable with an unbounded buffer.

public static <
the connectable observable type
U
,
the result type
R
>
Flowable<R>

Returns:

the new Observable instance
multicastSelector
(final Supplier<? extends ConnectableFlowable<U>>
the factory that returns a ConnectableFlowable for each individual subscriber
connectableFactory
,
final Function<? super Flowable<U>, ? extends Publisher<R>>
the function that receives a Flowable and should return another Flowable that will be subscribed to
selector
)

Given a connectable observable factory, it multicasts over the generated ConnectableObservable via a selector function.

public void
reset()

Implements abstract io.reactivex.rxjava3.flowables.ConnectableFlowable.reset.

Resets this ConnectableFlowable into its fresh state if it has terminated.
public Publisher<T>
protected void
Inherited from io.reactivex.rxjava3.flowables.ConnectableFlowable:
autoConnectautoConnectautoConnectconnectconnectrefCountrefCountrefCountrefCountrefCountrefCount