// 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); } } }