Imported Upstream version 3.6.0

Former-commit-id: da6be194a6b1221998fc28233f2503bd61dd9d14
This commit is contained in:
Jo Shields
2014-08-13 10:39:27 +01:00
commit a575963da9
50588 changed files with 8155799 additions and 0 deletions

View File

@@ -0,0 +1,27 @@
// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. See License.txt in the project root for license information.
namespace System.Reactive.Linq
{
/// <summary>
/// Represents an observable sequence of elements that have a common key.
/// </summary>
/// <typeparam name="TKey">
/// The type of the key shared by all elements in the group.
/// This type parameter is covariant. That is, you can use either the type you specified or any type that is more derived. For more information about covariance and contravariance, see Covariance and Contravariance in Generics.
/// </typeparam>
/// <typeparam name="TElement">
/// The type of the elements in the group.
/// This type parameter is covariant. That is, you can use either the type you specified or any type that is more derived. For more information about covariance and contravariance, see Covariance and Contravariance in Generics.
/// </typeparam>
#if !NO_VARIANCE
public interface IGroupedObservable<out TKey, out TElement> : IObservable<TElement>
#else
public interface IGroupedObservable<TKey, TElement> : IObservable<TElement>
#endif
{
/// <summary>
/// Gets the common key.
/// </summary>
TKey Key { get; }
}
}

View File

@@ -0,0 +1,46 @@
// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. See License.txt in the project root for license information.
#if !NO_EXPRESSIONS
using System.Linq.Expressions;
namespace System.Reactive.Linq
{
/// <summary>
/// Provides functionality to evaluate queries against a specific data source wherein the type of the data is known.
/// </summary>
/// <typeparam name="T">
/// The type of the data in the data source.
/// This type parameter is covariant. That is, you can use either the type you specified or any type that is more derived. For more information about covariance and contravariance, see Covariance and Contravariance in Generics.
/// </typeparam>
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Qbservable", Justification = "What a pleasure to write 'by design' here.")]
public interface IQbservable<
#if !NO_VARIANCE
out
#endif
T> : IQbservable, IObservable<T>
{
}
/// <summary>
/// Provides functionality to evaluate queries against a specific data source wherein the type of the data is not specified.
/// </summary>
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Qbservable", Justification = "What a pleasure to write 'by design' here.")]
public interface IQbservable
{
/// <summary>
/// Gets the type of the element(s) that are returned when the expression tree associated with this instance of IQbservable is executed.
/// </summary>
Type ElementType { get; }
/// <summary>
/// Gets the expression tree that is associated with the instance of IQbservable.
/// </summary>
Expression Expression { get; }
/// <summary>
/// Gets the query provider that is associated with this data source.
/// </summary>
IQbservableProvider Provider { get; }
}
}
#endif

View File

@@ -0,0 +1,23 @@
// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. See License.txt in the project root for license information.
#if !NO_EXPRESSIONS
using System.Linq.Expressions;
namespace System.Reactive.Linq
{
/// <summary>
/// Defines methods to create and execute queries that are described by an IQbservable object.
/// </summary>
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Qbservable", Justification = "What a pleasure to write 'by design' here.")]
public interface IQbservableProvider
{
/// <summary>
/// Constructs an IQbservable&gt;TResult&lt; object that can evaluate the query represented by a specified expression tree.
/// </summary>
/// <typeparam name="TResult">The type of the elements of the System.Reactive.Linq.IQbservable&lt;T&gt; that is returned.</typeparam>
/// <param name="expression">Expression tree representing the query.</param>
/// <returns>IQbservable object that can evaluate the given query expression.</returns>
IQbservable<TResult> CreateQuery<TResult>(Expression expression);
}
}
#endif