//Auto-generated by kalyptus. DO NOT EDIT.
namespace Akonadi {
    using Kimono;
    using System;
    using Qyoto;
    using System.Collections.Generic;
    /// <remarks>
    ///  The job can be used to copy one or several Item objects to another collection.
    ///  Example:
    ///  @code
    ///  Akonadi.Item.List items = ...
    ///  Akonadi.Collection collection = ...
    ///  Akonadi.ItemCopyJob job = new Akonadi.ItemCopyJob( items, collection );
    ///  if ( job.Exec() )
    ///    qDebug() << "Items copied successfully";
    ///  else
    ///    qDebug() << "Error occurred";
    ///  @endcode
    /// </remarks>        <author> Volker Krause <vkrause@kde.org>
    ///  </author>
    ///         <short> Job that copies a set of items to a target collection in the Akonadi storage. </short>
    [SmokeClass("Akonadi::ItemCopyJob")]
    public class ItemCopyJob : Akonadi.Job {
        protected ItemCopyJob(Type dummy) : base((Type) null) {}
        protected new void CreateProxy() {
            interceptor = new SmokeInvocation(typeof(ItemCopyJob), this);
        }
        /// <remarks>
        ///  Creates a new item copy job.
        /// <param> name="item" The item to copy.
        /// </param><param> name="target" The target collection.
        /// </param><param> name="parent" The parent object.
        ///      </param></remarks>        <short>    Creates a new item copy job.</short>
        public ItemCopyJob(Akonadi.Item item, Akonadi.Collection target, QObject parent) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("ItemCopyJob###", "ItemCopyJob(const Akonadi::Item&, const Akonadi::Collection&, QObject*)", typeof(void), typeof(Akonadi.Item), item, typeof(Akonadi.Collection), target, typeof(QObject), parent);
        }
        public ItemCopyJob(Akonadi.Item item, Akonadi.Collection target) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("ItemCopyJob##", "ItemCopyJob(const Akonadi::Item&, const Akonadi::Collection&)", typeof(void), typeof(Akonadi.Item), item, typeof(Akonadi.Collection), target);
        }
        /// <remarks>
        ///  Creates a new item copy job.
        /// <param> name="items" A list of items to copy.
        /// </param><param> name="target" The target collection.
        /// </param><param> name="parent" The parent object.
        ///      </param></remarks>        <short>    Creates a new item copy job.</short>
        public ItemCopyJob(List<Akonadi.Item> items, Akonadi.Collection target, QObject parent) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("ItemCopyJob?##", "ItemCopyJob(const QList<Akonadi::Item>&, const Akonadi::Collection&, QObject*)", typeof(void), typeof(List<Akonadi.Item>), items, typeof(Akonadi.Collection), target, typeof(QObject), parent);
        }
        public ItemCopyJob(List<Akonadi.Item> items, Akonadi.Collection target) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("ItemCopyJob?#", "ItemCopyJob(const QList<Akonadi::Item>&, const Akonadi::Collection&)", typeof(void), typeof(List<Akonadi.Item>), items, typeof(Akonadi.Collection), target);
        }
        [SmokeMethod("doStart()")]
        protected override void DoStart() {
            interceptor.Invoke("doStart", "doStart()", typeof(void));
        }
        protected new IItemCopyJobSignals Emit {
            get { return (IItemCopyJobSignals) Q_EMIT; }
        }
    }

    public interface IItemCopyJobSignals : Akonadi.IJobSignals {
    }
}
