All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.reactivestreams.Publisher Maven / Gradle / Ivy

There is a newer version: 1.0.4
Show newest version
/************************************************************************
 * 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 .*
 ************************************************************************/

package org.reactivestreams;

/**
 * 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).
 * 

* A {@link Publisher} can serve multiple {@link Subscriber}s subscribed {@link #subscribe(Subscriber)} dynamically * at various points in time. * * @param the type of element signaled. */ public interface Publisher { /** * Request {@link Publisher} to start streaming data. *

* This is a "factory method" and can be called multiple times, each time starting a new {@link Subscription}. *

* Each {@link Subscription} will work for only a single {@link Subscriber}. *

* A {@link Subscriber} should only subscribe once to a single {@link Publisher}. *

* 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 s); }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy