-
Notifications
You must be signed in to change notification settings - Fork 21
/
Copy pathReactiveReadStream.java
69 lines (58 loc) · 1.75 KB
/
ReactiveReadStream.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
/*
* Copyright 2014 Red Hat, Inc.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* and Apache License v2.0 which accompanies this distribution.
*
* The Eclipse Public License is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* The Apache License v2.0 is available at
* http://www.opensource.org/licenses/apache2.0.php
*
* You may elect to redistribute this code under either of these licenses.
*/
package io.vertx.ext.reactivestreams;
import io.vertx.core.Handler;
import io.vertx.core.streams.ReadStream;
import io.vertx.ext.reactivestreams.impl.ReactiveReadStreamImpl;
import org.reactivestreams.Subscriber;
/**
* A Vert.x read stream that also implements reactive streams subscriber interface.
*
* @author <a href="http://tfox.org">Tim Fox</a>
*/
public interface ReactiveReadStream<T> extends ReadStream<T>, Subscriber<T> {
/**
* Default batch size
*/
static final long DEFAULT_BATCH_SIZE = 4L;
/**
* Create a reactive read stream
*
* @return the stream
*/
static <T> ReactiveReadStream<T> readStream() {
return readStream(DEFAULT_BATCH_SIZE);
}
/**
* Create a reactive read stream specifying batch size
*
* @param batchSize the batch size
* @return the stream
*/
static <T> ReactiveReadStream<T> readStream(long batchSize) {
return new ReactiveReadStreamImpl<>(batchSize);
}
@Override
ReactiveReadStream<T> exceptionHandler(Handler<Throwable> handler);
@Override
ReactiveReadStream<T> handler(Handler<T> handler);
@Override
ReactiveReadStream<T> pause();
@Override
ReactiveReadStream<T> resume();
@Override
ReactiveReadStream<T> endHandler(Handler<Void> endHandler);
}