-
Notifications
You must be signed in to change notification settings - Fork 53
/
Copy pathDataService.java
50 lines (42 loc) · 1.65 KB
/
DataService.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
package itx.rxjava;
import io.reactivex.rxjava3.core.Completable;
import io.reactivex.rxjava3.core.Flowable;
import io.reactivex.rxjava3.core.Maybe;
import io.reactivex.rxjava3.core.Observable;
import io.reactivex.rxjava3.core.Single;
import itx.rxjava.dto.DataItem;
import itx.rxjava.dto.DataQuery;
import itx.rxjava.dto.SingleDataQuery;
import itx.rxjava.producer.CompletableDataItem;
public interface DataService {
/**
* This method returns data flow to client. Client thread is not blocked.
* @param dataQuery query parameters for data flow.
* @return {@link Flowable} consumable data flow with back pressure.
*/
Flowable<DataItem> getDataFlowWithBackPressure(DataQuery dataQuery);
/**
* This method returns data flow to client. Client thread is not blocked.
* @param dataQuery query parameters for data flow.
* @return {@link Observable} consumable data flow.
*/
Observable<DataItem> getDataFlow(DataQuery dataQuery);
/**
* This method returns single result.
* @param dataQuery query parameters for single result.
* @return {@link Single} consumable.
*/
Single<DataItem> getSingle(SingleDataQuery dataQuery);
/**
* This method notifies client that task has been completed or has failed.
* @param dataQuery query parameters for completable task;
* @return {@link Completable}.
*/
CompletableDataItem getCompletable(SingleDataQuery dataQuery);
/**
* This method returns single result.
* @param dataQuery query parameters for completable task;
* @return {@link Maybe} consumable.
*/
Maybe<DataItem> getMaybe(SingleDataQuery dataQuery);
}