//Auto-generated by kalyptus. DO NOT EDIT.
namespace Qyoto {
    using System;
    using System.Collections.Generic;
    [SmokeClass("QScriptContextInfo")]
    public class QScriptContextInfo : Object, IDisposable {
        protected SmokeInvocation interceptor = null;
        private IntPtr smokeObject;
        protected QScriptContextInfo(Type dummy) {}
        protected void CreateProxy() {
            interceptor = new SmokeInvocation(typeof(QScriptContextInfo), this);
        }
        private static SmokeInvocation staticInterceptor = null;
        static QScriptContextInfo() {
            staticInterceptor = new SmokeInvocation(typeof(QScriptContextInfo), null);
        }
        public enum FunctionType {
            ScriptFunction = 0,
            QtFunction = 1,
            QtPropertyFunction = 2,
            NativeFunction = 3,
        }
        public QScriptContextInfo(QScriptContext context) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("QScriptContextInfo#", "QScriptContextInfo(const QScriptContext*)", typeof(void), typeof(QScriptContext), context);
        }
        public QScriptContextInfo(QScriptContextInfo other) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("QScriptContextInfo#", "QScriptContextInfo(const QScriptContextInfo&)", typeof(void), typeof(QScriptContextInfo), other);
        }
        public QScriptContextInfo() : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("QScriptContextInfo", "QScriptContextInfo()", typeof(void));
        }
        public bool IsNull() {
            return (bool) interceptor.Invoke("isNull", "isNull() const", typeof(bool));
        }
        public long ScriptId() {
            return (long) interceptor.Invoke("scriptId", "scriptId() const", typeof(long));
        }
        public string FileName() {
            return (string) interceptor.Invoke("fileName", "fileName() const", typeof(string));
        }
        public int LineNumber() {
            return (int) interceptor.Invoke("lineNumber", "lineNumber() const", typeof(int));
        }
        public int ColumnNumber() {
            return (int) interceptor.Invoke("columnNumber", "columnNumber() const", typeof(int));
        }
        public string FunctionName() {
            return (string) interceptor.Invoke("functionName", "functionName() const", typeof(string));
        }
        public QScriptContextInfo.FunctionType functionType() {
            return (QScriptContextInfo.FunctionType) interceptor.Invoke("functionType", "functionType() const", typeof(QScriptContextInfo.FunctionType));
        }
        public List<string> FunctionParameterNames() {
            return (List<string>) interceptor.Invoke("functionParameterNames", "functionParameterNames() const", typeof(List<string>));
        }
        public int FunctionStartLineNumber() {
            return (int) interceptor.Invoke("functionStartLineNumber", "functionStartLineNumber() const", typeof(int));
        }
        public int FunctionEndLineNumber() {
            return (int) interceptor.Invoke("functionEndLineNumber", "functionEndLineNumber() const", typeof(int));
        }
        public int FunctionMetaIndex() {
            return (int) interceptor.Invoke("functionMetaIndex", "functionMetaIndex() const", typeof(int));
        }
        public override bool Equals(object o) {
            if (!(o is QScriptContextInfo)) { return false; }
            return this == (QScriptContextInfo) o;
        }
        public override int GetHashCode() {
            return interceptor.GetHashCode();
        }
        ~QScriptContextInfo() {
            interceptor.Invoke("~QScriptContextInfo", "~QScriptContextInfo()", typeof(void));
        }
        public void Dispose() {
            interceptor.Invoke("~QScriptContextInfo", "~QScriptContextInfo()", typeof(void));
        }
        public static bool operator==(QScriptContextInfo lhs, QScriptContextInfo other) {
            return (bool) staticInterceptor.Invoke("operator==#", "operator==(const QScriptContextInfo&) const", typeof(bool), typeof(QScriptContextInfo), lhs, typeof(QScriptContextInfo), other);
        }
        public static bool operator!=(QScriptContextInfo lhs, QScriptContextInfo other) {
            return !(bool) staticInterceptor.Invoke("operator==#", "operator==(const QScriptContextInfo&) const", typeof(bool), typeof(QScriptContextInfo), lhs, typeof(QScriptContextInfo), other);
        }
    }
}
