more android code

pull/13/head
Jeff Becker 6 years ago
parent b97ea0c409
commit 863ef1f71e

@ -3,6 +3,7 @@
#include <jni.h>
#include <llarp.h>
#include <signal.h>
#include <memory>
#include <thread>
struct AndroidMain
@ -12,8 +13,6 @@ struct AndroidMain
~AndroidMain()
{
if(m_impl)
llarp_main_free(m_impl);
if(m_thread)
{
m_thread->join();
@ -21,7 +20,8 @@ struct AndroidMain
}
}
void Start()
void
Start()
{
if(m_impl || m_thread)
return;
@ -29,12 +29,15 @@ struct AndroidMain
m_thread = new std::thread(std::bind(&AndroidMain::Run, this));
}
void Run()
void
Run()
{
llarp_main_run(m_impl);
llarp_main_free(m_impl);
}
void Stop()
void
Stop()
{
llarp_main_signal(m_impl, SIGINT);
}
@ -46,9 +49,16 @@ struct AndroidMain
extern "C"
{
JNIEXPORT jstring JNICALL
Java_network_loki_lokinet_Lokinet_1JNI_getABICompiledWith(JNIEnv * env,
jclass)
{
// TODO: fixme
return env->NewUTFString("android");
}
JNIEXPORT jstring JNICALL Java_network_loki_lokinet_Lokinet_1JNI_startLokinet
(JNIEnv * env, jclass jcl)
JNIEXPORT jstring JNICALL Java_network_loki_lokinet_Lokinet_1JNI_startLokinet(
JNIEnv * env, jclass jcl)
{
if(AndroidMain::daemon->Running())
return env->NewUTFString("already running");
@ -56,4 +66,18 @@ JNIEXPORT jstring JNICALL Java_network_loki_lokinet_Lokinet_1JNI_startLokinet
return env->NewUTFString("ok");
}
JNIEXPORT void JNICALL Java_network_loki_lokinet_Lokinet_1JNI_stopLokinet(
JNIEnv * env, jclass)
{
if(AndroidMain::daemon->Running())
{
AndroidMain::daemon->Stop();
}
}
JNIEXPORT void JNICALL
Java_network_loki_lokinet_Lokinet_1JNI_onNetworkStateChanged(JNIEnv*, jclass,
jboolean)
{
}
}
Loading…
Cancel
Save