diff options
author | Florian Dold <florian.dold@gmail.com> | 2019-08-05 15:03:29 +0200 |
---|---|---|
committer | Florian Dold <florian.dold@gmail.com> | 2019-08-05 15:03:29 +0200 |
commit | da228cf9d71b747f1824e85127039e5afc7effd8 (patch) | |
tree | a19ec2f68fc377b18617d04903af729e50f5b4f2 /library/src/main/java/akono/AkoniJni.kt | |
parent | af62dfc6f3312c628bf851b7724c5925c1e839e9 (diff) | |
download | akono-da228cf9d71b747f1824e85127039e5afc7effd8.tar.gz akono-da228cf9d71b747f1824e85127039e5afc7effd8.tar.bz2 akono-da228cf9d71b747f1824e85127039e5afc7effd8.zip |
WIP
Diffstat (limited to 'library/src/main/java/akono/AkoniJni.kt')
-rw-r--r-- | library/src/main/java/akono/AkoniJni.kt | 39 |
1 files changed, 39 insertions, 0 deletions
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<out String>): 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 |