Ditto  3.0.4
AndroidSupport.hpp
1 #ifdef __ANDROID__
2 
3 #include <jni.h>
4 
5 struct ditto_android_jni_session {
6  JNIEnv *env;
7  bool attached;
8 };
9 
10 void ditto_android_init(JNIEnv *env, jobject context);
11 bool ditto_android_is_inited();
12 void ditto_android_shutdown();
13 
14 jobject ditto_android_get_context();
15 
16 struct ditto_android_jni_session ditto_android_get_session();
17 void ditto_android_end_session(struct ditto_android_jni_session session);
18 
19 template <typename F>
20 auto with_ditto_android_session(F &&f)
21  -> decltype(f(ditto_android_get_session())) {
22  auto session = ditto_android_get_session();
23  auto ret = f(session);
24  ditto_android_end_session(session);
25  return ret;
26 }
27 
28 #endif /* __ANDROID__ */