Exemple #1
0
            public unsafe bool InvokeNonvirtualBooleanMethod(string encodedMember, IJavaPeerable self, JniArgumentValue *parameters)
            {
                JniPeerMembers.AssertSelf(self);

                var m = GetMethodInfo(encodedMember);

                return(JniEnvironment.InstanceMethods.CallNonvirtualBooleanMethod(self.PeerReference, JniPeerType.PeerReference, m, parameters));
            }
Exemple #2
0
            public unsafe sbyte InvokeAbstractSByteMethod(string encodedMember, IJavaPeerable self, JniArgumentValue *parameters)
            {
                JniPeerMembers.AssertSelf(self);

                var m = GetMethodInfo(encodedMember);

                return(JniEnvironment.InstanceMethods.CallByteMethod(self.PeerReference, m, parameters));
            }
Exemple #3
0
            public void SetValue(string encodedMember, IJavaPeerable self, short value)
            {
                JniPeerMembers.AssertSelf(self);

                var f = GetFieldInfo(encodedMember);

                JniEnvironment.InstanceFields.SetShortField(self.PeerReference, f, value);
                GC.KeepAlive(self);
            }
            public unsafe void InvokeAbstractVoidMethod(string encodedMember, IJavaPeerable self, JniArgumentValue *parameters)
            {
                JniPeerMembers.AssertSelf(self);

                var m = GetMethodInfo(encodedMember);

                JniEnvironment.InstanceMethods.CallVoidMethod(self.PeerReference, m, parameters);
                GC.KeepAlive(self);
                return;
            }
            public unsafe JniObjectReference InvokeNonvirtualObjectMethod(string encodedMember, IJavaPeerable self, JniArgumentValue *parameters)
            {
                JniPeerMembers.AssertSelf(self);

                var m = GetMethodInfo(encodedMember);

                var r = JniEnvironment.InstanceMethods.CallNonvirtualObjectMethod(self.PeerReference, JniPeerType.PeerReference, m, parameters);

                GC.KeepAlive(self);
                return(r);
            }
Exemple #6
0
            public int GetInt32Value(
                string encodedMember,
                IJavaPeerable self)
            {
                JniPeerMembers.AssertSelf(self);

                var f = GetFieldInfo(encodedMember);
                var r = JniEnvironment.InstanceFields.GetIntField(self.PeerReference, f);

                GC.KeepAlive(self);
                return(r);
            }
Exemple #7
0
            public unsafe sbyte InvokeVirtualSByteMethod(string encodedMember, IJavaPeerable self, JniArgumentValue *parameters)
            {
                JniPeerMembers.AssertSelf(self);

                var declaringType = DeclaringType;

                if (Members.UsesVirtualDispatch(self, declaringType))
                {
                    var m = GetMethodInfo(encodedMember);
                    return(JniEnvironment.InstanceMethods.CallByteMethod(self.PeerReference, m, parameters));
                }
                var j = Members.GetPeerMembers(self);
                var n = j.InstanceMethods.GetMethodInfo(encodedMember);

                return(JniEnvironment.InstanceMethods.CallNonvirtualByteMethod(self.PeerReference, j.JniPeerType.PeerReference, n, parameters));
            }
Exemple #8
0
        public override bool Equals(object obj)
        {
            JniPeerMembers.AssertSelf(this);

            if (object.ReferenceEquals(obj, this))
            {
                return(true);
            }
            var o = obj as IJavaPeerable;

            if (o != null)
            {
                return(JniEnvironment.Types.IsSameObject(PeerReference, o.PeerReference));
            }
            return(false);
        }
            public unsafe long InvokeVirtualInt64Method(string encodedMember, IJavaPeerable self, JniArgumentValue *parameters)
            {
                JniPeerMembers.AssertSelf(self);

                var declaringType = DeclaringType;

                if (Members.UsesVirtualDispatch(self, declaringType))
                {
                    var m   = GetMethodInfo(encodedMember);
                    var _nr = JniEnvironment.InstanceMethods.CallLongMethod(self.PeerReference, m, parameters);
                    GC.KeepAlive(self);
                    return(_nr);
                }
                var j = Members.GetPeerMembers(self);
                var n = j.InstanceMethods.GetMethodInfo(encodedMember);
                var r = JniEnvironment.InstanceMethods.CallNonvirtualLongMethod(self.PeerReference, j.JniPeerType.PeerReference, n, parameters);

                GC.KeepAlive(self);
                return(r);
            }
 public static string GetJniTypeName(this IJavaPeerable self)
 {
     JniPeerMembers.AssertSelf(self);
     return(JniEnvironment.Types.GetJniTypeNameFromInstance(self.PeerReference));
 }