コード例 #1
0
ファイル: Callbacks.cs プロジェクト: zyling10/ignite
        private long InLongLongLongObjectOutLong(IntPtr env, IntPtr clazz, long igniteId,
            int op, long arg1, long arg2, long arg3, IntPtr arg)
        {
            try
            {
                var cbs = _callbackRegistry.Get<UnmanagedCallbacks>(igniteId, true);

                _jvm.AttachCurrentThread(env);

                return cbs.InLongLongLongObjectOutLong(op, arg1, arg2, arg3, arg);
            }
            catch (Exception e)
            {
                _jvm.AttachCurrentThread(env).ThrowToJava(e);
                return 0;
            }
        }
コード例 #2
0
        private void LoggerLog(IntPtr envPtr, IntPtr clazz, long igniteId, int level, IntPtr message, IntPtr category,
                               IntPtr errorInfo, long memPtr)
        {
            try
            {
                var cbs = _callbackRegistry.Get <UnmanagedCallbacks>(igniteId, true);
                var env = _jvm.AttachCurrentThread();

                var message0   = env.JStringToString(message);
                var category0  = env.JStringToString(category);
                var errorInfo0 = env.JStringToString(errorInfo);

                cbs.LoggerLog(level, message0, category0, errorInfo0, memPtr);
            }
            catch (Exception e)
            {
                _jvm.AttachCurrentThread().ThrowToJava(e);
            }
        }
コード例 #3
0
        private int CacheStoreInvoke(void *target, long objPtr, long memPtr, void *cb)
        {
            return(SafeCall(() =>
            {
                var t = _handleRegistry.Get <CacheStore>(objPtr, true);

                IUnmanagedTarget cb0 = null;

                if ((long)cb != 0)
                {
                    cb0 = new UnmanagedNonReleaseableTarget(_ctx, cb);
                }

                using (PlatformMemoryStream stream = IgniteManager.Memory.Get(memPtr).GetStream())
                {
                    return t.Invoke(stream, cb0, _ignite);
                }
            }));
        }