//Auto-generated by kalyptus. DO NOT EDIT.
namespace Qyoto {
    using System;
    using System.Collections.Generic;
    [SmokeClass("QNetworkRequest")]
    public class QNetworkRequest : Object, IDisposable {
        protected SmokeInvocation interceptor = null;
        private IntPtr smokeObject;
        protected QNetworkRequest(Type dummy) {}
        protected void CreateProxy() {
            interceptor = new SmokeInvocation(typeof(QNetworkRequest), this);
        }
        private static SmokeInvocation staticInterceptor = null;
        static QNetworkRequest() {
            staticInterceptor = new SmokeInvocation(typeof(QNetworkRequest), null);
        }
        public enum KnownHeaders {
            ContentTypeHeader = 0,
            ContentLengthHeader = 1,
            LocationHeader = 2,
            LastModifiedHeader = 3,
            CookieHeader = 4,
            SetCookieHeader = 5,
        }
        public enum Attribute {
            HttpStatusCodeAttribute = 0,
            HttpReasonPhraseAttribute = 1,
            RedirectionTargetAttribute = 2,
            ConnectionEncryptedAttribute = 3,
            CacheLoadControlAttribute = 4,
            CacheSaveControlAttribute = 5,
            User = 1000,
            UserMax = 32767,
        }
        public enum CacheLoadControl {
            AlwaysNetwork = 0,
            PreferNetwork = 1,
            PreferCache = 2,
            AlwaysCache = 3,
        }
        public QNetworkRequest(QUrl url) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("QNetworkRequest#", "QNetworkRequest(const QUrl&)", typeof(void), typeof(QUrl), url);
        }
        public QNetworkRequest() : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("QNetworkRequest", "QNetworkRequest()", typeof(void));
        }
        public QNetworkRequest(QNetworkRequest other) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("QNetworkRequest#", "QNetworkRequest(const QNetworkRequest&)", typeof(void), typeof(QNetworkRequest), other);
        }
        public override bool Equals(object o) {
            if (!(o is QNetworkRequest)) { return false; }
            return this == (QNetworkRequest) o;
        }
        public override int GetHashCode() {
            return interceptor.GetHashCode();
        }
        public QUrl Url() {
            return (QUrl) interceptor.Invoke("url", "url() const", typeof(QUrl));
        }
        public void SetUrl(QUrl url) {
            interceptor.Invoke("setUrl#", "setUrl(const QUrl&)", typeof(void), typeof(QUrl), url);
        }
        public QVariant Header(QNetworkRequest.KnownHeaders header) {
            return (QVariant) interceptor.Invoke("header$", "header(QNetworkRequest::KnownHeaders) const", typeof(QVariant), typeof(QNetworkRequest.KnownHeaders), header);
        }
        public void SetHeader(QNetworkRequest.KnownHeaders header, QVariant value) {
            interceptor.Invoke("setHeader$#", "setHeader(QNetworkRequest::KnownHeaders, const QVariant&)", typeof(void), typeof(QNetworkRequest.KnownHeaders), header, typeof(QVariant), value);
        }
        public bool HasRawHeader(QByteArray headerName) {
            return (bool) interceptor.Invoke("hasRawHeader#", "hasRawHeader(const QByteArray&) const", typeof(bool), typeof(QByteArray), headerName);
        }
        public List<QByteArray> RawHeaderList() {
            return (List<QByteArray>) interceptor.Invoke("rawHeaderList", "rawHeaderList() const", typeof(List<QByteArray>));
        }
        public QByteArray RawHeader(QByteArray headerName) {
            return (QByteArray) interceptor.Invoke("rawHeader#", "rawHeader(const QByteArray&) const", typeof(QByteArray), typeof(QByteArray), headerName);
        }
        public void SetRawHeader(QByteArray headerName, QByteArray value) {
            interceptor.Invoke("setRawHeader##", "setRawHeader(const QByteArray&, const QByteArray&)", typeof(void), typeof(QByteArray), headerName, typeof(QByteArray), value);
        }
        public QVariant attribute(QNetworkRequest.Attribute code, QVariant defaultValue) {
            return (QVariant) interceptor.Invoke("attribute$#", "attribute(QNetworkRequest::Attribute, const QVariant&) const", typeof(QVariant), typeof(QNetworkRequest.Attribute), code, typeof(QVariant), defaultValue);
        }
        public QVariant attribute(QNetworkRequest.Attribute code) {
            return (QVariant) interceptor.Invoke("attribute$", "attribute(QNetworkRequest::Attribute) const", typeof(QVariant), typeof(QNetworkRequest.Attribute), code);
        }
        public void SetAttribute(QNetworkRequest.Attribute code, QVariant value) {
            interceptor.Invoke("setAttribute$#", "setAttribute(QNetworkRequest::Attribute, const QVariant&)", typeof(void), typeof(QNetworkRequest.Attribute), code, typeof(QVariant), value);
        }
        public QSslConfiguration SslConfiguration() {
            return (QSslConfiguration) interceptor.Invoke("sslConfiguration", "sslConfiguration() const", typeof(QSslConfiguration));
        }
        public void SetSslConfiguration(QSslConfiguration configuration) {
            interceptor.Invoke("setSslConfiguration#", "setSslConfiguration(const QSslConfiguration&)", typeof(void), typeof(QSslConfiguration), configuration);
        }
        ~QNetworkRequest() {
            interceptor.Invoke("~QNetworkRequest", "~QNetworkRequest()", typeof(void));
        }
        public void Dispose() {
            interceptor.Invoke("~QNetworkRequest", "~QNetworkRequest()", typeof(void));
        }
        public static bool operator==(QNetworkRequest lhs, QNetworkRequest other) {
            return (bool) staticInterceptor.Invoke("operator==#", "operator==(const QNetworkRequest&) const", typeof(bool), typeof(QNetworkRequest), lhs, typeof(QNetworkRequest), other);
        }
        public static bool operator!=(QNetworkRequest lhs, QNetworkRequest other) {
            return !(bool) staticInterceptor.Invoke("operator==#", "operator==(const QNetworkRequest&) const", typeof(bool), typeof(QNetworkRequest), lhs, typeof(QNetworkRequest), other);
        }
    }
}
