// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. See License.txt in the project root for license information.
#if NO_RXINTERFACES
namespace System
{
    /// 
    /// Supports push-style iteration over an observable sequence.
    /// 
#if !NO_VARIANCE
    public interface IObserver
#else
    public interface IObserver
#endif
    {
        /// 
        /// Notifies the observer of a new element in the sequence.
        /// 
        /// Next element in the sequence.
        void OnNext(T value);
        /// 
        /// Notifies the observer that an exception has occurred.
        /// 
        /// The error that has occurred.
        void OnError(Exception error);
        /// 
        /// Notifies the observer of the end of the sequence.
        /// 
        void OnCompleted();
    }
}
#elif !WINDOWSPHONE7 // TypeForwardedTo is not presen on windows phone 7 so we can't really target
[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.IObserver<>))]
#endif