T - the value type to emitpublic interface SingleEmitter<T>
SingleObserver that allows associating
 a resource with it.
 All methods are safe to call from multiple threads, but note that there is no guarantee whose terminal event will win and get delivered to the downstream.
 Calling onSuccess(Object) multiple times has no effect.
 Calling onError(Throwable) multiple times or after onSuccess will route the
 exception into the global error handler via RxJavaPlugins.onError(Throwable).
 
 The emitter allows the registration of a single resource, in the form of a Disposable
 or Cancellable via setDisposable(Disposable) or setCancellable(Cancellable)
 respectively. The emitter implementations will dispose/cancel this instance when the
 downstream cancels the flow or after the event generator logic calls onSuccess(Object),
 onError(Throwable), or when tryOnError(Throwable) succeeds.
 
 Only one Disposable or Cancellable object can be associated with the emitter at
 a time. Calling either set method will dispose/cancel any previous object. If there
 is a need for handling multiple resources, one can create a CompositeDisposable
 and associate that with the emitter instead.
 
 The Cancellable is logically equivalent to Disposable but allows using cleanup logic that can
 throw a checked exception (such as many close() methods on Java IO components). Since
 the release of resources happens after the terminal events have been delivered or the sequence gets
 cancelled, exceptions throw within Cancellable are routed to the global error handler via
 RxJavaPlugins.onError(Throwable).
| Modifier and Type | Method and Description | 
|---|---|
| boolean | isDisposed()Returns true if the downstream disposed the sequence or the
 emitter was terminated via  onSuccess(Object),onError(Throwable),
 or a successfultryOnError(Throwable). | 
| void | onError(Throwable t)Signal an exception. | 
| void | onSuccess(T t)Signal a success value. | 
| void | setCancellable(Cancellable c)Sets a Cancellable on this emitter; any previous  DisposableorCancellablewill be disposed/cancelled. | 
| void | setDisposable(Disposable d)Sets a Disposable on this emitter; any previous Disposable
 or Cancellable will be disposed/cancelled. | 
| boolean | tryOnError(Throwable t)Attempts to emit the specified  Throwableerror if the downstream
 hasn't cancelled the sequence or is otherwise terminated, returning false
 if the emission is not allowed to happen due to lifecycle restrictions. | 
void onError(@NonNull Throwable t)
t - the exception, not nullvoid setDisposable(@Nullable Disposable d)
d - the disposable, null is allowedvoid setCancellable(@Nullable Cancellable c)
Disposable
 or Cancellable will be disposed/cancelled.c - the cancellable resource, null is allowedboolean isDisposed()
onSuccess(Object), onError(Throwable),
 or a successful tryOnError(Throwable).
 This method is thread-safe.
boolean tryOnError(@NonNull Throwable t)
Throwable error if the downstream
 hasn't cancelled the sequence or is otherwise terminated, returning false
 if the emission is not allowed to happen due to lifecycle restrictions.
 
 Unlike onError(Throwable), the RxJavaPlugins.onError is not called
 if the error could not be delivered.
 
History: 2.1.1 - experimental
t - the throwable error to signal if possible