// Copyright (c) Microsoft Corporation.
// Licensed under the MIT License.
using System.Collections.Generic;
namespace Microsoft.MixedReality.Toolkit
{
///
/// Allows systems to provide access to their managed data providers.
///
public interface IMixedRealityDataProviderAccess
{
///
/// Gets the collection of registered data providers.
///
///
/// Read only copy of the list of registered data providers.
///
IReadOnlyList GetDataProviders();
///
/// Get the collection of registered observers of the specified type.
///
/// The desired data provider type
///
/// Read-only copy of the list of registered data providers that implement the specified type.
///
IReadOnlyList GetDataProviders() where T : IMixedRealityDataProvider;
///
/// Get the data provider that is registered under the specified name.
///
/// The friendly name of the data provider.
///
/// The requested data provider, or null if one cannot be found.
///
///
/// If more than one data provider is registered under the specified name, the first will be returned.
///
IMixedRealityDataProvider GetDataProvider(string name);
///
/// Get the data provider that is registered under the specified name (optional) and matching the specified type.
///
/// The desired data provider type.
/// The friendly name of the data provider.
///
/// The requested data provider, or null if one cannot be found.
///
///
/// If more than one data provider is registered under the specified name, the first will be returned.
///
T GetDataProvider(string name = null) where T : IMixedRealityDataProvider;
}
}