//Auto-generated by kalyptus. DO NOT EDIT.
namespace Akonadi {
    using Kimono;
    using System;
    using Qyoto;
    /// <remarks>
    ///  This class provides a method to start the Akonadi server
    ///  process synchronously.
    ///  Normally the Akonadi server is started by the KDE session
    ///  manager, however for unit tests or special needs one can
    ///  use this class to start it explicitly.
    ///  Example:
    ///  @code
    ///  if ( !Akonadi.Control.Start() ) {
    ///    qDebug() << "Unable to start server, exit application";
    ///    return 1;
    ///  } else {
    ///    ...
    ///  }
    ///  @endcode
    /// </remarks>        <author> Volker Krause <vkrause@kde.org>
    ///  </author>
    ///         <short> Provides methods to control the Akonadi server process. </short>
    [SmokeClass("Akonadi::Control")]
    public class Control : QObject, IDisposable {
        protected Control(Type dummy) : base((Type) null) {}
        protected new void CreateProxy() {
            interceptor = new SmokeInvocation(typeof(Control), this);
        }
        private static SmokeInvocation staticInterceptor = null;
        static Control() {
            staticInterceptor = new SmokeInvocation(typeof(Control), null);
        }
        /// <remarks>
        ///  Creates the control object.
        ///      </remarks>        <short>    Creates the control object.</short>
        public Control() : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("Control", "Control()", typeof(void));
        }
        ~Control() {
            interceptor.Invoke("~Control", "~Control()", typeof(void));
        }
        public new void Dispose() {
            interceptor.Invoke("~Control", "~Control()", typeof(void));
        }
        /// <remarks>
        ///  Starts the Akonadi server synchronously if it is not already running.
        ///      </remarks>        <short>    Starts the Akonadi server synchronously if it is not already running.</short>
        public static bool Start() {
            return (bool) staticInterceptor.Invoke("start", "start()", typeof(bool));
        }
        protected new IControlSignals Emit {
            get { return (IControlSignals) Q_EMIT; }
        }
    }

    public interface IControlSignals : IQObjectSignals {
    }
}
