001package org.reactivestreams.example.unicast; 002 003import java.util.Iterator; 004import java.util.concurrent.Executor; 005 006import org.reactivestreams.Subscription; 007import org.reactivestreams.Subscriber; 008import org.reactivestreams.Publisher; 009 010public class InfiniteIncrementNumberPublisher extends AsyncIterablePublisher<Integer> { 011 public InfiniteIncrementNumberPublisher(final Executor executor) { 012 super(new Iterable<Integer>() { 013 @Override public Iterator<Integer> iterator() { 014 return new Iterator<Integer>() { 015 private int at = 0; 016 @Override public boolean hasNext() { return true; } 017 @Override public Integer next() { return at++; } // Wraps around on overflow 018 @Override public void remove() { throw new UnsupportedOperationException(); } 019 }; 020 } 021 }, executor); 022 } 023}