//Auto-generated by kalyptus. DO NOT EDIT.
namespace KIO {
    using Kimono;
    using System;
    using Qyoto;
    /// <remarks>
    ///  A class that sends a special command to an ioslave.
    ///  This allows you to send a binary blob to an ioslave and handle
    ///  its responses. The ioslave will receive the binary data as an
    ///  argument to the "special" function (inherited from SlaveBase.Special()).
    ///  Use this only on ioslaves that belong to your application. Sending
    ///  special commands to other ioslaves may cause unexpected behaviour.
    /// </remarks>        <short>    A class that sends a special command to an ioslave.</short>
    ///         <see> special</see>
    [SmokeClass("KIO::SpecialJob")]
    public class SpecialJob : KIO.TransferJob, IDisposable {
        protected SpecialJob(Type dummy) : base((Type) null) {}
        protected new void CreateProxy() {
            interceptor = new SmokeInvocation(typeof(SpecialJob), this);
        }
        /// <remarks>
        ///  Creates a KIO.SpecialJob.
        /// <param> name="url" the URL to be passed to the ioslave
        /// </param><param> name="data" the data to be sent to the SlaveBase.Special() function.
        ///          </param></remarks>        <short>    Creates a KIO.SpecialJob.</short>
        public SpecialJob(KUrl url, QByteArray data) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("SpecialJob##", "SpecialJob(const KUrl&, const QByteArray&)", typeof(void), typeof(KUrl), url, typeof(QByteArray), data);
        }
        public SpecialJob(KUrl url) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("SpecialJob#", "SpecialJob(const KUrl&)", typeof(void), typeof(KUrl), url);
        }
        /// <remarks>
        ///  Sets the QByteArray that is passed to SlaveBase.Special() on
        ///  the ioslave.
        ///          </remarks>        <short>    Sets the QByteArray that is passed to SlaveBase.Special() on  the ioslave.</short>
        public void SetArguments(QByteArray data) {
            interceptor.Invoke("setArguments#", "setArguments(const QByteArray&)", typeof(void), typeof(QByteArray), data);
        }
        /// <remarks>
        ///  Returns the QByteArray data that will be sent (or has been sent) to the
        ///  ioslave.
        ///          </remarks>        <short>    Returns the QByteArray data that will be sent (or has been sent) to the  ioslave.</short>
        public QByteArray Arguments() {
            return (QByteArray) interceptor.Invoke("arguments", "arguments() const", typeof(QByteArray));
        }
        ~SpecialJob() {
            interceptor.Invoke("~SpecialJob", "~SpecialJob()", typeof(void));
        }
        public new void Dispose() {
            interceptor.Invoke("~SpecialJob", "~SpecialJob()", typeof(void));
        }
        protected new ISpecialJobSignals Emit {
            get { return (ISpecialJobSignals) Q_EMIT; }
        }
    }

    public interface ISpecialJobSignals : KIO.ITransferJobSignals {
    }
}
