mirror of
https://github.com/geometer/FBReaderJ.git
synced 2025-10-05 19:42:17 +02:00
JavaClass class + first usage
This commit is contained in:
parent
86a07a0d1b
commit
ab83e1a79a
4 changed files with 58 additions and 9 deletions
|
@ -23,12 +23,28 @@
|
|||
|
||||
static const std::string JNI_LOGGER_CLASS = "JniLog";
|
||||
|
||||
JavaClass::JavaClass(JNIEnv *env, const std::string &name) : myName(name), myEnv(env) {
|
||||
jclass ref = env->FindClass(name.c_str());
|
||||
myClass = (jclass)env->NewGlobalRef(ref);
|
||||
env->DeleteLocalRef(ref);
|
||||
}
|
||||
|
||||
JavaClass::~JavaClass() {
|
||||
myEnv->DeleteGlobalRef(myClass);
|
||||
}
|
||||
|
||||
Method::Method(JNIEnv *env, jclass cls, const std::string &name, const std::string &signature) : myName(name) {
|
||||
//ZLLogger::Instance().registerClass(JNI_LOGGER_CLASS);
|
||||
myEnv = env;
|
||||
myId = env->GetMethodID(cls, name.c_str(), signature.c_str());
|
||||
}
|
||||
|
||||
Method::Method(const JavaClass &cls, const std::string &name, const std::string &signature) : myName(name) {
|
||||
//ZLLogger::Instance().registerClass(JNI_LOGGER_CLASS);
|
||||
myEnv = cls.myEnv;
|
||||
myId = myEnv->GetMethodID(cls.myClass, name.c_str(), signature.c_str());
|
||||
}
|
||||
|
||||
Method::~Method() {
|
||||
}
|
||||
|
||||
|
@ -95,6 +111,9 @@ jboolean BooleanMethod::call(jobject base, ...) {
|
|||
StringMethod::StringMethod(JNIEnv *env, jclass cls, const std::string &name, const std::string &signature) : Method(env, cls, name, signature + "Ljava/lang/String;") {
|
||||
}
|
||||
|
||||
StringMethod::StringMethod(const JavaClass &cls, const std::string &name, const std::string &signature) : Method(cls, name, signature + "Ljava/lang/String;") {
|
||||
}
|
||||
|
||||
jstring StringMethod::call(jobject base, ...) {
|
||||
ZLLogger::Instance().println(JNI_LOGGER_CLASS, "calling StringMethod " + myName);
|
||||
va_list lst;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue