// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT License.
// See the LICENSE file in the project root for more information.
#if HAS_TRIMMABILITY_ATTRIBUTES
using System.Diagnostics.CodeAnalysis;
#endif
namespace System.Reactive.Linq
{
#if HAS_TRIMMABILITY_ATTRIBUTES
[RequiresUnreferencedCode(Constants_Core.AsQueryableTrimIncompatibilityMessage)]
#endif
public static partial class Qbservable
{
#pragma warning disable IDE1006 // Naming Styles: 3rd party code is known to reflect for this specific field name
private static IQbservableProvider? s_provider;
#pragma warning restore IDE1006 // Naming Styles
///
/// Gets the local query provider which will retarget Qbservable-based queries to the corresponding Observable-based query for in-memory execution upon subscription.
///
public static IQbservableProvider Provider
{
get
{
s_provider ??= new ObservableQueryProvider();
return s_provider;
}
}
///
/// Converts an in-memory observable sequence into an sequence with an expression tree representing the source sequence.
///
/// The type of the elements in the source sequence.
/// Source sequence.
/// sequence representing the given observable source sequence.
/// is null.
public static IQbservable AsQbservable(this IObservable source)
{
if (source == null)
{
throw new ArgumentNullException(nameof(source));
}
return new ObservableQuery(source);
}
}
}