//Auto-generated by kalyptus. DO NOT EDIT.
namespace Qyoto {
    using System;
    [SmokeClass("QSslCipher")]
    public class QSslCipher : Object, IDisposable {
        protected SmokeInvocation interceptor = null;
        private IntPtr smokeObject;
        protected QSslCipher(Type dummy) {}
        protected void CreateProxy() {
            interceptor = new SmokeInvocation(typeof(QSslCipher), this);
        }
        private static SmokeInvocation staticInterceptor = null;
        static QSslCipher() {
            staticInterceptor = new SmokeInvocation(typeof(QSslCipher), null);
        }
        public QSslCipher() : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("QSslCipher", "QSslCipher()", typeof(void));
        }
        public QSslCipher(string name, QSsl.SslProtocol protocol) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("QSslCipher$$", "QSslCipher(const QString&, QSsl::SslProtocol)", typeof(void), typeof(string), name, typeof(QSsl.SslProtocol), protocol);
        }
        public QSslCipher(QSslCipher other) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("QSslCipher#", "QSslCipher(const QSslCipher&)", typeof(void), typeof(QSslCipher), other);
        }
        public override bool Equals(object o) {
            if (!(o is QSslCipher)) { return false; }
            return this == (QSslCipher) o;
        }
        public override int GetHashCode() {
            return interceptor.GetHashCode();
        }
        public bool IsNull() {
            return (bool) interceptor.Invoke("isNull", "isNull() const", typeof(bool));
        }
        public string Name() {
            return (string) interceptor.Invoke("name", "name() const", typeof(string));
        }
        public int SupportedBits() {
            return (int) interceptor.Invoke("supportedBits", "supportedBits() const", typeof(int));
        }
        public int UsedBits() {
            return (int) interceptor.Invoke("usedBits", "usedBits() const", typeof(int));
        }
        public string KeyExchangeMethod() {
            return (string) interceptor.Invoke("keyExchangeMethod", "keyExchangeMethod() const", typeof(string));
        }
        public string AuthenticationMethod() {
            return (string) interceptor.Invoke("authenticationMethod", "authenticationMethod() const", typeof(string));
        }
        public string EncryptionMethod() {
            return (string) interceptor.Invoke("encryptionMethod", "encryptionMethod() const", typeof(string));
        }
        public string ProtocolString() {
            return (string) interceptor.Invoke("protocolString", "protocolString() const", typeof(string));
        }
        public QSsl.SslProtocol Protocol() {
            return (QSsl.SslProtocol) interceptor.Invoke("protocol", "protocol() const", typeof(QSsl.SslProtocol));
        }
        ~QSslCipher() {
            interceptor.Invoke("~QSslCipher", "~QSslCipher()", typeof(void));
        }
        public void Dispose() {
            interceptor.Invoke("~QSslCipher", "~QSslCipher()", typeof(void));
        }
        public static bool operator==(QSslCipher lhs, QSslCipher other) {
            return (bool) staticInterceptor.Invoke("operator==#", "operator==(const QSslCipher&) const", typeof(bool), typeof(QSslCipher), lhs, typeof(QSslCipher), other);
        }
        public static bool operator!=(QSslCipher lhs, QSslCipher other) {
            return !(bool) staticInterceptor.Invoke("operator==#", "operator==(const QSslCipher&) const", typeof(bool), typeof(QSslCipher), lhs, typeof(QSslCipher), other);
        }
    }
}
