#pragma once #include #include #include #include #include #include "jni/generic_global_ref_deleter.hpp" namespace mbgl { namespace android { /** * The MapRendererRunnable is a peer class that encapsulates * a scheduled mailbox in a Java Runnable so it can be * scheduled on the map renderer thread. * */ class MapRendererRunnable { public: static constexpr auto Name() { return "com/mapbox/mapboxsdk/maps/renderer/MapRendererRunnable"; }; static jni::Class javaClass; static void registerNative(jni::JNIEnv&); MapRendererRunnable(jni::JNIEnv&, std::weak_ptr); // Only for jni registration, unused MapRendererRunnable(jni::JNIEnv&) { assert(false); } ~MapRendererRunnable(); void run(jni::JNIEnv&); jni::Object getPeer(); private: GenericUniqueWeakObject javaPeer; std::weak_ptr mailbox; }; } // namespace android } // namespace mbgl