| Index: jni/JniCallbacks.h |
| diff --git a/jni/JniCallbacks.h b/jni/JniCallbacks.h |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..38e520bc53732fe3ca0bb68a093426be5f0556f6 |
| --- /dev/null |
| +++ b/jni/JniCallbacks.h |
| @@ -0,0 +1,93 @@ |
| +/* |
| + * This file is part of Adblock Plus <http://adblockplus.org/>, |
| + * Copyright (C) 2006-2014 Eyeo GmbH |
| + * |
| + * Adblock Plus is free software: you can redistribute it and/or modify |
| + * it under the terms of the GNU General Public License version 3 as |
| + * published by the Free Software Foundation. |
| + * |
| + * Adblock Plus is distributed in the hope that it will be useful, |
| + * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| + * GNU General Public License for more details. |
| + * |
| + * You should have received a copy of the GNU General Public License |
| + * along with Adblock Plus. If not, see <http://www.gnu.org/licenses/>. |
| + */ |
| + |
| +#ifndef JNICALLBACKS_H |
| +#define JNICALLBACKS_H |
| + |
| +#include <AdblockPlus.h> |
| +#include "Utils.h" |
| +#include "JniJsValue.h" |
| + |
| +class JniCallbackBase |
| +{ |
| +public: |
| + JniCallbackBase(JNIEnv* env, jobject callbackObject); |
| + virtual ~JniCallbackBase(); |
| + void LogException(JNIEnv* env, jthrowable throwable) const; |
| + void CheckAndLogJavaException(JNIEnv* env) const; |
| + |
| + JavaVM* GetJavaVM() const |
| + { |
| + return javaVM; |
| + } |
| + |
| + jobject GetCallbackObject() const |
| + { |
| + return callbackObject->Get(); |
| + } |
| + |
| +private: |
| + JavaVM* javaVM; |
| + JniGlobalReference<jobject>::Ptr callbackObject; |
| + JniGlobalReference<jclass>::Ptr exceptionLoggerClass; |
| +}; |
| + |
| +class JniEventCallback : public JniCallbackBase |
| +{ |
| +public: |
| + JniEventCallback(JNIEnv* env, jobject callbackObject); |
| + void Callback(AdblockPlus::JsValueList& params); |
| +}; |
| + |
| +class JniUpdaterCallback : public JniCallbackBase |
| +{ |
| +public: |
| + JniUpdaterCallback(JNIEnv* env, jobject callbackObject); |
| + void Callback(const std::string& arg); |
| +}; |
| + |
| +class JniFilterChangeCallback : public JniCallbackBase |
| +{ |
| +public: |
| + JniFilterChangeCallback(JNIEnv* env, jobject callbackObject); |
| + void Callback(const std::string& arg, const AdblockPlus::JsValuePtr jsValue); |
| +}; |
| + |
| +class JniLogSystemCallback : public JniCallbackBase, public AdblockPlus::LogSystem |
| +{ |
| +public: |
| + JniLogSystemCallback(JNIEnv* env, jobject callbackObject); |
| + void operator()(AdblockPlus::LogSystem::LogLevel logLevel, const std::string& message, const std::string& source); |
| + |
| +private: |
| + JniGlobalReference<jclass>::Ptr logLevelClass; |
| +}; |
| + |
| +class JniWebRequest : public JniCallbackBase, public AdblockPlus::WebRequest |
| +{ |
| +public: |
| + JniWebRequest(JNIEnv* env, jobject callbackObject); |
| + 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 tupleClass; |
| + JniGlobalReference<jclass>::Ptr serverResponseClass; |
| +}; |
| + |
| +#endif /* JNICALLBACKS_H */ |