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(envPtr); 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(envPtr).ThrowToJava(e); } }
private void ConsoleWrite(IntPtr envPtr, IntPtr clazz, IntPtr message, bool isError) { try { if (message != IntPtr.Zero) { // Each domain registers it's own writer. var writer = _consoleWriters.Select(x => x.Value).FirstOrDefault(); if (writer != null) { var env = _jvm.AttachCurrentThread(envPtr); var msg = env.JStringToString(message); writer.Write(msg, isError); } } } catch (Exception e) { _jvm.AttachCurrentThread(envPtr).ThrowToJava(e); } }
/// <summary> /// Releases the unmanaged resources. /// </summary> private void ReleaseUnmanagedResources() { _jvm.AttachCurrentThread().DeleteGlobalRef(_target); }