mirror of https://github.com/PurpleI2P/i2pd.git
unlnown542a
7 years ago
6 changed files with 351 additions and 227 deletions
@ -1,60 +1,87 @@ |
|||||||
#ifndef DAEMON_H__ |
#ifndef DAEMON_ANDROID_H |
||||||
#define DAEMON_H__ |
#define DAEMON_ANDROID_H |
||||||
|
|
||||||
#include <memory> |
|
||||||
#include <string> |
#include <string> |
||||||
|
|
||||||
namespace i2p |
namespace i2p |
||||||
{ |
{ |
||||||
namespace util |
namespace android |
||||||
{ |
{ |
||||||
class Daemon_Singleton_Private; |
class DaemonAndroidImpl |
||||||
class Daemon_Singleton |
|
||||||
{ |
{ |
||||||
public: |
public: |
||||||
virtual bool init(int argc, char* argv[]); |
|
||||||
virtual bool start(); |
|
||||||
virtual bool stop(); |
|
||||||
virtual void run () {}; |
|
||||||
|
|
||||||
bool isDaemon; |
DaemonAndroidImpl (); |
||||||
bool running; |
~DaemonAndroidImpl (); |
||||||
|
|
||||||
protected: |
//typedef void (*runningChangedCallback)();
|
||||||
Daemon_Singleton(); |
|
||||||
virtual ~Daemon_Singleton(); |
|
||||||
|
|
||||||
bool IsService () const; |
/**
|
||||||
|
* @return success |
||||||
// d-pointer for httpServer, httpProxy, etc.
|
*/ |
||||||
class Daemon_Singleton_Private; |
bool init(int argc, char* argv[]); |
||||||
Daemon_Singleton_Private &d; |
void start(); |
||||||
|
void stop(); |
||||||
|
void restart(); |
||||||
|
//void setRunningCallback(runningChangedCallback cb);
|
||||||
|
//bool isRunning();
|
||||||
|
private: |
||||||
|
//void setRunning(bool running);
|
||||||
|
private: |
||||||
|
//QMutex* mutex;
|
||||||
|
//bool m_IsRunning;
|
||||||
|
//runningChangedCallback m_RunningChangedCallback;
|
||||||
}; |
}; |
||||||
|
|
||||||
#if defined(ANDROID) |
/**
|
||||||
#define Daemon i2p::util::DaemonAndroid::Instance() |
* returns "ok" if daemon init failed |
||||||
class DaemonAndroid : public Daemon_Singleton |
* returns errinfo if daemon initialized and started okay |
||||||
|
*/ |
||||||
|
std::string start(); |
||||||
|
|
||||||
|
// stops the daemon
|
||||||
|
void stop(); |
||||||
|
|
||||||
|
/*
|
||||||
|
class Worker : public QObject |
||||||
{ |
{ |
||||||
|
Q_OBJECT |
||||||
public: |
public: |
||||||
static DaemonAndroid& Instance() |
|
||||||
{ |
|
||||||
static DaemonAndroid instance; |
|
||||||
return instance; |
|
||||||
} |
|
||||||
|
|
||||||
bool start(); |
Worker (DaemonAndroidImpl& daemon); |
||||||
bool stop(); |
|
||||||
void run (); |
|
||||||
|
|
||||||
private: |
private: |
||||||
std::string pidfile; |
|
||||||
int pidFH; |
|
||||||
|
|
||||||
|
DaemonAndroidImpl& m_Daemon; |
||||||
|
|
||||||
|
public slots: |
||||||
|
void startDaemon(); |
||||||
|
void restartDaemon(); |
||||||
|
void stopDaemon(); |
||||||
|
|
||||||
|
signals: |
||||||
|
void resultReady(); |
||||||
|
}; |
||||||
|
|
||||||
|
class Controller : public QObject |
||||||
|
{ |
||||||
|
Q_OBJECT |
||||||
|
QThread workerThread; |
||||||
public: |
public: |
||||||
int gracefulShutdownInterval; // in seconds
|
Controller(DaemonAndroidImpl& daemon); |
||||||
|
~Controller(); |
||||||
|
private: |
||||||
|
DaemonAndroidImpl& m_Daemon; |
||||||
|
|
||||||
|
public slots: |
||||||
|
void handleResults(){} |
||||||
|
signals: |
||||||
|
void startDaemon(); |
||||||
|
void stopDaemon(); |
||||||
|
void restartDaemon(); |
||||||
}; |
}; |
||||||
#endif |
*/ |
||||||
} |
} |
||||||
} |
} |
||||||
|
|
||||||
#endif // DAEMON_H__
|
#endif // DAEMON_ANDROID_H
|
||||||
|
@ -0,0 +1,66 @@ |
|||||||
|
|
||||||
|
//#include <string.h>
|
||||||
|
#include <jni.h> |
||||||
|
#include "org_purplei2p_i2pd_I2PD_JNI.h" |
||||||
|
#include "DaemonAndroid.h" |
||||||
|
#include "RouterContext.h" |
||||||
|
#include "Transports.h" |
||||||
|
|
||||||
|
JNIEXPORT jstring JNICALL Java_org_purplei2p_i2pd_I2PD_1JNI_getABICompiledWith |
||||||
|
(JNIEnv * env, jclass clazz) { |
||||||
|
#if defined(__arm__) |
||||||
|
#if defined(__ARM_ARCH_7A__) |
||||||
|
#if defined(__ARM_NEON__) |
||||||
|
#if defined(__ARM_PCS_VFP) |
||||||
|
#define ABI "armeabi-v7a/NEON (hard-float)" |
||||||
|
#else |
||||||
|
#define ABI "armeabi-v7a/NEON" |
||||||
|
#endif |
||||||
|
#else |
||||||
|
#if defined(__ARM_PCS_VFP) |
||||||
|
#define ABI "armeabi-v7a (hard-float)" |
||||||
|
#else |
||||||
|
#define ABI "armeabi-v7a" |
||||||
|
#endif |
||||||
|
#endif |
||||||
|
#else |
||||||
|
#define ABI "armeabi" |
||||||
|
#endif |
||||||
|
#elif defined(__i386__) |
||||||
|
#define ABI "x86" |
||||||
|
#elif defined(__x86_64__) |
||||||
|
#define ABI "x86_64" |
||||||
|
#elif defined(__mips64) /* mips64el-* toolchain defines __mips__ too */ |
||||||
|
#define ABI "mips64" |
||||||
|
#elif defined(__mips__) |
||||||
|
#define ABI "mips" |
||||||
|
#elif defined(__aarch64__) |
||||||
|
#define ABI "arm64-v8a" |
||||||
|
#else |
||||||
|
#define ABI "unknown" |
||||||
|
#endif |
||||||
|
|
||||||
|
return env->NewStringUTF(ABI); |
||||||
|
} |
||||||
|
|
||||||
|
JNIEXPORT jstring JNICALL Java_org_purplei2p_i2pd_I2PD_1JNI_startDaemon |
||||||
|
(JNIEnv * env, jclass clazz) { |
||||||
|
return env->NewStringUTF(i2p::android::start().c_str()); |
||||||
|
} |
||||||
|
|
||||||
|
JNIEXPORT void JNICALL Java_org_purplei2p_i2pd_I2PD_1JNI_stopDaemon |
||||||
|
(JNIEnv * env, jclass clazz) { |
||||||
|
i2p::android::stop(); |
||||||
|
} |
||||||
|
|
||||||
|
JNIEXPORT void JNICALL Java_org_purplei2p_i2pd_I2PD_1JNI_stopAcceptingTunnels |
||||||
|
(JNIEnv * env, jclass clazz) { |
||||||
|
i2p::context.SetAcceptsTunnels (false); |
||||||
|
} |
||||||
|
|
||||||
|
JNIEXPORT void JNICALL Java_org_purplei2p_i2pd_I2PD_1JNI_onNetworkStateChanged |
||||||
|
(JNIEnv * env, jclass clazz, jboolean isConnected) |
||||||
|
{ |
||||||
|
bool isConnectedBool = (bool) isConnected; |
||||||
|
i2p::transport::transports.SetOnline (isConnectedBool); |
||||||
|
} |
@ -0,0 +1,33 @@ |
|||||||
|
/* DO NOT EDIT THIS FILE - it is machine generated */ |
||||||
|
#include <jni.h> |
||||||
|
/* Header for class org_purplei2p_i2pd_I2PD_JNI */ |
||||||
|
|
||||||
|
#ifndef _Included_org_purplei2p_i2pd_I2PD_JNI |
||||||
|
#define _Included_org_purplei2p_i2pd_I2PD_JNI |
||||||
|
#ifdef __cplusplus |
||||||
|
extern "C" { |
||||||
|
#endif |
||||||
|
/*
|
||||||
|
* Class: org_purplei2p_i2pd_I2PD_JNI |
||||||
|
* Method: stringFromJNI |
||||||
|
* Signature: ()Ljava/lang/String; |
||||||
|
*/ |
||||||
|
JNIEXPORT jstring JNICALL Java_org_purplei2p_i2pd_I2PD_1JNI_getABICompiledWith |
||||||
|
(JNIEnv *, jclass); |
||||||
|
|
||||||
|
JNIEXPORT jstring JNICALL Java_org_purplei2p_i2pd_I2PD_1JNI_startDaemon |
||||||
|
(JNIEnv *, jclass); |
||||||
|
|
||||||
|
JNIEXPORT void JNICALL Java_org_purplei2p_i2pd_I2PD_1JNI_stopDaemon |
||||||
|
(JNIEnv *, jclass); |
||||||
|
|
||||||
|
JNIEXPORT void JNICALL Java_org_purplei2p_i2pd_I2PD_1JNI_stopAcceptingTunnels |
||||||
|
(JNIEnv *, jclass); |
||||||
|
|
||||||
|
JNIEXPORT void JNICALL Java_org_purplei2p_i2pd_I2PD_1JNI_onNetworkStateChanged |
||||||
|
(JNIEnv * env, jclass clazz, jboolean isConnected); |
||||||
|
|
||||||
|
#ifdef __cplusplus |
||||||
|
} |
||||||
|
#endif |
||||||
|
#endif |
Loading…
Reference in new issue