public class PushSubscription<O>
extends java.lang.Object
implements org.reactivestreams.Subscription, reactor.fn.Consumer<java.lang.Long>
In Reactor, a subscriber can be an Action which is both a Stream (Publisher) and a Subscriber.
| Modifier and Type | Field and Description |
|---|---|
protected static java.util.concurrent.atomic.AtomicLongFieldUpdater<PushSubscription> |
PENDING_UPDATER |
protected long |
pendingRequestSignals |
protected Stream<O> |
publisher |
protected org.reactivestreams.Subscriber<? super O> |
subscriber |
protected static java.util.concurrent.atomic.AtomicIntegerFieldUpdater<PushSubscription> |
TERMINAL_UPDATER |
protected int |
terminated |
| Constructor and Description |
|---|
PushSubscription(Stream<O> publisher,
org.reactivestreams.Subscriber<? super O> subscriber) |
| Modifier and Type | Method and Description |
|---|---|
void |
accept(java.lang.Long n) |
void |
cancel() |
boolean |
equals(java.lang.Object o) |
Stream<O> |
getPublisher() |
org.reactivestreams.Subscriber<? super O> |
getSubscriber() |
int |
hashCode() |
boolean |
hasPublisher() |
boolean |
isComplete() |
boolean |
markAsDeferredStart() |
boolean |
markAsStarted() |
void |
maxCapacity(long n) |
void |
onComplete() |
void |
onError(java.lang.Throwable throwable) |
void |
onNext(O ev) |
protected void |
onRequest(long n) |
long |
pendingRequestSignals() |
void |
request(long n) |
boolean |
shouldRequestPendingSignals() |
void |
start() |
boolean |
terminate() |
java.lang.String |
toString() |
void |
updatePendingRequests(long n) |
static <O> PushSubscription<O> |
wrap(org.reactivestreams.Subscription subscription,
org.reactivestreams.Subscriber<? super O> errorSubscriber)
Wrap the subscription behind a push subscription to start tracking its requests
|
protected final org.reactivestreams.Subscriber<? super O> subscriber
protected volatile int terminated
protected static final java.util.concurrent.atomic.AtomicIntegerFieldUpdater<PushSubscription> TERMINAL_UPDATER
protected volatile long pendingRequestSignals
protected static final java.util.concurrent.atomic.AtomicLongFieldUpdater<PushSubscription> PENDING_UPDATER
public static <O> PushSubscription<O> wrap(org.reactivestreams.Subscription subscription, org.reactivestreams.Subscriber<? super O> errorSubscriber)
subscription - the subscription to wrappublic final void accept(java.lang.Long n)
accept in interface reactor.fn.Consumer<java.lang.Long>public void request(long n)
request in interface org.reactivestreams.Subscriptionpublic void cancel()
cancel in interface org.reactivestreams.Subscriptionpublic boolean terminate()
public void onComplete()
public void onNext(O ev)
public void onError(java.lang.Throwable throwable)
public boolean hasPublisher()
public void updatePendingRequests(long n)
public void start()
public final boolean markAsStarted()
public final boolean markAsDeferredStart()
protected void onRequest(long n)
public final org.reactivestreams.Subscriber<? super O> getSubscriber()
public boolean isComplete()
public final long pendingRequestSignals()
public void maxCapacity(long n)
public boolean shouldRequestPendingSignals()
public int hashCode()
hashCode in class java.lang.Objectpublic boolean equals(java.lang.Object o)
equals in class java.lang.Objectpublic java.lang.String toString()
toString in class java.lang.Object