From da228cf9d71b747f1824e85127039e5afc7effd8 Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Mon, 5 Aug 2019 15:03:29 +0200 Subject: WIP --- library/src/main/java/akono/AkoniJni.kt | 39 +++++++++++++++++++++++++++++++++ library/src/main/java/akono/Library.kt | 10 +++++++++ 2 files changed, 49 insertions(+) create mode 100644 library/src/main/java/akono/AkoniJni.kt create mode 100644 library/src/main/java/akono/Library.kt (limited to 'library/src/main/java/akono') diff --git a/library/src/main/java/akono/AkoniJni.kt b/library/src/main/java/akono/AkoniJni.kt new file mode 100644 index 00000000..2210a7ef --- /dev/null +++ b/library/src/main/java/akono/AkoniJni.kt @@ -0,0 +1,39 @@ +package akono + +import java.nio.ByteBuffer + +typealias AkonoNativePointer = ByteBuffer + +class AkonoJni { + external fun stringFromJNI(): String + + private external fun evalJs(source: String, p: AkonoNativePointer): String + + private external fun destroyNative(b: AkonoNativePointer) + private external fun initNative(nodeArgv: Array): AkonoNativePointer + + private external fun runNodeLoop(b: AkonoNativePointer) + + private external fun postMessageToNode(message: String, b: AkonoNativePointer) + + private external fun waitForMessageFromNode(b: AkonoNativePointer): String + + private var internalNativePointer: AkonoNativePointer + + fun evalJs(source: String): String = evalJs(source, internalNativePointer) + + @Override + protected fun finalize() { + destroyNative(internalNativePointer) + } + + constructor(vararg nodeArgv: String) { + internalNativePointer = initNative(nodeArgv) + } + + companion object { + init { + System.loadLibrary("akono-jni") + } + } +} \ No newline at end of file diff --git a/library/src/main/java/akono/Library.kt b/library/src/main/java/akono/Library.kt new file mode 100644 index 00000000..920648fd --- /dev/null +++ b/library/src/main/java/akono/Library.kt @@ -0,0 +1,10 @@ +/* + * This Kotlin source file was generated by the Gradle 'init' task. + */ +package akono + +class Library { + fun someLibraryMethod(): Boolean { + return true + } +} -- cgit v1.2.3