-
Notifications
You must be signed in to change notification settings - Fork 0
/
overview-summary.html
449 lines (399 loc) · 29.6 KB
/
overview-summary.html
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>Overview (Spritz API Documentation)</title>
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
<script type="text/javascript" src="script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="Overview (Spritz API Documentation)";
}
}
catch(err) {
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li class="navBarCell1Rev">Overview</li>
<li>Package</li>
<li>Class</li>
<li><a href="overview-tree.html">Tree</a></li>
<li><a href="deprecated-list.html">Deprecated</a></li>
<li><a href="index-all.html">Index</a></li>
<li><a href="help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev</li>
<li>Next</li>
</ul>
<ul class="navList">
<li><a href="index.html?overview-summary.html" target="_top">Frames</a></li>
<li><a href="overview-summary.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="header">
<div class="subTitle">
<div class="block">
Spritz is a browser based reactive event stream library in the tradition of the
<a href="http://reactivex.io/">ReactiveX</a> philosophy.</div>
</div>
<p>See: <a href="#overview.description">Description</a></p>
</div>
<div class="contentContainer">
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Packages table, listing packages, and an explanation">
<caption><span>Packages</span><span class="tabEnd"> </span></caption>
<tr>
<th class="colFirst" scope="col">Package</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><a href="spritz/package-summary.html">spritz</a></td>
<td class="colLast">
<div class="block">The core elements of the Spritz library.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="spritz/dom/package-summary.html">spritz.dom</a></td>
<td class="colLast"> </td>
</tr>
</tbody>
</table>
</div>
<div class="contentContainer"><a name="overview.description">
<!-- -->
</a>
<div class="block"><p>
Spritz is a browser based reactive event stream library in the tradition of the
<a href="http://reactivex.io/">ReactiveX</a> philosophy. Applications are created by composing
event streams and Spritz shines when used to coordinate multiple independent event streams. The
library aims to simplify asynchronous programming and
minimize the hazards of side effects and mutable shared state.
</p>
<p>
The developer experience is a primary concern in Spritz without sacrificing end-user experience. This
means that extensive invariant checking occurs in development mode but is optimized away in production
builds of the library. Spritz is under heavy development, and sometimes the documentation does not keep
up to date. The goal of the library is to be easy to use, and this includes clear and concise documentation.
If something is unclear please <a href="https://github.com/spritz/spritz/issues">report it as a bug</a>
because it <em>is</em> a bug. If a new user has a hard time, then we need to fix the problem.
</p>
<p>
Spritz was developed to be used within the browser. It is designed to be transpiled down to reasonably
efficient javascript with a small code size. Often the library chose a smaller code size over a better
runtime speed under the assumption that the browser speed is more likely to be negatively impacted by
increased code size due to download time, js parse time and js compile time than it would be due to a
slight runtime performance degradation although the <a href="spritz/Stream.html#compose-java.util.function.Function-"><code>Stream.compose(Function)</code></a> escape hatch has
been added so that users can write their own operators when performance is critical.
</p>
<h3>Concepts</h3>
<h4>Events</h4>
<p>
An event is an action or occurrence recognized by software that occurs at a particular instant in
time. An event can be thought of as a pair containing a <code>value</code> element describing the event
data and a <code>time</code> element that indicates the time at which the event is emitted. Both the value
and time elements are just as important.
</p>
<p>
An example of an event may be a network message. Another example is a user interaction such as a keypress
or a mouse button click. An event could also be triggered by passing of time in a timer such that an event
is generated every <code>N</code> milliseconds.
</p>
<h4>Streams</h4>
<p>
A <a href="spritz/Stream.html" title="class in spritz"><code>stream</code></a> is a time-ordered sequence of events. For example, a stream of click
events from a UI control or a stream of messages over a WebSocket. Operators filter, transform and combine
input streams. An operator never modifies the input stream but instead creates a new stream.
</p>
<p>
A listener or a <a href="spritz/Subscriber.html" title="interface in spritz"><code>subscriber</code></a> in Spritz parlance receives the events and reacts to events
as they occur. The events are received in the order in which they are emitted and at the time they are emitted.
</p>
<p>
A stream can also emit other signals to the subscriber indicating that the stream has
completed or that the stream has failed. If the subscriber receives these signals then they will not
receive any more events from the stream and must handle that scenario appropriately. Thus streams may
be infinite, finite, or may fail.
</p>
<!--
A stream does not define an execution and in most cases could subscribe to the same stream multiple
times to get multiple executions. `"Subjects"` are the mechanism where a stream can control if new
execution data is created when subscriptions occur.
-->
<h3>Event Sources and Stream Operators</h3>
<p>
The library includes construction methods to create event sources combined with a powerful set of operators
for filtering, transforming and merging event streams. The construction methods and operators available are
as follows:
</p>
<ul>
<li><a href="#construction">Construction</a>: Methods to construct a stream</li>
<li><a href="#subject">Subject</a>: Methods to construct a subject</li>
<li><a href="#peeking">Peeking</a>: Observing items and signals as they pass through the stream</li>
<li><a href="#filtering">Filtering</a>: Operators that remove items from a stream based on some criteria</li>
<li><a href="#rate_limiting">Rate Limiting</a>: Rate limiting operators</li>
<li><a href="#slicing">Slicing</a>: Cutting the stream into sequential segments</li>
<li><a href="#transformation">Transformation</a>: Operators that change the form of items and signals passing through the stream</li>
<li><a href="#merging">Merging</a>: Combining multiple streams into a single stream</li>
<li><a href="#accumulating">Accumulating</a>: Accumulate items and signals and emit events based on accumulation process</li>
<li><a href="#scheduling">Scheduling</a>: Operators that change the <code>VirtualProcessorUnit</code> on which events and signals are emitted or the time at which events and signals are emitted</li>
<li><a href="#error_handling">Error Handling</a>: Operators that respond to errors</li>
<li><a href="#unknown">Unknown</a>: Unknown how we should categorize this operator at this stage</li>
</ul>
<h3><a name="construction">Construction</a></h3>
<p>Methods to construct a stream</p>
<ul>
<li><a href="spritz/Stream.html#of-T...-"><code>Stream.of(values)</code></a>: Creates a stream that emits the parameters as items and then emits the completion signal</li>
<li><a href="spritz/Stream.html#empty--"><code>Stream.empty()</code></a>: Creates a stream that emits no items and immediately emits a completion signal</li>
<li><a href="spritz/Stream.html#ofNullable-T-"><code>Stream.ofNullable(value)</code></a>: Creates a stream that emits the value parameter as an item if the value is not null</li>
<li><a href="spritz/Stream.html#fail-java.lang.Throwable-"><code>Stream.fail(error)</code></a>: Creates a stream that emits no items and immediately emits an error signal</li>
<li><a href="spritz/Stream.html#fromCollection-java.util.Collection-"><code>Stream.fromCollection(values)</code></a>: Creates a stream that emits items of the supplied collection</li>
<li><a href="spritz/Stream.html#fromStream-java.util.stream.Stream-"><code>Stream.fromStream(stream)</code></a>: Creates a stream that emits items from the supplied <a href="https://docs.oracle.com/javase/8/docs/api/java/util/stream/Stream.html?is-external=true" title="class or interface in java.util.stream"><code>Stream</code></a></li>
<li><a href="spritz/Stream.html#fromCallable-java.util.concurrent.Callable-"><code>Stream.fromCallable(callable)</code></a>: Creates an infinite stream that emits items from the <code>Callable</code> parameter</li>
<li><a href="spritz/Stream.html#fromSupplier-java.util.function.Supplier-"><code>Stream.fromSupplier(supplier)</code></a>: Creates an infinite stream that emits items from the <code>Supplier</code> parameter</li>
<li><a href="spritz/Stream.html#fromRunnable-java.lang.Runnable-"><code>Stream.fromRunnable(runnable)</code></a>: Creates a stream that completes when the <code>Runnable</code> parameter completes running</li>
<li><a href="spritz/Stream.html#generate-java.util.function.Supplier-int-"><code>Stream.generate(supplier,period)</code></a>: Creates an infinite stream that emits items from the <code>Supplier</code> parameter at specified period</li>
<li><a href="spritz/Stream.html#never--"><code>Stream.never()</code></a>: Creates a stream that emits no items, never completes and never fails</li>
<li><a href="spritz/Stream.html#range-int-int-"><code>Stream.range(start,count)</code></a>: Create a stream that emits a sequence of numbers within a specified range</li>
<li><a href="spritz/Stream.html#periodic-int-"><code>Stream.periodic(period)</code></a>: Create a stream that emits sequential numbers every specified interval of time</li>
<li><a href="spritz/Stream.html#webSocket-spritz.dom.WebSocketConfig-"><code>Stream.webSocket(config)</code></a>: </li>
<li><a href="spritz/Stream.html#concat-spritz.Stream...-"><code>Stream.concat(upstreams)</code></a>: </li>
<li><a href="spritz/Stream.html#merge-spritz.Stream...-"><code>Stream.merge(upstreams)</code></a>: </li>
<li><a href="spritz/Stream.html#create-spritz.SourceCreator-"><code>Stream.create(createFunction)</code></a>: Creates a stream using a simple function</li>
</ul>
<h3><a name="subject">Subject</a></h3>
<p>Methods to construct a subject</p>
<ul>
<li><a href="spritz/Stream.html#subject--"><code>Stream.subject()</code></a>: </li>
<li><a href="spritz/Stream.html#currentValueSubject-T-"><code>Stream.currentValueSubject(initialValue)</code></a>: </li>
<li><a href="spritz/Stream.html#replaySubjectWithMaxAge-int-"><code>Stream.replaySubjectWithMaxAge(maxAge)</code></a>: </li>
<li><a href="spritz/Stream.html#replaySubjectWithMaxSize-int-"><code>Stream.replaySubjectWithMaxSize(maxSize)</code></a>: </li>
<li><a href="spritz/Stream.html#replaySubject-int-int-"><code>Stream.replaySubject(maxSize,maxAge)</code></a>: </li>
<li><a href="spritz/Stream.html#replaySubject--"><code>Stream.replaySubject()</code></a>: </li>
</ul>
<h3><a name="peeking">Peeking</a></h3>
<p>Observing items and signals as they pass through the stream</p>
<ul>
<li><a href="spritz/Stream.html#peekSubscribe-java.util.function.Consumer-"><code>peekSubscribe(action)</code></a>: Return a stream containing all the items from this stream that invokes the action
parameter before signalling subscription</li>
<li><a href="spritz/Stream.html#afterSubscribe-java.util.function.Consumer-"><code>afterSubscribe(action)</code></a>: Return a stream containing all the items from this stream that invokes the action
parameter after signalling subscription</li>
<li><a href="spritz/Stream.html#peek-java.util.function.Consumer-"><code>peek(action)</code></a>: Return a stream containing all the items from this stream that invokes the action
parameter before each item is emitted</li>
<li><a href="spritz/Stream.html#afterNext-java.util.function.Consumer-"><code>afterNext(action)</code></a>: Return a stream containing all the items from this stream that invokes the action
parameter after each item is emitted</li>
<li><a href="spritz/Stream.html#peekError-java.util.function.Consumer-"><code>peekError(action)</code></a>: Return a stream containing all the items from this stream that invokes the action
parameter before signalling error</li>
<li><a href="spritz/Stream.html#afterError-java.util.function.Consumer-"><code>afterError(action)</code></a>: Return a stream containing all the items from this stream that invokes the action
parameter after signalling error</li>
<li><a href="spritz/Stream.html#peekComplete-java.lang.Runnable-"><code>peekComplete(action)</code></a>: Return a stream containing all the items from this stream that invokes the action
parameter before signalling complete</li>
<li><a href="spritz/Stream.html#afterComplete-java.lang.Runnable-"><code>afterComplete(action)</code></a>: Return a stream containing all the items from this stream that invokes the action
parameter after signalling complete</li>
<li><a href="spritz/Stream.html#peekCancel-java.lang.Runnable-"><code>peekCancel(action)</code></a>: Return a stream containing all the items from this stream that invokes the action
parameter before the stream is canceled by a downstream stage</li>
<li><a href="spritz/Stream.html#afterCancel-java.lang.Runnable-"><code>afterCancel(action)</code></a>: Return a stream containing all the items from this stream that invokes the action
parameter after the stream is canceled by a downstream stage</li>
<li><a href="spritz/Stream.html#peekTerminate-java.lang.Runnable-"><code>peekTerminate(action)</code></a>: Return a stream containing all the items from this stream that invokes the action
parameter before signalling complete or signalling error</li>
<li><a href="spritz/Stream.html#afterTerminate-java.lang.Runnable-"><code>afterTerminate(action)</code></a>: Return a stream containing all the items from this stream that invokes the action
parameter after signalling complete or signalling error</li>
</ul>
<h3><a name="filtering">Filtering</a></h3>
<p>Operators that remove items from a stream based on some criteria</p>
<ul>
<li><a href="spritz/Stream.html#filter-java.util.function.Predicate-"><code>filter(predicate)</code></a>: Filter the items emitted by this stream using the specified <code>Predicate</code></li>
<li><a href="spritz/Stream.html#ofType-java.lang.Class-"><code>ofType(type)</code></a>: Remove items in the stream that are not instances of the specified <code>type</code> and return a stream of the specified type</li>
<li><a href="spritz/Stream.html#ignoreElements--"><code>ignoreElements()</code></a>: Drop all items from this stream, only emitting the completion or failed signal</li>
<li><a href="spritz/Stream.html#distinct--"><code>distinct()</code></a>: Filter the items if they have been previously emitted</li>
<li><a href="spritz/Stream.html#skipRepeats--"><code>skipRepeats()</code></a>: Drops items from the stream if they are equal to the previous item emitted by the stream</li>
<li><a href="spritz/Stream.html#filterSuccessive-spritz.SuccessivePredicate-"><code>filterSuccessive(predicate)</code></a>: Filter consecutive items emitted by this stream using the specified <code>SuccessivePredicate</code></li>
</ul>
<h3><a name="rate_limiting">Rate Limiting</a></h3>
<p>Rate limiting operators</p>
<ul>
<li><a href="spritz/Stream.html#sample-int-"><code>sample(samplePeriod)</code></a>: Sample items from stream emitting the first item and the last item in each sample period</li>
<li><a href="spritz/Stream.html#sample-int-boolean-"><code>sample(samplePeriod,emitInitiatingItem)</code></a>: Sample items from stream emitting the last item in each sample period</li>
<li><a href="spritz/Stream.html#throttle-int-"><code>throttle(timeout)</code></a>: Drops items emitted by a stream that follow emitted item until the timeout expires</li>
<li><a href="spritz/Stream.html#throttle-spritz.TimeoutForItemFn-"><code>throttle(timeoutForItemFn)</code></a>: Drops items emitted by a stream that follow emitted item until the timeout
returned by the function expires</li>
<li><a href="spritz/Stream.html#debounce-spritz.TimeoutForItemFn-"><code>debounce(timeoutForItemFn)</code></a>: Drops items emitted by a stream that are followed by newer items before
the timeout returned by the function expires</li>
<li><a href="spritz/Stream.html#debounce-int-"><code>debounce(timeout)</code></a>: Drops items emitted by a stream that are followed by newer items before
the given timeout value expires</li>
</ul>
<h3><a name="slicing">Slicing</a></h3>
<p>Cutting the stream into sequential segments</p>
<ul>
<li><a href="spritz/Stream.html#take-int-"><code>take(maxSize)</code></a>: Truncate the stream, ensuring the stream is no longer than <code>maxSize</code> items in length</li>
<li><a href="spritz/Stream.html#limit-int-"><code>limit(maxSize)</code></a>: Truncate the stream, ensuring the stream is no longer than <code>maxSize</code> items in length</li>
<li><a href="spritz/Stream.html#first--"><code>first()</code></a>: Pass the first item downstream, complete the downstream and cancel the upstream</li>
<li><a href="spritz/Stream.html#firstOrError--"><code>firstOrError()</code></a>: Pass the first item downstream, complete the downstream and cancel the upstream</li>
<li><a href="spritz/Stream.html#firstOrDefault-T-"><code>firstOrDefault(defaultValue)</code></a>: Pass the first item downstream, complete the downstream and cancel the upstream</li>
<li><a href="spritz/Stream.html#skip-int-"><code>skip(count)</code></a>: Drop the first <code>count</code> items of this stream</li>
<li><a href="spritz/Stream.html#last--"><code>last()</code></a>: Drop all items except for the last item</li>
<li><a href="spritz/Stream.html#lastOrError--"><code>lastOrError()</code></a>: Drop all items except for the last item</li>
<li><a href="spritz/Stream.html#lastOrDefault-T-"><code>lastOrDefault(defaultValue)</code></a>: Drop all items except for the last item</li>
<li><a href="spritz/Stream.html#last-int-"><code>last(maxElements)</code></a>: Drop all items except for the last <code>maxElements</code> items</li>
<li><a href="spritz/Stream.html#takeLast-int-"><code>takeLast(maxElements)</code></a>: Drop all items except for the last <code>maxElements</code> items</li>
<li><a href="spritz/Stream.html#skipWhile-java.util.function.Predicate-"><code>skipWhile(predicate)</code></a>: Drop items from this stream until an item no longer matches the supplied <code>predicate</code></li>
<li><a href="spritz/Stream.html#skipUntil-java.util.function.Predicate-"><code>skipUntil(predicate)</code></a>: Drop items from this stream until an item matches the supplied <code>predicate</code></li>
<li><a href="spritz/Stream.html#takeWhile-java.util.function.Predicate-"><code>takeWhile(predicate)</code></a>: Return items from this stream until an item fails to match the supplied <code>predicate</code></li>
<li><a href="spritz/Stream.html#takeUntil-java.util.function.Predicate-"><code>takeUntil(predicate)</code></a>: Return items from this stream until an item matches the supplied <code>predicate</code></li>
</ul>
<h3><a name="transformation">Transformation</a></h3>
<p>Operators that change the form of items and signals passing through the stream</p>
<ul>
<li><a href="spritz/Stream.html#ofType-java.lang.Class-"><code>ofType(type)</code></a>: Remove items in the stream that are not instances of the specified <code>type</code> and return a stream of the specified type</li>
<li><a href="spritz/Stream.html#map-java.util.function.Function-"><code>map(mapper)</code></a>: Transform items emitted by this stream using the <code>mapper</code> function</li>
<li><a href="spritz/Stream.html#mapTo-DownstreamT-"><code>mapTo(value)</code></a>: Transform items emitted by this stream to a constant <code>value</code></li>
<li><a href="spritz/Stream.html#concatMap-java.util.function.Function-"><code>concatMap(mapper)</code></a>: Map each input item to a stream and then concatenate the items emitted by the mapped stream
into this stream</li>
<li><a href="spritz/Stream.html#mergeMap-java.util.function.Function-int-"><code>mergeMap(mapper,maxConcurrency)</code></a>: Map each input item to a stream and then flatten the items emitted by that stream into
this stream</li>
<li><a href="spritz/Stream.html#mergeMap-java.util.function.Function-"><code>mergeMap(mapper)</code></a>: Map each input item to a stream and flatten the items emitted by the inner stream into this stream</li>
<li><a href="spritz/Stream.html#switchMap-java.util.function.Function-"><code>switchMap(mapper)</code></a>: Map each input item to a stream and emit the items from the most recently
mapped stream</li>
<li><a href="spritz/Stream.html#exhaustMap-java.util.function.Function-"><code>exhaustMap(mapper)</code></a>: Map each input item to a stream and emit the items from the most recently
mapped stream</li>
</ul>
<h3><a name="merging">Merging</a></h3>
<p>Combining multiple streams into a single stream</p>
<ul>
<li><a href="spritz/Stream.html#errorIfEmpty-java.util.function.Supplier-"><code>errorIfEmpty(errorFactory)</code></a>: Emit an error if the stream completes and no items were emitted</li>
<li><a href="spritz/Stream.html#concatMap-java.util.function.Function-"><code>concatMap(mapper)</code></a>: Map each input item to a stream and then concatenate the items emitted by the mapped stream
into this stream</li>
<li><a href="spritz/Stream.html#mergeMap-java.util.function.Function-int-"><code>mergeMap(mapper,maxConcurrency)</code></a>: Map each input item to a stream and then flatten the items emitted by that stream into
this stream</li>
<li><a href="spritz/Stream.html#mergeMap-java.util.function.Function-"><code>mergeMap(mapper)</code></a>: Map each input item to a stream and flatten the items emitted by the inner stream into this stream</li>
<li><a href="spritz/Stream.html#switchMap-java.util.function.Function-"><code>switchMap(mapper)</code></a>: Map each input item to a stream and emit the items from the most recently
mapped stream</li>
<li><a href="spritz/Stream.html#exhaustMap-java.util.function.Function-"><code>exhaustMap(mapper)</code></a>: Map each input item to a stream and emit the items from the most recently
mapped stream</li>
<li><a href="spritz/Stream.html#mergeWith-spritz.Stream...-"><code>mergeWith(streams)</code></a>: Concurrently merge items from the specified streams into the current stream</li>
<li><a href="spritz/Stream.html#append-spritz.Stream...-"><code>append(streams)</code></a>: Emit all the items from this stream and then when the complete signal is emitted then
merge the items from the specified streams one after another until all streams complete</li>
<li><a href="spritz/Stream.html#prepend-spritz.Stream...-"><code>prepend(streams)</code></a>: Merge the items from the specified streams before the items from this stream sequentially</li>
<li><a href="spritz/Stream.html#startWith-T-"><code>startWith(value)</code></a>: Emit the specified item before emitting items from this stream</li>
<li><a href="spritz/Stream.html#endWith-T-"><code>endWith(value)</code></a>: Emit the specified item after emitting items from this stream</li>
<li><a href="spritz/Stream.html#defaultIfEmpty-T-"><code>defaultIfEmpty(defaultValue)</code></a>: If upstream emits no items and then completes then emit the <code>defaultValue</code> before completing this stream</li>
</ul>
<h3><a name="accumulating">Accumulating</a></h3>
<p>Accumulate items and signals and emit events based on accumulation process</p>
<ul>
<li><a href="spritz/Stream.html#scan-spritz.AccumulatorFunction-DownstreamT-"><code>scan(accumulatorFunction,initialValue)</code></a>: Apply an accumulator function to each item in the stream emit the accumulated value</li>
</ul>
<h3><a name="scheduling">Scheduling</a></h3>
<p>Operators that change the <code>VirtualProcessorUnit</code> on which events and signals are emitted or the time at which events and signals are emitted</p>
<ul>
<li><a href="spritz/Stream.html#subscribeOn-zemeckis.VirtualProcessorUnit-"><code>subscribeOn(virtualProcessorUnit)</code></a>: Invoke the <code>Subscriber#onSubscribe(Subscription)</code> on upstream on the specified <code>VirtualProcessorUnit</code></li>
<li><a href="spritz/Stream.html#observeOn-zemeckis.VirtualProcessorUnit-"><code>observeOn(virtualProcessorUnit)</code></a>: Emit signals and item on the specified <code>VirtualProcessorUnit</code></li>
</ul>
<h3><a name="error_handling">Error Handling</a></h3>
<p>Operators that respond to errors</p>
<ul>
<li><a href="spritz/Stream.html#rescue-java.util.function.Function-"><code>rescue(streamFromErrorFn)</code></a>: When an upstream emits an error then replace upstream with the stream returned by the supplied function rather
than emitting an error to downstream</li>
<li><a href="spritz/Stream.html#rescueThenReturn-T-"><code>rescueThenReturn(value)</code></a>: When an upstream emits an error then emit supplied value and complete the stream</li>
<li><a href="spritz/Stream.html#repeat-int-"><code>repeat(maxErrorCount)</code></a>: When an upstream emits an error then re-subscribe to upstream rather than emitting an error to downstream</li>
<li><a href="spritz/Stream.html#repeat--"><code>repeat()</code></a>: When an upstream emits an error then re-subscribe to upstream rather than emitting an error to downstream</li>
</ul>
<h3><a name="unknown">Unknown</a></h3>
<p>Unknown how we should categorize this operator at this stage</p>
<ul>
<li><a href="spritz/ConnectableStream.html#refCount--"><code>refCount()</code></a>: a stream that ensures that as long as there is at least one subscriber to this stream, then this stream will be subscribed to upstream</li>
<li><a href="spritz/Stream.html#publish--"><code>publish()</code></a>: Create a multicast, <code>ConnectableStream</code> that shares a single subscription to this stream</li>
<li><a href="spritz/Stream.html#publishCurrentValue-T-"><code>publishCurrentValue(initialValue)</code></a>: Create a multicast, <code>ConnectableStream</code> that shares a single subscription to this stream</li>
<li><a href="spritz/Stream.html#publishReplay--"><code>publishReplay()</code></a>: Create a multicast, <code>ConnectableStream</code> that shares a single subscription to this stream</li>
<li><a href="spritz/Stream.html#publishReplayWithMaxSize-int-"><code>publishReplayWithMaxSize(maxSize)</code></a>: Create a multicast, <code>ConnectableStream</code> that shares a single subscription to this stream</li>
<li><a href="spritz/Stream.html#publishReplayWithMaxAge-int-"><code>publishReplayWithMaxAge(maxAge)</code></a>: Create a multicast, <code>ConnectableStream</code> that shares a single subscription to this stream</li>
<li><a href="spritz/Stream.html#publishReplay-int-int-"><code>publishReplay(maxSize,maxAge)</code></a>: Create a multicast, <code>ConnectableStream</code> that shares a single subscription to this stream</li>
<li><a href="spritz/Stream.html#share--"><code>share()</code></a>: Create a stream that multicasts the source Stream</li>
<li><a href="spritz/Stream.html#timeout-int-"><code>timeout(timeoutTime)</code></a>: Signals error with a <code>TimeoutException</code> if an item is not emitted within the specified timeout period from the previous item</li>
<li><a href="spritz/Stream.html#forEach-java.util.function.Consumer-"><code>forEach(action)</code></a>: </li>
</ul></div>
</div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li class="navBarCell1Rev">Overview</li>
<li>Package</li>
<li>Class</li>
<li><a href="overview-tree.html">Tree</a></li>
<li><a href="deprecated-list.html">Deprecated</a></li>
<li><a href="index-all.html">Index</a></li>
<li><a href="help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev</li>
<li>Next</li>
</ul>
<ul class="navList">
<li><a href="index.html?overview-summary.html" target="_top">Frames</a></li>
<li><a href="overview-summary.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>