summaryrefslogtreecommitdiff
path: root/library/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'library/src/main/java')
-rw-r--r--library/src/main/java/akono/AkoniJni.kt39
-rw-r--r--library/src/main/java/akono/Library.kt10
2 files changed, 49 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
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
+ }
+}