Hello,
Is it possible to have a push stream of push streams?
PushStream<PushStream<T>>
And if so how can I flatten it to a PushStream<T>?
The example I am trying looks something like this:
private static PushStreamProvider streams = new PushStreamProvider();
public static void main(String[] args) throws InterruptedException {
// Emit 1,2,3 asynchronously and close
PushStream<Integer> xs = streams.createStream(list(1 ,2, 3));
// Emit un-connected streams each of which once connected will emit a
number every X seconds
PushStream<PushStream<Integer>> yss = xs.map(x ->
streams.createStream(time(x)).map(ignore -> x));
// Flatten all time events into one stream
PushStream<Integer> zs = yss.flatMap(ts -> ts);
// This should connect all 3 timer streams and print the output for 15
sec
// Instead only the first timer stream is connected
zs.forEach(i -> print(i));
Thread.sleep(SECONDS.toMillis(15));
zs.close();
}
// Starts a thread that emits an event every pause seconds
public static PushEventSource<Integer> time(int pause) { ... }
// Starts a thread that emits the items on the list and closes the stream
public static <T> PushEventSource<T> list(T... list) {...}
Regards
-----------------------------------
Todor Boev
OSGi Platform
Software AG
_______________________________________________
OSGi Developer Mail List
[email protected]
https://mail.osgi.org/mailman/listinfo/osgi-dev