diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 0000000000..76e9aa3c6d
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1,15 @@
+# Set default behaviour, in case users don't have core.autocrlf set.
+* text=auto
+
+# Explicitly declare text files we want to always be normalized and converted
+# to native line endings on checkout.
+*.java text
+*.groovy text
+*.scala text
+*.clj text
+*.txt text
+*.md text
+
+# Denote all files that are truly binary and should not be modified.
+*.png binary
+*.jpg binary
diff --git a/gradlew.bat b/gradlew.bat
index aec99730b4..8a0b282aa6 100644
--- a/gradlew.bat
+++ b/gradlew.bat
@@ -1,90 +1,90 @@
-@if "%DEBUG%" == "" @echo off
-@rem ##########################################################################
-@rem
-@rem Gradle startup script for Windows
-@rem
-@rem ##########################################################################
-
-@rem Set local scope for the variables with windows NT shell
-if "%OS%"=="Windows_NT" setlocal
-
-@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-set DEFAULT_JVM_OPTS=
-
-set DIRNAME=%~dp0
-if "%DIRNAME%" == "" set DIRNAME=.
-set APP_BASE_NAME=%~n0
-set APP_HOME=%DIRNAME%
-
-@rem Find java.exe
-if defined JAVA_HOME goto findJavaFromJavaHome
-
-set JAVA_EXE=java.exe
-%JAVA_EXE% -version >NUL 2>&1
-if "%ERRORLEVEL%" == "0" goto init
-
-echo.
-echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
-echo.
-echo Please set the JAVA_HOME variable in your environment to match the
-echo location of your Java installation.
-
-goto fail
-
-:findJavaFromJavaHome
-set JAVA_HOME=%JAVA_HOME:"=%
-set JAVA_EXE=%JAVA_HOME%/bin/java.exe
-
-if exist "%JAVA_EXE%" goto init
-
-echo.
-echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
-echo.
-echo Please set the JAVA_HOME variable in your environment to match the
-echo location of your Java installation.
-
-goto fail
-
-:init
-@rem Get command-line arguments, handling Windowz variants
-
-if not "%OS%" == "Windows_NT" goto win9xME_args
-if "%@eval[2+2]" == "4" goto 4NT_args
-
-:win9xME_args
-@rem Slurp the command line arguments.
-set CMD_LINE_ARGS=
-set _SKIP=2
-
-:win9xME_args_slurp
-if "x%~1" == "x" goto execute
-
-set CMD_LINE_ARGS=%*
-goto execute
-
-:4NT_args
-@rem Get arguments from the 4NT Shell from JP Software
-set CMD_LINE_ARGS=%$
-
-:execute
-@rem Setup the command line
-
-set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
-
-@rem Execute Gradle
-"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
-
-:end
-@rem End local scope for the variables with windows NT shell
-if "%ERRORLEVEL%"=="0" goto mainEnd
-
-:fail
-rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
-rem the _cmd.exe /c_ return code!
-if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
-exit /b 1
-
-:mainEnd
-if "%OS%"=="Windows_NT" endlocal
-
-:omega
+@if "%DEBUG%" == "" @echo off
+@rem ##########################################################################
+@rem
+@rem Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS=
+
+set DIRNAME=%~dp0
+if "%DIRNAME%" == "" set DIRNAME=.
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if "%ERRORLEVEL%" == "0" goto init
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto init
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:init
+@rem Get command-line arguments, handling Windowz variants
+
+if not "%OS%" == "Windows_NT" goto win9xME_args
+if "%@eval[2+2]" == "4" goto 4NT_args
+
+:win9xME_args
+@rem Slurp the command line arguments.
+set CMD_LINE_ARGS=
+set _SKIP=2
+
+:win9xME_args_slurp
+if "x%~1" == "x" goto execute
+
+set CMD_LINE_ARGS=%*
+goto execute
+
+:4NT_args
+@rem Get arguments from the 4NT Shell from JP Software
+set CMD_LINE_ARGS=%$
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
+
+:end
+@rem End local scope for the variables with windows NT shell
+if "%ERRORLEVEL%"=="0" goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
+exit /b 1
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git a/language-adaptors/rxjava-scala/src/main/scala/rx/lang/scala/Observable.scala b/language-adaptors/rxjava-scala/src/main/scala/rx/lang/scala/Observable.scala
index 9999ed9751..8d6ffbb48e 100644
--- a/language-adaptors/rxjava-scala/src/main/scala/rx/lang/scala/Observable.scala
+++ b/language-adaptors/rxjava-scala/src/main/scala/rx/lang/scala/Observable.scala
@@ -75,7 +75,6 @@ trait Observable[+T]
import scala.collection.Seq
import scala.concurrent.duration.{Duration, TimeUnit}
import rx.util.functions._
- import rx.lang.scala.util._
import rx.lang.scala.observables.BlockingObservable
import ImplicitFunctionConversions._
import JavaConversions._
@@ -302,45 +301,44 @@ trait Observable[+T]
* Creates an Observable which produces buffers of collected values.
*
* This Observable produces connected non-overlapping buffers. The current buffer is
- * emitted and replaced with a new buffer when the Observable produced by the specified function produces a [[rx.lang.scala.util.Closing]] object. The function will then
+ * emitted and replaced with a new buffer when the Observable produced by the specified function produces an object. The function will then
* be used to create a new Observable to listen for the end of the next buffer.
*
* @param closings
* The function which is used to produce an [[rx.lang.scala.Observable]] for every buffer created.
- * When this [[rx.lang.scala.Observable]] produces a [[rx.lang.scala.util.Closing]] object, the associated buffer
+ * When this [[rx.lang.scala.Observable]] produces an object, the associated buffer
* is emitted and replaced with a new one.
* @return
* An [[rx.lang.scala.Observable]] which produces connected non-overlapping buffers, which are emitted
- * when the current [[rx.lang.scala.Observable]] created with the function argument produces a [[rx.lang.scala.util.Closing]] object.
+ * when the current [[rx.lang.scala.Observable]] created with the function argument produces an object.
*/
- def buffer(closings: () => Observable[Closing]) : Observable[Seq[T]] = {
+ def buffer[Closing](closings: () => Observable[_ <: Closing]) : Observable[Seq[T]] = {
val f: Func0[_ <: rx.Observable[_ <: Closing]] = closings().asJavaObservable
- val jObs: rx.Observable[_ <: java.util.List[_]] = asJavaObservable.buffer(f)
+ val jObs: rx.Observable[_ <: java.util.List[_]] = asJavaObservable.buffer[Closing](f)
Observable.jObsOfListToScObsOfSeq(jObs.asInstanceOf[rx.Observable[_ <: java.util.List[T]]])
}
-
/**
* Creates an Observable which produces buffers of collected values.
*
* This Observable produces buffers. Buffers are created when the specified `openings`
- * Observable produces a [[rx.lang.scala.util.Opening]] object. Additionally the function argument
+ * Observable produces an object. Additionally the function argument
* is used to create an Observable which produces [[rx.lang.scala.util.Closing]] objects. When this
* Observable produces such an object, the associated buffer is emitted.
*
* @param openings
- * The [[rx.lang.scala.Observable]] which, when it produces a [[rx.lang.scala.util.Opening]] object, will cause
+ * The [[rx.lang.scala.Observable]] which, when it produces an object, will cause
* another buffer to be created.
* @param closings
* The function which is used to produce an [[rx.lang.scala.Observable]] for every buffer created.
- * When this [[rx.lang.scala.Observable]] produces a [[rx.lang.scala.util.Closing]] object, the associated buffer
+ * When this [[rx.lang.scala.Observable]] produces an object, the associated buffer
* is emitted.
* @return
* An [[rx.lang.scala.Observable]] which produces buffers which are created and emitted when the specified [[rx.lang.scala.Observable]]s publish certain objects.
*/
- def buffer(openings: Observable[Opening], closings: Opening => Observable[Closing]): Observable[Seq[T]] = {
+ def buffer[Opening, Closing](openings: Observable[Opening], closings: Opening => Observable[Closing]): Observable[Seq[T]] = {
val opening: rx.Observable[_ <: Opening] = openings.asJavaObservable
- val closing: Func1[Opening, _ <: rx.Observable[_ <: Closing]] = (o: Opening) => closings(o).asJavaObservable
- val jObs: rx.Observable[_ <: java.util.List[_]] = asJavaObservable.buffer(opening, closing)
+ val closing: Func1[_ >: Opening, _ <: rx.Observable[_ <: Closing]] = (o: Opening) => closings(o).asJavaObservable
+ val jObs: rx.Observable[_ <: java.util.List[_]] = asJavaObservable.buffer[Opening, Closing](opening, closing)
Observable.jObsOfListToScObsOfSeq(jObs.asInstanceOf[rx.Observable[_ <: java.util.List[T]]])
}
@@ -512,22 +510,22 @@ trait Observable[+T]
/**
* Creates an Observable which produces windows of collected values. This Observable produces connected
* non-overlapping windows. The current window is emitted and replaced with a new window when the
- * Observable produced by the specified function produces a [[rx.lang.scala.util.Closing]] object.
+ * Observable produced by the specified function produces an object.
* The function will then be used to create a new Observable to listen for the end of the next
* window.
*
* @param closings
* The function which is used to produce an [[rx.lang.scala.Observable]] for every window created.
- * When this [[rx.lang.scala.Observable]] produces a [[rx.lang.scala.util.Closing]] object, the associated window
+ * When this [[rx.lang.scala.Observable]] produces an object, the associated window
* is emitted and replaced with a new one.
* @return
* An [[rx.lang.scala.Observable]] which produces connected non-overlapping windows, which are emitted
- * when the current [[rx.lang.scala.Observable]] created with the function argument produces a [[rx.lang.scala.util.Closing]] object.
+ * when the current [[rx.lang.scala.Observable]] created with the function argument produces an object.
*/
- def window(closings: () => Observable[Closing]): Observable[Observable[T]] = {
+ def window[Closing](closings: () => Observable[Closing]): Observable[Observable[T]] = {
val func : Func0[_ <: rx.Observable[_ <: Closing]] = closings().asJavaObservable
- val o1: rx.Observable[_ <: rx.Observable[_]] = asJavaObservable.window(func)
- val o2 = toScalaObservable[rx.Observable[_]](o1).map((x: rx.Observable[_]) => {
+ val o1: rx.Observable[_ <: rx.Observable[_]] = asJavaObservable.window[Closing](func)
+ val o2 = Observable[rx.Observable[_]](o1).map((x: rx.Observable[_]) => {
val x2 = x.asInstanceOf[rx.Observable[_ <: T]]
toScalaObservable[T](x2)
})
@@ -536,23 +534,23 @@ trait Observable[+T]
/**
* Creates an Observable which produces windows of collected values. This Observable produces windows.
- * Chunks are created when the specified `openings` Observable produces a [[rx.lang.scala.util.Opening]] object.
+ * Chunks are created when the specified `openings` Observable produces an object.
* Additionally the `closings` argument is used to create an Observable which produces [[rx.lang.scala.util.Closing]] objects.
* When this Observable produces such an object, the associated window is emitted.
*
* @param openings
- * The [[rx.lang.scala.Observable]] which when it produces a [[rx.lang.scala.util.Opening]] object, will cause
+ * The [[rx.lang.scala.Observable]] which when it produces an object, will cause
* another window to be created.
* @param closings
* The function which is used to produce an [[rx.lang.scala.Observable]] for every window created.
- * When this [[rx.lang.scala.Observable]] produces a [[rx.lang.scala.util.Closing]] object, the associated window
+ * When this [[rx.lang.scala.Observable]] produces an object, the associated window
* is emitted.
* @return
* An [[rx.lang.scala.Observable]] which produces windows which are created and emitted when the specified [[rx.lang.scala.Observable]]s publish certain objects.
*/
- def window(openings: Observable[Opening], closings: Opening => Observable[Closing]) = {
+ def window[Opening, Closing](openings: Observable[Opening], closings: Opening => Observable[Closing]) = {
Observable.jObsOfJObsToScObsOfScObs(
- asJavaObservable.window(openings.asJavaObservable, (op: Opening) => closings(op).asJavaObservable))
+ asJavaObservable.window[Opening, Closing](openings.asJavaObservable, (op: Opening) => closings(op).asJavaObservable))
: Observable[Observable[T]] // SI-7818
}
@@ -1015,7 +1013,11 @@ trait Observable[+T]
* This is useful when you want an Observable to cache responses and you can't control the
* subscribe/unsubscribe behavior of all the [[rx.lang.scala.Observer]]s.
*
- * NOTE: You sacrifice the ability to unsubscribe from the origin when you use the
+ * When you call `cache`, it does not yet subscribe to the
+ * source Observable. This only happens when `subscribe` is called
+ * the first time on the Observable returned by `cache()`.
+ *
+ * Note: You sacrifice the ability to unsubscribe from the origin when you use the
* `cache()` operator so be careful not to use this operator on Observables that
* emit an infinite or very large number of items that will use up memory.
*
diff --git a/language-adaptors/rxjava-scala/src/main/scala/rx/lang/scala/util/package.scala b/language-adaptors/rxjava-scala/src/main/scala/rx/lang/scala/util/package.scala
deleted file mode 100644
index ed19d849ab..0000000000
--- a/language-adaptors/rxjava-scala/src/main/scala/rx/lang/scala/util/package.scala
+++ /dev/null
@@ -1,49 +0,0 @@
-/**
- * Copyright 2013 Netflix, Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package rx.lang.scala
-
-/**
- * Provides [[Opening]]s, [[Closing]]s, and [[Timestamped]].
- */
-package object util {
-
- /**
- * Tagging interface for objects which can open buffers.
- * @see [[Observable `Observable.buffer(Observable[Opening], Opening => Observable[Closing])`]]
- */
- type Opening = rx.util.Opening
-
- /**
- * Creates an object which can open buffers.
- * @see [[Observable `Observable.buffer(Observable[Opening], Opening => Observable[Closing])`]]
- */
- def Opening() = rx.util.Openings.create()
-
- /**
- * Tagging interface for objects which can close buffers.
- * @see [[Observable `Observable.buffer(Observable[Opening], Opening => Observable[Closing])`]]
- */
- type Closing = rx.util.Closing
-
- /**
- * Creates an object which can close buffers.
- * @see [[Observable `Observable.buffer(Observable[Opening], Opening => Observable[Closing])`]]
- */
- def Closing() = rx.util.Closings.create()
-
- // rx.util.Range not needed because there's a standard Scala Range
-
-}
diff --git a/rxjava-contrib/rxjava-apache-http/src/main/java/rx/apache/http/ObservableHttp.java b/rxjava-contrib/rxjava-apache-http/src/main/java/rx/apache/http/ObservableHttp.java
index 7f34365eb4..1ed64ea838 100644
--- a/rxjava-contrib/rxjava-apache-http/src/main/java/rx/apache/http/ObservableHttp.java
+++ b/rxjava-contrib/rxjava-apache-http/src/main/java/rx/apache/http/ObservableHttp.java
@@ -112,7 +112,7 @@ public static ObservableHttp
* A client can be retrieved like this:
*
- * {@code CloseableHttpAsyncClient httpclient = HttpAsyncClients.createDefault(); }
{@code CloseableHttpAsyncClient httpclient = HttpAsyncClients.createDefault(); }
* * A client with custom configurations can be created like this: *
diff --git a/rxjava-core/src/main/java/rx/Observable.java b/rxjava-core/src/main/java/rx/Observable.java index aa5f855290..cf92fb12cd 100644 --- a/rxjava-core/src/main/java/rx/Observable.java +++ b/rxjava-core/src/main/java/rx/Observable.java @@ -76,6 +76,7 @@ import rx.operators.OperationRetry; import rx.operators.OperationSample; import rx.operators.OperationScan; +import rx.operators.OperationSequenceEqual; import rx.operators.OperationSkip; import rx.operators.OperationSkipLast; import rx.operators.OperationSkipUntil; @@ -111,9 +112,7 @@ import rx.subjects.ReplaySubject; import rx.subjects.Subject; import rx.subscriptions.Subscriptions; -import rx.util.Closing; import rx.util.OnErrorNotImplementedException; -import rx.util.Opening; import rx.util.Range; import rx.util.TimeInterval; import rx.util.Timestamped; @@ -2203,6 +2202,7 @@ public Observable
+ *
*
*
*
* This Observable produces connected, non-overlapping buffers. The current
* buffer is emitted and replaced with a new buffer when the Observable
- * produced by the specified
* This Observable produces buffers. Buffers are created when the specified
- *
@@ -3067,45 +3073,45 @@ public Observable
*
+ * When you call {@code cache()}, it does not yet subscribe to the
+ * source Observable. This only happens when {@code subscribe} is called
+ * the first time on the Observable returned by {@code cache()}.
+ *
* Note: You sacrifice the ability to unsubscribe from the origin when you
* use the
+ *
+ *
*
* @param scheduler the {@link Scheduler} to use as a time source.
* @return an Observable that emits timestamped items from the source
* Observable with timestamps provided by the given Scheduler
- * @see MSDN: Observable.Timestamp
+ * @see RxJava Wiki: timestamp()
+ * @see MSDN: Observable.Timestamp
*/
public Observable
*
* @param first the first Observable to compare
* @param second the second Observable to compare
* @param
*
@@ -2327,12 +2333,12 @@ public Boolean call(T first, T second) {
* @param equality a function used to compare items emitted by both
* Observables
* @param
* bufferClosingSelector produces a
- * {@link rx.util.Closing} object. The bufferClosingSelector
+ * produced by the specified bufferClosingSelector produces an
+ * object. The bufferClosingSelector
* will then be used to create a new Observable to listen for the end of
* the next buffer.
*
* @param bufferClosingSelector the {@link Func0} which is used to produce
* an {@link Observable} for every buffer
* created. When this {@link Observable}
- * produces a {@link rx.util.Closing} object,
+ * produces an object,
* the associated buffer is emitted and
* replaced with a new one.
* @return an {@link Observable} which produces connected, non-overlapping
* buffers, which are emitted when the current {@link Observable}
- * created with the {@link Func0} argument produces a
- * {@link rx.util.Closing} object
+ * created with the {@link Func0} argument produces an
+ * object
* @see RxJava Wiki: buffer()
*/
- public Observable> buffer(Func0 extends Observable extends Closing>> bufferClosingSelector) {
+ public
> buffer(Func0 extends Observable extends TClosing>> bufferClosingSelector) {
return create(OperationBuffer.buffer(this, bufferClosingSelector));
}
@@ -2842,26 +2848,26 @@ public Observable
> buffer(Func0 extends Observable extends Closing>>
*
* bufferOpenings Observable produces a {@link rx.util.Opening}
+ * bufferOpenings Observable produces an
* object. Additionally the bufferClosingSelector argument is
- * used to create an Observable which produces {@link rx.util.Closing}
+ * used to create an Observable which produces
* objects. When this Observable produces such an object, the associated
* buffer is emitted.
*
- * @param bufferOpenings the {@link Observable} that, when it produces a
- * {@link rx.util.Opening} object, will cause another
+ * @param bufferOpenings the {@link Observable} that, when it produces an
+ * object, will cause another
* buffer to be created
* @param bufferClosingSelector the {@link Func1} that is used to produce
* an {@link Observable} for every buffer
* created. When this {@link Observable}
- * produces a {@link rx.util.Closing} object,
+ * produces an object,
* the associated buffer is emitted.
* @return an {@link Observable} that produces buffers that are created and
* emitted when the specified {@link Observable}s publish certain
* objects
* @see RxJava Wiki: buffer()
*/
- public Observable> buffer(Observable extends Opening> bufferOpenings, Func1
> buffer(Observable extends TOpening> bufferOpenings, Func1 super TOpening, ? extends Observable extends TClosing>> bufferClosingSelector) {
return create(OperationBuffer.buffer(this, bufferOpenings, bufferClosingSelector));
}
@@ -3058,8 +3064,8 @@ public Observable
> buffer(long timespan, long timeshift, TimeUnit unit,
* Creates an Observable that produces windows of collected items. This
* Observable produces connected, non-overlapping windows. The current
* window is emitted and replaced with a new window when the Observable
- * produced by the specified
closingSelector produces a
- * {@link rx.util.Closing} object. The closingSelector will
+ * produced by the specified closingSelector produces an
+ * object. The closingSelector will
* then be used to create a new Observable to listen for the end of the next
* window.
* > buffer(long timespan, long timeshift, TimeUnit unit,
*
* @param closingSelector the {@link Func0} used to produce an
* {@link Observable} for every window created. When this
- * {@link Observable} emits a {@link rx.util.Closing} object, the
+ * {@link Observable} emits an object, the
* associated window is emitted and replaced with a new one.
* @return an {@link Observable} that produces connected, non-overlapping
* windows, which are emitted when the current {@link Observable}
- * created with the
closingSelector argument emits a
- * {@link rx.util.Closing} object.
+ * created with the closingSelector argument emits an
+ * object.
* @see RxJava Wiki: window()
*/
- public ObservablewindowOpenings Observable produces a {@link rx.util.Opening}
+ * windowOpenings Observable produces an
* object. Additionally the closingSelector argument creates an
- * Observable that produces {@link rx.util.Closing} objects. When this
+ * Observable that produces objects. When this
* Observable produces such an object, the associated window is emitted.
*
*
- * @param windowOpenings the {@link Observable} that, when it produces a
- * {@link rx.util.Opening} object, causes another
+ * @param windowOpenings the {@link Observable} that, when it produces an
+ * object, causes another
* window to be created
* @param closingSelector the {@link Func1} that produces an
* {@link Observable} for every window created. When
- * this {@link Observable} produces a
- * {@link rx.util.Closing} object, the associated
+ * this {@link Observable} produces an
+ * object, the associated
* window is emitted.
* @return an {@link Observable} that produces windows that are created and
* emitted when the specified {@link Observable}s publish certain
* objects
* @see RxJava Wiki: window()
*/
- public Observablecache() operator so be careful not to use this
* operator on Observables that emit an infinite or very large number of
@@ -4459,7 +4470,22 @@ public Observablesampler
+ * Observable produces an item or completes.
+ *
+ * @param sampler the Observable to use for sampling this
+ *
+ * @return an Observable that emits the results of sampling the items
+ * emitted by this Observable when the sampler
+ * Observable produces an item or completes.
+ */
+ public Observable
*
* @param right the other Observable to correlate values of this observable to
* @param leftDuration function that returns an Observable which indicates the duration of
@@ -5126,6 +5154,7 @@ public
+ *
+ * @return an Observable that emits the number of counted elements of the
+ * source Observable as its single, 64 bit long item
+ * @see RxJava Wiki: count()
+ * @see MSDN: Observable.LongCount
+ * @see #count()
+ */
+ public Observable