Package io.reactivex.rxjava3.subjects
Class ReplaySubject.SizeAndTimeBoundReplayBuffer<T>
- java.lang.Object
-
- java.util.concurrent.atomic.AtomicReference<java.lang.Object>
-
- io.reactivex.rxjava3.subjects.ReplaySubject.SizeAndTimeBoundReplayBuffer<T>
-
- All Implemented Interfaces:
ReplaySubject.ReplayBuffer<T>,java.io.Serializable
- Enclosing class:
- ReplaySubject<T>
static final class ReplaySubject.SizeAndTimeBoundReplayBuffer<T> extends java.util.concurrent.atomic.AtomicReference<java.lang.Object> implements ReplaySubject.ReplayBuffer<T>
-
-
Field Summary
Fields Modifier and Type Field Description (package private) booleandone(package private) ReplaySubject.TimedNode<java.lang.Object>head(package private) longmaxAge(package private) intmaxSize(package private) Schedulerschedulerprivate static longserialVersionUID(package private) intsize(package private) ReplaySubject.TimedNode<java.lang.Object>tail(package private) java.util.concurrent.TimeUnitunit
-
Constructor Summary
Constructors Constructor Description SizeAndTimeBoundReplayBuffer(int maxSize, long maxAge, java.util.concurrent.TimeUnit unit, Scheduler scheduler)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidadd(T value)voidaddFinal(java.lang.Object notificationLite)(package private) ReplaySubject.TimedNode<java.lang.Object>getHead()TgetValue()T[]getValues(T[] array)voidreplay(ReplaySubject.ReplayDisposable<T> rs)intsize()(package private) intsize(ReplaySubject.TimedNode<java.lang.Object> h)(package private) voidtrim()(package private) voidtrimFinal()voidtrimHead()Replace a non-empty head node with an empty one to allow the GC of the inaccessible old value.-
Methods inherited from class java.util.concurrent.atomic.AtomicReference
accumulateAndGet, compareAndExchange, compareAndExchangeAcquire, compareAndExchangeRelease, compareAndSet, get, getAcquire, getAndAccumulate, getAndSet, getAndUpdate, getOpaque, getPlain, lazySet, set, setOpaque, setPlain, setRelease, toString, updateAndGet, weakCompareAndSet, weakCompareAndSetAcquire, weakCompareAndSetPlain, weakCompareAndSetRelease, weakCompareAndSetVolatile
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface io.reactivex.rxjava3.subjects.ReplaySubject.ReplayBuffer
compareAndSet, get
-
-
-
-
Field Detail
-
serialVersionUID
private static final long serialVersionUID
- See Also:
- Constant Field Values
-
maxSize
final int maxSize
-
maxAge
final long maxAge
-
unit
final java.util.concurrent.TimeUnit unit
-
scheduler
final Scheduler scheduler
-
size
int size
-
head
volatile ReplaySubject.TimedNode<java.lang.Object> head
-
tail
ReplaySubject.TimedNode<java.lang.Object> tail
-
done
volatile boolean done
-
-
Constructor Detail
-
SizeAndTimeBoundReplayBuffer
SizeAndTimeBoundReplayBuffer(int maxSize, long maxAge, java.util.concurrent.TimeUnit unit, Scheduler scheduler)
-
-
Method Detail
-
trim
void trim()
-
trimFinal
void trimFinal()
-
add
public void add(T value)
- Specified by:
addin interfaceReplaySubject.ReplayBuffer<T>
-
addFinal
public void addFinal(java.lang.Object notificationLite)
- Specified by:
addFinalin interfaceReplaySubject.ReplayBuffer<T>
-
trimHead
public void trimHead()
Replace a non-empty head node with an empty one to allow the GC of the inaccessible old value.- Specified by:
trimHeadin interfaceReplaySubject.ReplayBuffer<T>
-
getValue
@Nullable public T getValue()
- Specified by:
getValuein interfaceReplaySubject.ReplayBuffer<T>
-
getHead
ReplaySubject.TimedNode<java.lang.Object> getHead()
-
getValues
public T[] getValues(T[] array)
- Specified by:
getValuesin interfaceReplaySubject.ReplayBuffer<T>
-
replay
public void replay(ReplaySubject.ReplayDisposable<T> rs)
- Specified by:
replayin interfaceReplaySubject.ReplayBuffer<T>
-
size
public int size()
- Specified by:
sizein interfaceReplaySubject.ReplayBuffer<T>
-
size
int size(ReplaySubject.TimedNode<java.lang.Object> h)
-
-