public abstract class FanoutOutputs extends java.lang.Object implements DefaultOutputTransferStates, SubscriberManagement<java.lang.Object>
SubscriberManagement.Completed$, SubscriberManagement.EndOfStream, SubscriberManagement.ErrorCompleted, SubscriberManagement.ErrorCompleted$, SubscriberManagement.NotReached$
Constructor and Description |
---|
FanoutOutputs(int maxBufferSize,
int initialBufferSize,
ActorRef self,
Pump pump) |
Modifier and Type | Method and Description |
---|---|
abstract void |
afterShutdown() |
void |
cancel() |
protected void |
cancelUpstream()
called before
shutdown() if the stream is *not* being regularly completed
but shut-down due to the last subscriber having canceled its subscription |
void |
complete() |
ActorSubscriptionWithCursor<? super java.lang.Object> |
createSubscription(org.reactivestreams.Subscriber<? super java.lang.Object> subscriber)
Use to register a subscriber
|
boolean |
demandAvailable() |
long |
demandCount() |
protected scala.PartialFunction<java.lang.Object,scala.runtime.BoxedUnit> |
downstreamRunning() |
void |
enqueueOutputElement(java.lang.Object elem) |
void |
error(java.lang.Throwable e) |
protected ActorPublisher<java.lang.Object> |
exposedPublisher() |
int |
initialBufferSize() |
boolean |
isClosed() |
int |
maxBufferSize() |
TransferState |
NeedsDemand() |
Pump |
pump() |
protected void |
requestFromUpstream(long elements)
called when we are ready to consume more elements from our upstream
MUST NOT call pushToDownstream
|
protected void |
shutdown(boolean completed)
called when the spi.Publisher/Processor is ready to be shut down
|
SubReceive |
subreceive() |
protected scala.PartialFunction<java.lang.Object,scala.runtime.BoxedUnit> |
waitingExposedPublisher() |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
NeedsDemandOrCancel
abortDownstream, addSubscription, bufferDebug, completeDownstream, cursors, moreRequested, pushToDownstream, registerSubscriber, requestFromUpstreamIfRequired, unregisterSubscription, unregisterSubscriptionInternal
public TransferState NeedsDemand()
NeedsDemand
in interface DefaultOutputTransferStates
NeedsDemand
in interface Outputs
public int maxBufferSize()
maxBufferSize
in interface SubscriberManagement<java.lang.Object>
public int initialBufferSize()
initialBufferSize
in interface SubscriberManagement<java.lang.Object>
public Pump pump()
public ActorSubscriptionWithCursor<? super java.lang.Object> createSubscription(org.reactivestreams.Subscriber<? super java.lang.Object> subscriber)
SubscriberManagement
createSubscription
in interface SubscriberManagement<java.lang.Object>
subscriber
- (undocumented)protected ActorPublisher<java.lang.Object> exposedPublisher()
public boolean demandAvailable()
demandAvailable
in interface Outputs
public long demandCount()
demandCount
in interface Outputs
public SubReceive subreceive()
subreceive
in interface Outputs
public void enqueueOutputElement(java.lang.Object elem)
enqueueOutputElement
in interface Outputs
public abstract void afterShutdown()
protected void requestFromUpstream(long elements)
SubscriberManagement
requestFromUpstream
in interface SubscriberManagement<java.lang.Object>
elements
- (undocumented)protected void shutdown(boolean completed)
SubscriberManagement
shutdown
in interface SubscriberManagement<java.lang.Object>
completed
- (undocumented)protected void cancelUpstream()
SubscriberManagement
shutdown()
if the stream is *not* being regularly completed
but shut-down due to the last subscriber having canceled its subscriptioncancelUpstream
in interface SubscriberManagement<java.lang.Object>
protected scala.PartialFunction<java.lang.Object,scala.runtime.BoxedUnit> waitingExposedPublisher()
protected scala.PartialFunction<java.lang.Object,scala.runtime.BoxedUnit> downstreamRunning()