001/************************************************************************
002 * Licensed under Public Domain (CC0)                                    *
003 *                                                                       *
004 * To the extent possible under law, the person who associated CC0 with  *
005 * this code has waived all copyright and related or neighboring         *
006 * rights to this code.                                                  *
007 *                                                                       *
008 * You should have received a copy of the CC0 legalcode along with this  *
009 * work. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.*
010 ************************************************************************/
011
012package org.reactivestreams;
013
014/**
015 * A Processor represents a processing stage—which is both a {@link Subscriber}
016 * and a {@link Publisher} and obeys the contracts of both.
017 *
018 * @param <T> the type of element signaled to the {@link Subscriber}
019 * @param <R> the type of element signaled by the {@link Publisher}
020 */
021public interface Processor<T, R> extends Subscriber<T>, Publisher<R> {
022}