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)); }
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; } }
internal JavaEnvironment(IntPtr ptr) { this.JNIEnv = new JNIEnvironment(ptr); }