#pragma once #include #include #include #include #include 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 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&); // Transfers ownership of the Peer object to the caller jni::Global> peer(); private: jni::Global> javaPeer; std::weak_ptr mailbox; }; } // namespace android } // namespace mbgl