Package graphql.execution.reactive
Class SingleSubscriberPublisher<T>
java.lang.Object
graphql.execution.reactive.SingleSubscriberPublisher<T>
- Type Parameters:
T
- the things to publish
- All Implemented Interfaces:
org.reactivestreams.Publisher<T>
public class SingleSubscriberPublisher<T>
extends Object
implements org.reactivestreams.Publisher<T>
A Publisher of things that are buffered and handles a single subscriber at a time.
Rule #1 of reactive streams is don't write your own implementation. However rule #1 of graphql-java is that we have
no unnecessary dependencies and force users into a code corner. So we chose to have a very simple implementation (single subscriber)
implementation that allows a stream of results to be streamed out. People can wrap this is a more complete implementation
if they so choose.
Inspired by Public Domain CC0 code at
https://github.com/jroper/reactive-streams-servlet/tree/master/reactive-streams-servlet/src/main/java/org/reactivestreams/servlet
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic interface
This is called when a subscription is made to the publisher -
Constructor Summary
ConstructorsConstructorDescriptionConstructs a publisher with no callback when subscribedSingleSubscriberPublisher
(SingleSubscriberPublisher.OnSubscriptionCallback subscriptionCallback) The producing code can provide a callback to know when the subscriber attaches -
Method Summary
Modifier and TypeMethodDescriptionvoid
Called by the producing code to say there is no more data to offer and the stream is completevoid
Called from the producing code to offer data up ready for a subscriber to read itvoid
void
-
Constructor Details
-
SingleSubscriberPublisher
public SingleSubscriberPublisher()Constructs a publisher with no callback when subscribed -
SingleSubscriberPublisher
public SingleSubscriberPublisher(SingleSubscriberPublisher.OnSubscriptionCallback subscriptionCallback) The producing code can provide a callback to know when the subscriber attaches- Parameters:
subscriptionCallback
- the callback when some ones
-
-
Method Details
-
offer
Called from the producing code to offer data up ready for a subscriber to read it- Parameters:
data
- the data to offer
-
noMoreData
public void noMoreData()Called by the producing code to say there is no more data to offer and the stream is complete -
offerError
-
subscribe
- Specified by:
subscribe
in interfaceorg.reactivestreams.Publisher<T>
-