You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
40 lines
1.1 KiB
40 lines
1.1 KiB
//
|
|
// Created by m2049r on 15.04.2017.
|
|
//
|
|
|
|
#ifndef XMRWALLET_WALLET_LIB_H
|
|
#define XMRWALLET_WALLET_LIB_H
|
|
|
|
#include <jni.h>
|
|
/*
|
|
#include <android/log.h>
|
|
|
|
#define LOG_TAG "[NDK]"
|
|
#define LOGI(...) __android_log_print(ANDROID_LOG_INFO,LOG_TAG,__VA_ARGS__)
|
|
#define LOGW(...) __android_log_print(ANDROID_LOG_WARN,LOG_TAG,__VA_ARGS__)
|
|
#define LOGE(...) __android_log_print(ANDROID_LOG_ERROR,LOG_TAG,__VA_ARGS__)
|
|
*/
|
|
|
|
jfieldID getHandleField(JNIEnv *env, jobject obj, const char* fieldName = "handle") {
|
|
jclass c = env->GetObjectClass(obj);
|
|
return env->GetFieldID(c, fieldName, "J"); // of type long
|
|
}
|
|
|
|
template <typename T>
|
|
T *getHandle(JNIEnv *env, jobject obj, const char* fieldName = "handle") {
|
|
jlong handle = env->GetLongField(obj, getHandleField(env, obj, fieldName));
|
|
return reinterpret_cast<T *>(handle);
|
|
}
|
|
|
|
void setHandleFromLong(JNIEnv *env, jobject obj, jlong handle) {
|
|
env->SetLongField(obj, getHandleField(env, obj), handle);
|
|
}
|
|
|
|
template <typename T>
|
|
void setHandle(JNIEnv *env, jobject obj, T *t) {
|
|
jlong handle = reinterpret_cast<jlong>(t);
|
|
setHandleFromLong(env, obj, handle);
|
|
}
|
|
|
|
#endif //XMRWALLET_WALLET_LIB_H
|