//Auto-generated by kalyptus. DO NOT EDIT.
namespace Qyoto {
    using System;
    using System.Collections.Generic;
    [SmokeClass("QDBusMessage")]
    public class QDBusMessage : Object, IDisposable {
        protected SmokeInvocation interceptor = null;
        private IntPtr smokeObject;
        protected QDBusMessage(Type dummy) {}
        protected void CreateProxy() {
            interceptor = new SmokeInvocation(typeof(QDBusMessage), this);
        }
        private static SmokeInvocation staticInterceptor = null;
        static QDBusMessage() {
            staticInterceptor = new SmokeInvocation(typeof(QDBusMessage), null);
        }
        public enum MessageType {
            InvalidMessage = 0,
            MethodCallMessage = 1,
            ReplyMessage = 2,
            ErrorMessage = 3,
            SignalMessage = 4,
        }
        public QDBusMessage() : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("QDBusMessage", "QDBusMessage()", typeof(void));
        }
        public QDBusMessage(QDBusMessage other) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("QDBusMessage#", "QDBusMessage(const QDBusMessage&)", typeof(void), typeof(QDBusMessage), other);
        }
        public QDBusMessage CreateReply(List<QVariant> arguments) {
            return (QDBusMessage) interceptor.Invoke("createReply?", "createReply(const QList<QVariant>&) const", typeof(QDBusMessage), typeof(List<QVariant>), arguments);
        }
        public QDBusMessage CreateReply() {
            return (QDBusMessage) interceptor.Invoke("createReply", "createReply() const", typeof(QDBusMessage));
        }
        public QDBusMessage CreateReply(QVariant argument) {
            return (QDBusMessage) interceptor.Invoke("createReply#", "createReply(const QVariant&) const", typeof(QDBusMessage), typeof(QVariant), argument);
        }
        public QDBusMessage CreateErrorReply(string name, string msg) {
            return (QDBusMessage) interceptor.Invoke("createErrorReply$$", "createErrorReply(const QString, const QString&) const", typeof(QDBusMessage), typeof(string), name, typeof(string), msg);
        }
        public QDBusMessage CreateErrorReply(QDBusError err) {
            return (QDBusMessage) interceptor.Invoke("createErrorReply#", "createErrorReply(const QDBusError&) const", typeof(QDBusMessage), typeof(QDBusError), err);
        }
        public QDBusMessage CreateErrorReply(QDBusError.ErrorType type, string msg) {
            return (QDBusMessage) interceptor.Invoke("createErrorReply$$", "createErrorReply(QDBusError::ErrorType, const QString&) const", typeof(QDBusMessage), typeof(QDBusError.ErrorType), type, typeof(string), msg);
        }
        public string Service() {
            return (string) interceptor.Invoke("service", "service() const", typeof(string));
        }
        public string Path() {
            return (string) interceptor.Invoke("path", "path() const", typeof(string));
        }
        public string Interface() {
            return (string) interceptor.Invoke("interface", "interface() const", typeof(string));
        }
        public string Member() {
            return (string) interceptor.Invoke("member", "member() const", typeof(string));
        }
        public string ErrorName() {
            return (string) interceptor.Invoke("errorName", "errorName() const", typeof(string));
        }
        public string ErrorMessage() {
            return (string) interceptor.Invoke("errorMessage", "errorMessage() const", typeof(string));
        }
        public QDBusMessage.MessageType type() {
            return (QDBusMessage.MessageType) interceptor.Invoke("type", "type() const", typeof(QDBusMessage.MessageType));
        }
        public string Signature() {
            return (string) interceptor.Invoke("signature", "signature() const", typeof(string));
        }
        public bool IsReplyRequired() {
            return (bool) interceptor.Invoke("isReplyRequired", "isReplyRequired() const", typeof(bool));
        }
        public void SetDelayedReply(bool enable) {
            interceptor.Invoke("setDelayedReply$", "setDelayedReply(bool) const", typeof(void), typeof(bool), enable);
        }
        public bool IsDelayedReply() {
            return (bool) interceptor.Invoke("isDelayedReply", "isDelayedReply() const", typeof(bool));
        }
        public void SetArguments(List<QVariant> arguments) {
            interceptor.Invoke("setArguments?", "setArguments(const QList<QVariant>&)", typeof(void), typeof(List<QVariant>), arguments);
        }
        public List<QVariant> Arguments() {
            return (List<QVariant>) interceptor.Invoke("arguments", "arguments() const", typeof(List<QVariant>));
        }
        public QDBusMessage Write(QVariant arg) {
            return (QDBusMessage) interceptor.Invoke("operator<<#", "operator<<(const QVariant&)", typeof(QDBusMessage), typeof(QVariant), arg);
        }
        ~QDBusMessage() {
            interceptor.Invoke("~QDBusMessage", "~QDBusMessage()", typeof(void));
        }
        public void Dispose() {
            interceptor.Invoke("~QDBusMessage", "~QDBusMessage()", typeof(void));
        }
        public static QDBusMessage CreateSignal(string path, string arg2, string name) {
            return (QDBusMessage) staticInterceptor.Invoke("createSignal$$$", "createSignal(const QString&, const QString&, const QString&)", typeof(QDBusMessage), typeof(string), path, typeof(string), arg2, typeof(string), name);
        }
        public static QDBusMessage CreateMethodCall(string destination, string path, string arg3, string method) {
            return (QDBusMessage) staticInterceptor.Invoke("createMethodCall$$$$", "createMethodCall(const QString&, const QString&, const QString&, const QString&)", typeof(QDBusMessage), typeof(string), destination, typeof(string), path, typeof(string), arg3, typeof(string), method);
        }
        public static QDBusMessage CreateError(string name, string msg) {
            return (QDBusMessage) staticInterceptor.Invoke("createError$$", "createError(const QString&, const QString&)", typeof(QDBusMessage), typeof(string), name, typeof(string), msg);
        }
        public static QDBusMessage CreateError(QDBusError err) {
            return (QDBusMessage) staticInterceptor.Invoke("createError#", "createError(const QDBusError&)", typeof(QDBusMessage), typeof(QDBusError), err);
        }
        public static QDBusMessage CreateError(QDBusError.ErrorType type, string msg) {
            return (QDBusMessage) staticInterceptor.Invoke("createError$$", "createError(QDBusError::ErrorType, const QString&)", typeof(QDBusMessage), typeof(QDBusError.ErrorType), type, typeof(string), msg);
        }
    }
}
