| Index: jni/JniCallbacks.h |
| diff --git a/jni/JniCallbacks.h b/jni/JniCallbacks.h |
| index 7ead721c7ca16a7a304547f51138ee8d811d4680..11165769d1c303cf6de6f4ba0689a40f58677252 100644 |
| --- a/jni/JniCallbacks.h |
| +++ b/jni/JniCallbacks.h |
| @@ -15,68 +15,38 @@ |
| * along with Adblock Plus. If not, see <http://www.gnu.org/licenses/>. |
| */ |
| -#ifndef JNICALLBACKS_H_ |
| -#define JNICALLBACKS_H_ |
| +#ifndef JNICALLBACKS_H |
|
Felix Dahlke
2014/03/28 11:27:18
We also typically use underscores for word separat
|
| +#define JNICALLBACKS_H |
| #include <AdblockPlus.h> |
| #include "Utils.h" |
| #include "JniJsValue.h" |
| -namespace AdblockPlus |
| -{ |
| -namespace Android |
| -{ |
| - |
| class JniCallbackBase |
| { |
| public: |
| - JniCallbackBase(JNIEnv* env, jobject callbackObject) |
| - { |
| - env->GetJavaVM(&m_JavaVM); |
| - m_CallbackObject.reset(new JniGlobalReference<jobject>(env, callbackObject)); |
| - m_ExceptionLoggerClass.reset(new JniGlobalReference<jclass>(env, env->FindClass(PKG("JniExceptionHandler")))); |
| - } |
| + JniCallbackBase(JNIEnv* env, jobject callbackObject); |
| + virtual ~JniCallbackBase(); |
| + void LogException(JNIEnv* env, jthrowable throwable) const; |
| + void CheckAndLogJavaException(JNIEnv* env) const; |
| - virtual ~JniCallbackBase() |
| + JavaVM* GetJavaVM() const |
| { |
| + return javaVM; |
| } |
| - inline JavaVM* GetJavaVM() const |
| + jobject GetCallbackObject() const |
| { |
| - return m_JavaVM; |
| - } |
| - |
| - inline jobject GetCallbackObject() const |
| - { |
| - return m_CallbackObject->get(); |
| - } |
| - |
| - void LogException(JNIEnv* env, jthrowable throwable) const |
| - { |
| - jmethodID logMethod = env->GetStaticMethodID(m_ExceptionLoggerClass->get(), "logException", "(Ljava/lang/Throwable;)V"); |
| - if (logMethod) |
| - { |
| - env->CallStaticVoidMethod(m_ExceptionLoggerClass->get(), logMethod, throwable); |
| - } |
| - } |
| - |
| - void CheckAndLogJavaException(JNIEnv* env) const |
| - { |
| - if (env->ExceptionCheck()) |
| - { |
| - jthrowable throwable = env->ExceptionOccurred(); |
| - env->ExceptionClear(); |
| - LogException(env, throwable); |
| - } |
| + return callbackObject->get(); |
| } |
| private: |
| - JavaVM* m_JavaVM; |
| - JniGlobalReference<jobject>::PTR m_CallbackObject; |
| - JniGlobalReference<jclass>::PTR m_ExceptionLoggerClass; |
| + JavaVM* javaVM; |
| + JniGlobalReference<jobject>::Ptr callbackObject; |
| + JniGlobalReference<jclass>::Ptr exceptionLoggerClass; |
| }; |
| -class JniEventCallback: public JniCallbackBase |
| +class JniEventCallback : public JniCallbackBase |
| { |
| public: |
| JniEventCallback(JNIEnv* env, jobject callbackObject); |
| @@ -84,7 +54,7 @@ public: |
| void Callback(AdblockPlus::JsValueList& params); |
| }; |
| -class JniUpdaterCallback: public JniCallbackBase |
| +class JniUpdaterCallback : public JniCallbackBase |
| { |
| public: |
| JniUpdaterCallback(JNIEnv* env, jobject callbackObject); |
| @@ -92,7 +62,7 @@ public: |
| void Callback(const std::string& arg); |
| }; |
| -class JniFilterChangeCallback: public JniCallbackBase |
| +class JniFilterChangeCallback : public JniCallbackBase |
| { |
| public: |
| JniFilterChangeCallback(JNIEnv* env, jobject callbackObject); |
| @@ -100,30 +70,29 @@ public: |
| void Callback(const std::string& arg, const AdblockPlus::JsValuePtr jsValue); |
| }; |
| -class JniLogSystemCallback: public JniCallbackBase, public AdblockPlus::LogSystem |
| +class JniLogSystemCallback : public JniCallbackBase, public AdblockPlus::LogSystem |
| { |
| public: |
| JniLogSystemCallback(JNIEnv* env, jobject callbackObject); |
| virtual ~JniLogSystemCallback(); |
| void operator()(AdblockPlus::LogSystem::LogLevel logLevel, const std::string& message, const std::string& source); |
| + |
| private: |
| - JniGlobalReference<jclass>::PTR m_LogLevelClass; |
| + JniGlobalReference<jclass>::Ptr logLevelClass; |
| }; |
| -class JniWebRequest: public JniCallbackBase, public AdblockPlus::WebRequest |
| +class JniWebRequest : public JniCallbackBase, public AdblockPlus::WebRequest |
| { |
| public: |
| JniWebRequest(JNIEnv* env, jobject callbackObject); |
| virtual ~JniWebRequest(); |
| AdblockPlus::ServerResponse GET(const std::string& url, const AdblockPlus::HeaderList& requestHeaders) const; |
| + |
| private: |
| jobject NewTuple(JNIEnv* env, const std::string& a, const std::string& b) const; |
| - JniGlobalReference<jclass>::PTR m_TupleClass; |
| - JniGlobalReference<jclass>::PTR m_ServerResponseClass; |
| + JniGlobalReference<jclass>::Ptr tupleClass; |
| + JniGlobalReference<jclass>::Ptr serverResponseClass; |
| }; |
| -} // namespace Android |
| -} // namespace AdblockPlus |
| - |
| -#endif /* JNICALLBACKS_H_ */ |
| +#endif /* JNICALLBACKS_H */ |