Ejemplo n.º 1
0
        public CallersFactory(IGateway gateway)
        {
            this.Gateway       = gateway;
            this.FieldCallers  = new List <object>();
            this.MethodCallers = new List <object>();

            JNIEnvironment env = this.Gateway.Runtime.JavaEnvironment.JNIEnv;

            this.FieldCallers.Add(new FieldCaller <IntPtr>(env.GetObjectField, env.GetStaticObjectField));
            this.FieldCallers.Add(new FieldCaller <bool>(env.GetBooleanField, env.GetStaticBooleanField));
            this.FieldCallers.Add(new FieldCaller <byte>(env.GetByteField, env.GetStaticByteField));
            this.FieldCallers.Add(new FieldCaller <ushort>(env.GetCharField, env.GetStaticCharField));
            this.FieldCallers.Add(new FieldCaller <short>(env.GetShortField, env.GetStaticShortField));
            this.FieldCallers.Add(new FieldCaller <int>(env.GetIntField, env.GetStaticIntField));
            this.FieldCallers.Add(new FieldCaller <long>(env.GetLongField, env.GetStaticLongField));
            this.FieldCallers.Add(new FieldCaller <float>(env.GetFloatField, env.GetStaticFloatField));
            this.FieldCallers.Add(new FieldCaller <double>(env.GetDoubleField, env.GetStaticDoubleField));

            this.MethodCallers.Add(new MethodCaller <IntPtr>(env.CallObjectMethod, env.CallStaticObjectMethod));
            this.MethodCallers.Add(new MethodCaller <bool>(env.CallBooleanMethod, env.CallStaticBooleanMethod));
            this.MethodCallers.Add(new MethodCaller <byte>(env.CallByteMethod, env.CallStaticByteMethod));
            this.MethodCallers.Add(new MethodCaller <ushort>(env.CallCharMethod, env.CallStaticCharMethod));
            this.MethodCallers.Add(new MethodCaller <short>(env.CallShortMethod, env.CallStaticShortMethod));
            this.MethodCallers.Add(new MethodCaller <int>(env.CallIntMethod, env.CallStaticIntMethod));
            this.MethodCallers.Add(new MethodCaller <long>(env.CallLongMethod, env.CallStaticLongMethod));
            this.MethodCallers.Add(new MethodCaller <float>(env.CallFloatMethod, env.CallStaticFloatMethod));
            this.MethodCallers.Add(new MethodCaller <double>(env.CallDoubleMethod, env.CallStaticDoubleMethod));
        }
Ejemplo n.º 2
0
        public void Dispose()
        {
            if (this.VirtualMachine != null)
            {
                this.VirtualMachine.Dispose();
                this.VirtualMachine = null;
            }

            if (this.JNIEnv != null)
            {
                Marshal.FreeCoTaskMem(this.JNIEnv.NativePointer);
                this.JNIEnv = null;
            }
        }
Ejemplo n.º 3
0
 internal JavaEnvironment(IntPtr ptr)
 {
     this.JNIEnv = new JNIEnvironment(ptr);
 }