예제 #1
0
        static HasherProxy()
        {
            JniEnvWrapper env = JvmManager.INSTANCE.GetEnv();

            classRef  = env.FindClass("ru/gnkoshelev/j4net/sample/hash/lib/Hasher");
            methodRef = env.GetStaticMethodId(classRef.Ptr, "compute", "(Ljava/lang/String;[B)Ljava/lang/String;");
        }
예제 #2
0
        public static string Compute(string algorithm, byte[] bytes)
        {
            JniEnvWrapper env = JvmManager.INSTANCE.GetEnv();

            using (var jString = env.NewStringUtf(algorithm))
            {
                using (var jByteArray = env.NewByteArray(bytes))
                {
                    using (var localRef = env.CallStaticObjectMethod(classRef.Ptr, methodRef.Ptr, new JValue {
                        PointerValue = jString.Ptr
                    }, new JValue {
                        PointerValue = jByteArray.Ptr
                    }))
                    {
                        return(env.GetString(localRef.Ptr));
                    }
                }
            }
        }
예제 #3
0
 internal JniEnvExceptionsWrapper(JniEnvWrapper jniEnvWrapper)
 {
     Debug.Assert(jniEnvWrapper != null);
     _jniEnvWrapper = jniEnvWrapper;
     InitFunctions();
 }
예제 #4
0
        public ProxyFactory(JniEnvWrapper jniEnvWrapper)
        {
            Debug.Assert(jniEnvWrapper != null);

            _jniEnvWrapper = jniEnvWrapper;
        }
예제 #5
0
 internal JniEnvStringsWrapper(JniEnvWrapper jniEnvWrapper)
 {
     if (jniEnvWrapper == null) throw new ArgumentNullException(nameof(jniEnvWrapper));
     _jniEnvWrapper = jniEnvWrapper;
     InitFunctions();
 }