Licensed under Public Domain (CC0) *
*
To the extent possible under law, the person who associated CC0 with *
this code has waived all copyright and related or neighboring *
rights to this code. *
*
You should have received a copy of the CC0 legalcode along with this *
work. If not, see .*
/************************************************************************
* Licensed under Public Domain (CC0) *
* *
* To the extent possible under law, the person who associated CC0 with *
* this code has waived all copyright and related or neighboring *
* rights to this code. *
* *
* You should have received a copy of the CC0 legalcode along with this *
* work. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.*
************************************************************************/
package org.reactivestreams;
A Publisher
is a provider of a potentially unbounded number of sequenced elements, publishing them according to the demand received from its Subscriber
(s). A Publisher
can serve multiple Subscriber
s subscribed subscribe(Subscriber)
dynamically at various points in time.
Type parameters: - <T> – the type of element signaled.
/**
* A {@link Publisher} is a provider of a potentially unbounded number of sequenced elements, publishing them according to
* the demand received from its {@link Subscriber}(s).
* <p>
* A {@link Publisher} can serve multiple {@link Subscriber}s subscribed {@link #subscribe(Subscriber)} dynamically
* at various points in time.
*
* @param <T> the type of element signaled.
*/
public interface Publisher<T> {
Request Publisher
to start streaming data. This is a "factory method" and can be called multiple times, each time starting a new Subscription
.
Each Subscription
will work for only a single Subscriber
.
A Subscriber
should only subscribe once to a single Publisher
.
If the Publisher
rejects the subscription attempt or otherwise fails it will signal the error via Subscriber.onError
.
Params: - s – the
Subscriber
that will consume signals from this Publisher
/**
* Request {@link Publisher} to start streaming data.
* <p>
* This is a "factory method" and can be called multiple times, each time starting a new {@link Subscription}.
* <p>
* Each {@link Subscription} will work for only a single {@link Subscriber}.
* <p>
* A {@link Subscriber} should only subscribe once to a single {@link Publisher}.
* <p>
* If the {@link Publisher} rejects the subscription attempt or otherwise fails it will
* signal the error via {@link Subscriber#onError}.
*
* @param s the {@link Subscriber} that will consume signals from this {@link Publisher}
*/
public void subscribe(Subscriber<? super T> s);
}