// MonoGame - Copyright (C) The MonoGame Team
// This file is subject to the terms and conditions defined in
// file 'LICENSE.txt', which is part of this source code package.
using System;
using System.Collections.Generic;
namespace Microsoft.Xna.Framework.Content.Pipeline
{
///
/// Implements a scanner object containing the available importers and processors for an application. Designed for internal use only.
///
public sealed class PipelineComponentScanner
{
List errors = new List();
Dictionary importerAttributes = new Dictionary();
Dictionary processorAttributes = new Dictionary();
Dictionary importerOutputTypes = new Dictionary();
Dictionary processorInputTypes = new Dictionary();
Dictionary processorOutputTypes = new Dictionary();
Dictionary processorParameters = new Dictionary();
///
/// Gets the list of error messages produced by the last call to Update.
///
public IList Errors { get { return errors; } }
///
/// Gets a dictionary that maps importer names to their associated metadata attributes.
///
public IDictionary ImporterAttributes { get { return importerAttributes; } }
///
/// Gets the names of all available importers.
///
public IEnumerable ImporterNames { get { return importerAttributes.Keys; } }
///
/// Gets a dictionary that maps importer names to the fully qualified name of their return types.
///
public IDictionary ImporterOutputTypes { get { return importerOutputTypes; } }
///
/// Gets a dictionary that maps processor names to their associated metadata attributes.
///
public IDictionary ProcessorAttributes { get { return processorAttributes; } }
///
/// Gets a dictionary that maps processor names to the fully qualified name of supported input types.
///
public IDictionary ProcessorInputTypes { get { return processorInputTypes; } }
///
/// Gets the names of all available processors.
///
public IEnumerable ProcessorNames { get { return processorAttributes.Keys; } }
///
/// Gets a dictionary that maps processor names to the fully qualified name of their output types.
///
public IDictionary ProcessorOutputTypes { get { return processorOutputTypes; } }
///
/// A collection of supported processor parameters.
///
public IDictionary ProcessorParameters { get { return processorParameters; } }
///
/// Initializes a new instance of PipelineComponentScanner.
///
public PipelineComponentScanner()
{
}
///
/// Updates the scanner object with the latest available assembly states.
///
/// Enumerated list of available assemblies.
/// true if an actual scan was required, indicating the collection contents may have changed. false if no assembly changes were detected since the previous call.
public bool Update(
IEnumerable pipelineAssemblies
)
{
return Update(pipelineAssemblies, null);
}
///
/// Updates the scanner object with the latest available assembly states.
///
/// Enumerated list of available assemblies.
/// Enumerated list of dependent assemblies.
/// true if an actual scan was required, indicating the collection contents may have changed. false if no assembly changes were detected since the previous call.
public bool Update(
IEnumerable pipelineAssemblies,
IEnumerable pipelineAssemblyDependencies
)
{
throw new NotImplementedException();
}
}
}