You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
53 lines
1.6 KiB
53 lines
1.6 KiB
/// <reference path="./disposables/disposable.ts" /> |
|
/// <reference path="./observer-lite.ts" /> |
|
module Rx { |
|
export module internals { |
|
/** |
|
* Abstract base class for implementations of the Observer class. |
|
* This base class enforces the grammar of observers where OnError and OnCompleted are terminal messages. |
|
*/ |
|
export interface AbstractObserver<T> extends Rx.IObserver<T>, Rx.IDisposable { |
|
/** |
|
* Notifies the observer of a new element in the sequence. |
|
* @param {Any} value Next element in the sequence. |
|
*/ |
|
onNext(value: T): void; |
|
/** |
|
* Notifies the observer that an exception has occurred. |
|
* @param {Any} error The error that has occurred. |
|
*/ |
|
onError(exception: any): void; |
|
/** |
|
* Notifies the observer of the end of the sequence. |
|
*/ |
|
onCompleted(): void; |
|
|
|
isStopped: boolean; |
|
|
|
/** |
|
* Disposes the observer, causing it to transition to the stopped state. |
|
*/ |
|
dispose(): void; |
|
|
|
fail(e: any): boolean; |
|
|
|
// Must be implemented by other observers |
|
next(value: T): void; |
|
error(error: any): void; |
|
completed(): void; |
|
} |
|
|
|
interface AbstractObserverStatic { |
|
new <T>(): AbstractObserver<T>; |
|
} |
|
|
|
export var AbstractObserver: AbstractObserverStatic |
|
} |
|
} |
|
|
|
(function() { |
|
var iObserver: Rx.IObserver<number>; |
|
var abstractObserver: Rx.internals.AbstractObserver<number>; |
|
|
|
iObserver = abstractObserver; |
|
});
|
|
|