//Auto-generated by kalyptus. DO NOT EDIT.
namespace Soprano {
    using Soprano;
    using System;
    using Qyoto;
    using System.Collections.Generic;
    /// <remarks>
    ///  \class PluginManager pluginmanager.h Soprano/PluginManager
    ///  \brief The PluginManager loads and maintains all %Soprano plugins.
    ///  Normally there is no need to use this class as all important methods have
    ///  global counterparts in the Soprano namespace.
    ///  \sa \ref soprano_writing_plugins
    ///  \author Sebastian Trueg <trueg@kde.org>
    ///      </remarks>        <short>    \class PluginManager pluginmanager.</short>
    [SmokeClass("Soprano::PluginManager")]
    public class PluginManager : QObject {
        protected PluginManager(Type dummy) : base((Type) null) {}
        protected new void CreateProxy() {
            interceptor = new SmokeInvocation(typeof(PluginManager), this);
        }
        private static SmokeInvocation staticInterceptor = null;
        static PluginManager() {
            staticInterceptor = new SmokeInvocation(typeof(PluginManager), null);
        }
        /// <remarks>
        ///  Find a backend plugin by its name.
        ///  \return the backend specified by \a name or null if could not
        ///  be found.
        ///          </remarks>        <short>    Find a backend plugin by its name.</short>
        public Soprano.Backend DiscoverBackendByName(string name) {
            return (Soprano.Backend) interceptor.Invoke("discoverBackendByName$", "discoverBackendByName(const QString&)", typeof(Soprano.Backend), typeof(string), name);
        }
        /// <remarks>
        ///  Find a backend plugin by its features.
        ///  \param features The features that are requested, a combination of Soprano.BackendFeature flags.
        ///  \param userFeatures If features contain Backend.BackendFeatureUser this paramter states the additionally requested user features.
        ///  \return a Backend that supports the features defined in \a features.
        ///          </remarks>        <short>    Find a backend plugin by its features.</short>
        public Soprano.Backend DiscoverBackendByFeatures(uint features, List<string> userFeatures) {
            return (Soprano.Backend) interceptor.Invoke("discoverBackendByFeatures$?", "discoverBackendByFeatures(Soprano::BackendFeatures, const QStringList&)", typeof(Soprano.Backend), typeof(uint), features, typeof(List<string>), userFeatures);
        }
        public Soprano.Backend DiscoverBackendByFeatures(uint features) {
            return (Soprano.Backend) interceptor.Invoke("discoverBackendByFeatures$", "discoverBackendByFeatures(Soprano::BackendFeatures)", typeof(Soprano.Backend), typeof(uint), features);
        }
        public List<Soprano.Backend> AllBackends() {
            return (List<Soprano.Backend>) interceptor.Invoke("allBackends", "allBackends()", typeof(List<Soprano.Backend>));
        }
        /// <remarks>
        ///  Find a parser plugin by its name.
        ///  \return the parser specified by \a name or null if could not
        ///  be found.
        ///          </remarks>        <short>    Find a parser plugin by its name.</short>
        public Soprano.Parser DiscoverParserByName(string name) {
            return (Soprano.Parser) interceptor.Invoke("discoverParserByName$", "discoverParserByName(const QString&)", typeof(Soprano.Parser), typeof(string), name);
        }
        /// <remarks>
        ///  Find a Parser instance that is able to parse RDF data serialized as
        ///  serialization.
        ///  \param serialization The requested serialization.
        ///  \param userSerialization If serialization is set to Soprano.SerializationUser this parameter specifies the
        ///        serialization to use. It allows the extension of the %Soprano Parser interface with new
        ///        RDF serializations that are not officially supported by %Soprano.
        ///  \return A Parser plugin that can parse RDF data encoded in the requested 
        ///  serialization or 0 if no such plugin could be found.
        ///          </remarks>        <short>    Find a Parser instance that is able to parse RDF data serialized as  serialization.</short>
        public Soprano.Parser DiscoverParserForSerialization(Soprano.RdfSerialization serialization, string userSerialization) {
            return (Soprano.Parser) interceptor.Invoke("discoverParserForSerialization$$", "discoverParserForSerialization(Soprano::RdfSerialization, const QString&)", typeof(Soprano.Parser), typeof(Soprano.RdfSerialization), serialization, typeof(string), userSerialization);
        }
        public Soprano.Parser DiscoverParserForSerialization(Soprano.RdfSerialization serialization) {
            return (Soprano.Parser) interceptor.Invoke("discoverParserForSerialization$", "discoverParserForSerialization(Soprano::RdfSerialization)", typeof(Soprano.Parser), typeof(Soprano.RdfSerialization), serialization);
        }
        public List<Soprano.Parser> AllParsers() {
            return (List<Soprano.Parser>) interceptor.Invoke("allParsers", "allParsers()", typeof(List<Soprano.Parser>));
        }
        /// <remarks>
        ///  Find a serializer plugin by its name.
        ///  \return the serializer specified by \a name or null if could not
        ///  be found.
        ///          </remarks>        <short>    Find a serializer plugin by its name.</short>
        public Soprano.Serializer DiscoverSerializerByName(string name) {
            return (Soprano.Serializer) interceptor.Invoke("discoverSerializerByName$", "discoverSerializerByName(const QString&)", typeof(Soprano.Serializer), typeof(string), name);
        }
        /// <remarks>
        ///  Find a Serializer instance that is able to encode RDF data using
        ///  serialization.
        ///  \param serialization The requested serialization.
        ///  \param userSerialization If serialization is set to Soprano.SerializationUser this parameter specifies the
        ///        serialization to use. It allows the extension of the %Soprano Serializer interface with new
        ///        RDF serializations that are not officially supported by %Soprano.
        ///  \return A Serializer plugin that can serialize RDF data encoded in the requested 
        ///  serialization or 0 if no such plugin could be found.
        ///          </remarks>        <short>    Find a Serializer instance that is able to encode RDF data using  serialization.</short>
        public Soprano.Serializer DiscoverSerializerForSerialization(Soprano.RdfSerialization serialization, string userSerialization) {
            return (Soprano.Serializer) interceptor.Invoke("discoverSerializerForSerialization$$", "discoverSerializerForSerialization(Soprano::RdfSerialization, const QString&)", typeof(Soprano.Serializer), typeof(Soprano.RdfSerialization), serialization, typeof(string), userSerialization);
        }
        public Soprano.Serializer DiscoverSerializerForSerialization(Soprano.RdfSerialization serialization) {
            return (Soprano.Serializer) interceptor.Invoke("discoverSerializerForSerialization$", "discoverSerializerForSerialization(Soprano::RdfSerialization)", typeof(Soprano.Serializer), typeof(Soprano.RdfSerialization), serialization);
        }
        public List<Soprano.Serializer> AllSerializers() {
            return (List<Soprano.Serializer>) interceptor.Invoke("allSerializers", "allSerializers()", typeof(List<Soprano.Serializer>));
        }
        /// <remarks>
        ///  Get the singleton instance of the PluginManager
        ///          </remarks>        <short>    Get the singleton instance of the PluginManager          </short>
        public static Soprano.PluginManager Instance() {
            return (Soprano.PluginManager) staticInterceptor.Invoke("instance", "instance()", typeof(Soprano.PluginManager));
        }
        protected new IPluginManagerSignals Emit {
            get { return (IPluginManagerSignals) Q_EMIT; }
        }
    }

    public interface IPluginManagerSignals : IQObjectSignals {
    }
}
