/** * 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; /** * Provides a mechanism for receiving push-based notifications. *
* After an Observer calls a Observable's Observable.subscribe method, the Observable calls the Observer's onNext method to provide notifications. A well-behaved Observable
* will
* call a Observer's onCompleted closure exactly once or the Observer's onError closure exactly once.
*
* For more informationon, see: API.Next
* Programmer's Guide: Observers, Observables, and the Reactive Pattern: Setting up Observers in Groovy
*
* @param
* The Observable will not call this closure if it calls
* If the Observable calls this closure, it will not thereafter call
* The Observable calls this closure 1 or more times, unless it calls
* The Observable will not call this closure again after it calls either onError.
*/
public void onCompleted();
/**
* Notifies the Observer that the Observable has experienced an error condition.
* onNext or onCompleted.
*
* @param e
*/
public void onError(Exception e);
/**
* Provides the Observer with new data.
* onError in which case this closure may never be called.
* onCompleted or onError, though this does not guarantee that chronologically-speaking, this
* closure
* will not be called after one of those closures is called (because the Observable may assign the calling of these closures to chronologically-independent threads). See wx.synchronize() for information on how to enforce chronologically-ordered behavior.
*
* @param args
*/
public void onNext(T args);
}