//Auto-generated by kalyptus. DO NOT EDIT.
namespace Akonadi {
    using Kimono;
    using System;
    using Qyoto;
    /// <remarks>
    ///  This job creates a new item with all the set properties in the
    ///  given target collection.
    ///  Example:
    ///  @code
    ///  // Create a contact item in the root collection
    ///  KABC.Addressee addr;
    ///  addr.setNameFromString( "Joe Jr. Miller" );
    ///  Akonadi.Item item;
    ///  item.setMimeType( "text/directory" );
    ///  item.setPayload<KABC.Addressee>( addr );
    ///  Akonadi.Collection collection = Akonadi.Collection.Root();
    ///  Akonadi.ItemCreateJob job = new Akonadi.ItemCreateJob( item, collection );
    ///  if ( job.Exec() )
    ///    qDebug() << "Contact item created successfully";
    ///  else
    ///    qDebug() << "Error occurred";
    ///  @endcode
    /// </remarks>        <author> Volker Krause <vkrause@kde.org>
    ///  </author>
    ///         <short> Job that creates a new item in the Akonadi storage. </short>
    [SmokeClass("Akonadi::ItemCreateJob")]
    public class ItemCreateJob : Akonadi.Job, IDisposable {
        protected ItemCreateJob(Type dummy) : base((Type) null) {}
        protected new void CreateProxy() {
            interceptor = new SmokeInvocation(typeof(ItemCreateJob), this);
        }
        /// <remarks>
        ///  Creates a new item create job.
        /// <param> name="item" The item to create.
        ///              @note It must have a mime type set.
        /// </param><param> name="collection" The parent collection where the new item shall be located in.
        /// </param><param> name="parent" The parent object.
        ///      </param></remarks>        <short>    Creates a new item create job.</short>
        public ItemCreateJob(Akonadi.Item item, Akonadi.Collection collection, QObject parent) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("ItemCreateJob###", "ItemCreateJob(const Akonadi::Item&, const Akonadi::Collection&, QObject*)", typeof(void), typeof(Akonadi.Item), item, typeof(Akonadi.Collection), collection, typeof(QObject), parent);
        }
        public ItemCreateJob(Akonadi.Item item, Akonadi.Collection collection) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("ItemCreateJob##", "ItemCreateJob(const Akonadi::Item&, const Akonadi::Collection&)", typeof(void), typeof(Akonadi.Item), item, typeof(Akonadi.Collection), collection);
        }
        /// <remarks>
        ///  Returns the created item with the new unique id, or an invalid item if the job failed.
        ///      </remarks>        <short>    Returns the created item with the new unique id, or an invalid item if the job failed.</short>
        public Akonadi.Item Item() {
            return (Akonadi.Item) interceptor.Invoke("item", "item() const", typeof(Akonadi.Item));
        }
        [SmokeMethod("doStart()")]
        protected override void DoStart() {
            interceptor.Invoke("doStart", "doStart()", typeof(void));
        }
        [SmokeMethod("doHandleResponse(const QByteArray&, const QByteArray&)")]
        protected override void DoHandleResponse(QByteArray tag, QByteArray data) {
            interceptor.Invoke("doHandleResponse##", "doHandleResponse(const QByteArray&, const QByteArray&)", typeof(void), typeof(QByteArray), tag, typeof(QByteArray), data);
        }
        ~ItemCreateJob() {
            interceptor.Invoke("~ItemCreateJob", "~ItemCreateJob()", typeof(void));
        }
        public new void Dispose() {
            interceptor.Invoke("~ItemCreateJob", "~ItemCreateJob()", typeof(void));
        }
        protected new IItemCreateJobSignals Emit {
            get { return (IItemCreateJobSignals) Q_EMIT; }
        }
    }

    public interface IItemCreateJobSignals : Akonadi.IJobSignals {
    }
}
