//Auto-generated by kalyptus. DO NOT EDIT.
namespace Soprano {
    using Soprano;
    using System;
    using Qyoto;
    /// <remarks>
    ///  \class StorageModel storagemodel.h Soprano/StorageModel
    ///  \brief Base class for all Model implementations that store data (as compared to FilterModel).
    ///  The StorageModel implements some of the methods from Model which
    ///  may be equal for different backends.
    ///  \sa Backend.CreateModel()
    ///  \author Sebastian Trueg <trueg@kde.org>
    ///      </remarks>        <short>    \class StorageModel storagemodel.</short>
    [SmokeClass("Soprano::StorageModel")]
    public class StorageModel : Soprano.Model, IDisposable {
        protected StorageModel(Type dummy) : base((Type) null) {}
        protected new void CreateProxy() {
            interceptor = new SmokeInvocation(typeof(StorageModel), this);
        }
        // const Soprano::Backend* backend(); >>>> NOT CONVERTED
        // Soprano::StorageModel* StorageModel(const Soprano::Backend* arg1); >>>> NOT CONVERTED
        /// <remarks>
        ///  Default implementation is based on Model.StatementCount
        ///          </remarks>        <short>    Default implementation is based on Model.StatementCount          </short>
        [SmokeMethod("isEmpty() const")]
        public override bool IsEmpty() {
            return (bool) interceptor.Invoke("isEmpty", "isEmpty() const", typeof(bool));
        }
        /// <remarks>
        ///  Default implementation is based on Model.ListStatements
        ///          </remarks>        <short>    Default implementation is based on Model.ListStatements          </short>
        [SmokeMethod("containsStatement(const Soprano::Statement&) const")]
        public override bool ContainsStatement(Soprano.Statement statement) {
            return (bool) interceptor.Invoke("containsStatement#", "containsStatement(const Soprano::Statement&) const", typeof(bool), typeof(Soprano.Statement), statement);
        }
        /// <remarks>
        ///  Default implementation is based on Model.ListStatements
        ///          </remarks>        <short>    Default implementation is based on Model.ListStatements          </short>
        [SmokeMethod("containsAnyStatement(const Soprano::Statement&) const")]
        public override bool ContainsAnyStatement(Soprano.Statement statement) {
            return (bool) interceptor.Invoke("containsAnyStatement#", "containsAnyStatement(const Soprano::Statement&) const", typeof(bool), typeof(Soprano.Statement), statement);
        }
        /// <remarks>
        ///  Default implementation is based on listStatements() and removeStatement().
        ///          </remarks>        <short>    Default implementation is based on listStatements() and removeStatement().</short>
        [SmokeMethod("removeAllStatements(const Soprano::Statement&)")]
        public override Soprano.Error.ErrorCode RemoveAllStatements(Soprano.Statement statement) {
            return (Soprano.Error.ErrorCode) interceptor.Invoke("removeAllStatements#", "removeAllStatements(const Soprano::Statement&)", typeof(Soprano.Error.ErrorCode), typeof(Soprano.Statement), statement);
        }
        /// <remarks>
        ///  \return The backend that was used to create this model.
        ///          </remarks>        <short>    \return The backend that was used to create this model.</short>
        /// <remarks>
        ///  \param backend The Backend that created this model.
        ///          </remarks>        <short>    \param backend The Backend that created this model.</short>
        // WARNING: Unimplemented C++ pure virtual - DO NOT CALL
        [SmokeMethod("addStatement(const Soprano::Statement&)")]
        public override Soprano.Error.ErrorCode AddStatement(Soprano.Statement statement) {
            return (Soprano.Error.ErrorCode) interceptor.Invoke("addStatement#", "addStatement(const Soprano::Statement&)", typeof(Soprano.Error.ErrorCode), typeof(Soprano.Statement), statement);
        }
        // WARNING: Unimplemented C++ pure virtual - DO NOT CALL
        [SmokeMethod("createBlankNode()")]
        public override Soprano.Node CreateBlankNode() {
            return (Soprano.Node) interceptor.Invoke("createBlankNode", "createBlankNode()", typeof(Soprano.Node));
        }
        // WARNING: Unimplemented C++ pure virtual - DO NOT CALL
        [SmokeMethod("removeStatement(const Soprano::Statement&)")]
        public override Soprano.Error.ErrorCode RemoveStatement(Soprano.Statement statement) {
            return (Soprano.Error.ErrorCode) interceptor.Invoke("removeStatement#", "removeStatement(const Soprano::Statement&)", typeof(Soprano.Error.ErrorCode), typeof(Soprano.Statement), statement);
        }
        // WARNING: Unimplemented C++ pure virtual - DO NOT CALL
        [SmokeMethod("listStatements(const Soprano::Statement&) const")]
        public override Soprano.StatementIterator ListStatements(Soprano.Statement partial) {
            return (Soprano.StatementIterator) interceptor.Invoke("listStatements#", "listStatements(const Soprano::Statement&) const", typeof(Soprano.StatementIterator), typeof(Soprano.Statement), partial);
        }
        // WARNING: Unimplemented C++ pure virtual - DO NOT CALL
        [SmokeMethod("executeQuery(const QString&, Soprano::Query::QueryLanguage, const QString&) const")]
        public override Soprano.QueryResultIterator ExecuteQuery(string query, Soprano.Query.QueryLanguage language, string userQueryLanguage) {
            return (Soprano.QueryResultIterator) interceptor.Invoke("executeQuery$$$", "executeQuery(const QString&, Soprano::Query::QueryLanguage, const QString&) const", typeof(Soprano.QueryResultIterator), typeof(string), query, typeof(Soprano.Query.QueryLanguage), language, typeof(string), userQueryLanguage);
        }
        [SmokeMethod("executeQuery(const QString&, Soprano::Query::QueryLanguage) const")]
        public virtual Soprano.QueryResultIterator ExecuteQuery(string query, Soprano.Query.QueryLanguage language) {
            return (Soprano.QueryResultIterator) interceptor.Invoke("executeQuery$$", "executeQuery(const QString&, Soprano::Query::QueryLanguage) const", typeof(Soprano.QueryResultIterator), typeof(string), query, typeof(Soprano.Query.QueryLanguage), language);
        }
        // WARNING: Unimplemented C++ pure virtual - DO NOT CALL
        [SmokeMethod("listContexts() const")]
        public override Soprano.NodeIterator ListContexts() {
            return (Soprano.NodeIterator) interceptor.Invoke("listContexts", "listContexts() const", typeof(Soprano.NodeIterator));
        }
        // WARNING: Unimplemented C++ pure virtual - DO NOT CALL
        [SmokeMethod("statementCount() const")]
        public override int StatementCount() {
            return (int) interceptor.Invoke("statementCount", "statementCount() const", typeof(int));
        }
        ~StorageModel() {
            interceptor.Invoke("~StorageModel", "~StorageModel()", typeof(void));
        }
        public new void Dispose() {
            interceptor.Invoke("~StorageModel", "~StorageModel()", typeof(void));
        }
        protected new IStorageModelSignals Emit {
            get { return (IStorageModelSignals) Q_EMIT; }
        }
    }

    public interface IStorageModelSignals : Soprano.IModelSignals {
    }
}
