From e2628f93b55841f0ae509ca2066e0356c92fe896 Mon Sep 17 00:00:00 2001 From: Pieter De Baets Date: Fri, 23 Jun 2017 16:49:55 -0700 Subject: [PATCH] Rename Executor to JSExecutor Summary: * Cleanup some header files so we use more forward declarations * Rename Executor to JSExecutor.h * Move some typedefs to more appropriate locations Reviewed By: mhorowitz Differential Revision: D5301913 fbshipit-source-id: e75154797eb3f531d2f42a5e95409f4062b85f91 --- React/CxxBridge/RCTObjcExecutor.h | 2 +- React/CxxBridge/RCTObjcExecutor.mm | 5 ++- React/React.xcodeproj/project.pbxproj | 20 +++++----- .../jni/react/jni/CatalystInstanceImpl.cpp | 16 ++++---- .../src/main/jni/react/jni/JSLoader.cpp | 8 ++-- .../src/main/jni/react/jni/JSLoader.h | 2 +- .../jni/react/jni/JavaScriptExecutorHolder.h | 3 +- .../src/main/jni/react/jni/MethodInvoker.h | 2 +- .../src/main/jni/react/jni/OnLoad.cpp | 4 +- ReactAndroid/src/main/jni/react/jni/OnLoad.h | 3 +- .../src/main/jni/react/jni/ProxyExecutor.cpp | 10 ++--- .../src/main/jni/react/jni/ProxyExecutor.h | 2 +- ReactCommon/cxxreact/BUCK | 38 +++++++++---------- ReactCommon/cxxreact/CxxModule.h | 21 +++++----- ReactCommon/cxxreact/CxxNativeModule.cpp | 1 + ReactCommon/cxxreact/CxxNativeModule.h | 1 + ReactCommon/cxxreact/Instance.cpp | 6 ++- ReactCommon/cxxreact/Instance.h | 18 ++++++--- ReactCommon/cxxreact/JSCExecutor.cpp | 9 +++-- ReactCommon/cxxreact/JSCExecutor.h | 2 +- ReactCommon/cxxreact/JSCUtils.h | 3 +- .../cxxreact/{Executor.h => JSExecutor.h} | 19 +--------- ReactCommon/cxxreact/JSIndexedRAMBundle.cpp | 2 + ReactCommon/cxxreact/JSIndexedRAMBundle.h | 5 +-- ReactCommon/cxxreact/MethodCall.h | 4 +- ReactCommon/cxxreact/ModuleRegistry.h | 4 +- ReactCommon/cxxreact/NativeModule.h | 6 +-- ReactCommon/cxxreact/NativeToJsBridge.cpp | 16 ++++---- ReactCommon/cxxreact/NativeToJsBridge.h | 16 +++----- ReactCommon/cxxreact/Platform.h | 2 +- ReactCommon/cxxreact/tests/jsbigstring.cpp | 3 +- 31 files changed, 124 insertions(+), 129 deletions(-) rename ReactCommon/cxxreact/{Executor.h => JSExecutor.h} (86%) diff --git a/React/CxxBridge/RCTObjcExecutor.h b/React/CxxBridge/RCTObjcExecutor.h index e2ee2148f..89cad3cbb 100644 --- a/React/CxxBridge/RCTObjcExecutor.h +++ b/React/CxxBridge/RCTObjcExecutor.h @@ -12,7 +12,7 @@ #import #import -#include +#import namespace facebook { namespace react { diff --git a/React/CxxBridge/RCTObjcExecutor.mm b/React/CxxBridge/RCTObjcExecutor.mm index 0a90fb217..0bf158751 100644 --- a/React/CxxBridge/RCTObjcExecutor.mm +++ b/React/CxxBridge/RCTObjcExecutor.mm @@ -15,7 +15,8 @@ #import #import #import -#import +#import +#import #import #import #import @@ -91,7 +92,7 @@ public: } void setJSModulesUnbundle(std::unique_ptr) override { - RCTLogWarn(@"Unbundle is not supported in RCTObjcExecutor"); + RCTAssert(NO, @"Unbundle is not supported in RCTObjcExecutor"); } void callFunction(const std::string &module, const std::string &method, diff --git a/React/React.xcodeproj/project.pbxproj b/React/React.xcodeproj/project.pbxproj index b6f548d03..6e3d0a11d 100644 --- a/React/React.xcodeproj/project.pbxproj +++ b/React/React.xcodeproj/project.pbxproj @@ -220,7 +220,7 @@ 19F61C071E8495FF00571D81 /* Value.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D92B10D1E0369AD0018521A /* Value.h */; }; 27595AA41E575C7800CCE2B1 /* CxxModule.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D92B0A71E03699D0018521A /* CxxModule.h */; }; 27595AA51E575C7800CCE2B1 /* CxxNativeModule.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D92B0A91E03699D0018521A /* CxxNativeModule.h */; }; - 27595AA61E575C7800CCE2B1 /* Executor.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D92B0AB1E03699D0018521A /* Executor.h */; }; + 27595AA61E575C7800CCE2B1 /* JSExecutor.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D92B0AB1E03699D0018521A /* JSExecutor.h */; }; 27595AA91E575C7800CCE2B1 /* Instance.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D92B0AF1E03699D0018521A /* Instance.h */; }; 27595AAA1E575C7800CCE2B1 /* JsArgumentHelpers-inl.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D92B0B01E03699D0018521A /* JsArgumentHelpers-inl.h */; }; 27595AAB1E575C7800CCE2B1 /* JsArgumentHelpers.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D92B0B11E03699D0018521A /* JsArgumentHelpers.h */; }; @@ -243,7 +243,7 @@ 27595ABD1E575C7800CCE2B1 /* SystraceSection.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D92B0D51E03699D0018521A /* SystraceSection.h */; }; 27595ABF1E575C7800CCE2B1 /* CxxModule.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D92B0A71E03699D0018521A /* CxxModule.h */; }; 27595AC01E575C7800CCE2B1 /* CxxNativeModule.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D92B0A91E03699D0018521A /* CxxNativeModule.h */; }; - 27595AC11E575C7800CCE2B1 /* Executor.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D92B0AB1E03699D0018521A /* Executor.h */; }; + 27595AC11E575C7800CCE2B1 /* JSExecutor.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D92B0AB1E03699D0018521A /* JSExecutor.h */; }; 27595AC41E575C7800CCE2B1 /* Instance.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D92B0AF1E03699D0018521A /* Instance.h */; }; 27595AC51E575C7800CCE2B1 /* JsArgumentHelpers-inl.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D92B0B01E03699D0018521A /* JsArgumentHelpers-inl.h */; }; 27595AC61E575C7800CCE2B1 /* JsArgumentHelpers.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D92B0B11E03699D0018521A /* JsArgumentHelpers.h */; }; @@ -794,7 +794,7 @@ 3DA9819E1E5B0DBB004F2374 /* NSDataBigString.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D7454B31E54786200E74ADD /* NSDataBigString.h */; }; 3DA981A01E5B0E34004F2374 /* CxxModule.h in Copy Headers */ = {isa = PBXBuildFile; fileRef = 3D92B0A71E03699D0018521A /* CxxModule.h */; }; 3DA981A11E5B0E34004F2374 /* CxxNativeModule.h in Copy Headers */ = {isa = PBXBuildFile; fileRef = 3D92B0A91E03699D0018521A /* CxxNativeModule.h */; }; - 3DA981A21E5B0E34004F2374 /* Executor.h in Copy Headers */ = {isa = PBXBuildFile; fileRef = 3D92B0AB1E03699D0018521A /* Executor.h */; }; + 3DA981A21E5B0E34004F2374 /* JSExecutor.h in Copy Headers */ = {isa = PBXBuildFile; fileRef = 3D92B0AB1E03699D0018521A /* JSExecutor.h */; }; 3DA981A51E5B0E34004F2374 /* Instance.h in Copy Headers */ = {isa = PBXBuildFile; fileRef = 3D92B0AF1E03699D0018521A /* Instance.h */; }; 3DA981A61E5B0E34004F2374 /* JsArgumentHelpers-inl.h in Copy Headers */ = {isa = PBXBuildFile; fileRef = 3D92B0B01E03699D0018521A /* JsArgumentHelpers-inl.h */; }; 3DA981A71E5B0E34004F2374 /* JsArgumentHelpers.h in Copy Headers */ = {isa = PBXBuildFile; fileRef = 3D92B0B11E03699D0018521A /* JsArgumentHelpers.h */; }; @@ -933,7 +933,7 @@ 3DA982391E5B0F8A004F2374 /* UIView+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 83F15A171B7CC46900F10295 /* UIView+Private.h */; }; 3DA9823B1E5B1053004F2374 /* CxxModule.h in Copy Headers */ = {isa = PBXBuildFile; fileRef = 3D92B0A71E03699D0018521A /* CxxModule.h */; }; 3DA9823C1E5B1053004F2374 /* CxxNativeModule.h in Copy Headers */ = {isa = PBXBuildFile; fileRef = 3D92B0A91E03699D0018521A /* CxxNativeModule.h */; }; - 3DA9823D1E5B1053004F2374 /* Executor.h in Copy Headers */ = {isa = PBXBuildFile; fileRef = 3D92B0AB1E03699D0018521A /* Executor.h */; }; + 3DA9823D1E5B1053004F2374 /* JSExecutor.h in Copy Headers */ = {isa = PBXBuildFile; fileRef = 3D92B0AB1E03699D0018521A /* JSExecutor.h */; }; 3DA982401E5B1053004F2374 /* Instance.h in Copy Headers */ = {isa = PBXBuildFile; fileRef = 3D92B0AF1E03699D0018521A /* Instance.h */; }; 3DA982411E5B1053004F2374 /* JsArgumentHelpers-inl.h in Copy Headers */ = {isa = PBXBuildFile; fileRef = 3D92B0B01E03699D0018521A /* JsArgumentHelpers-inl.h */; }; 3DA982421E5B1053004F2374 /* JsArgumentHelpers.h in Copy Headers */ = {isa = PBXBuildFile; fileRef = 3D92B0B11E03699D0018521A /* JsArgumentHelpers.h */; }; @@ -1317,7 +1317,7 @@ files = ( 3DA9823B1E5B1053004F2374 /* CxxModule.h in Copy Headers */, 3DA9823C1E5B1053004F2374 /* CxxNativeModule.h in Copy Headers */, - 3DA9823D1E5B1053004F2374 /* Executor.h in Copy Headers */, + 3DA9823D1E5B1053004F2374 /* JSExecutor.h in Copy Headers */, 3DA982401E5B1053004F2374 /* Instance.h in Copy Headers */, 3DA982411E5B1053004F2374 /* JsArgumentHelpers-inl.h in Copy Headers */, 3DA982421E5B1053004F2374 /* JsArgumentHelpers.h in Copy Headers */, @@ -1533,7 +1533,7 @@ files = ( 3DA981A01E5B0E34004F2374 /* CxxModule.h in Copy Headers */, 3DA981A11E5B0E34004F2374 /* CxxNativeModule.h in Copy Headers */, - 3DA981A21E5B0E34004F2374 /* Executor.h in Copy Headers */, + 3DA981A21E5B0E34004F2374 /* JSExecutor.h in Copy Headers */, 3DA981A51E5B0E34004F2374 /* Instance.h in Copy Headers */, 3DA981A61E5B0E34004F2374 /* JsArgumentHelpers-inl.h in Copy Headers */, 3DA981A71E5B0E34004F2374 /* JsArgumentHelpers.h in Copy Headers */, @@ -1862,7 +1862,7 @@ 3D92B0A71E03699D0018521A /* CxxModule.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CxxModule.h; sourceTree = ""; }; 3D92B0A81E03699D0018521A /* CxxNativeModule.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CxxNativeModule.cpp; sourceTree = ""; }; 3D92B0A91E03699D0018521A /* CxxNativeModule.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CxxNativeModule.h; sourceTree = ""; }; - 3D92B0AB1E03699D0018521A /* Executor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Executor.h; sourceTree = ""; }; + 3D92B0AB1E03699D0018521A /* JSExecutor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSExecutor.h; sourceTree = ""; }; 3D92B0AE1E03699D0018521A /* Instance.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Instance.cpp; sourceTree = ""; }; 3D92B0AF1E03699D0018521A /* Instance.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Instance.h; sourceTree = ""; }; 3D92B0B01E03699D0018521A /* JsArgumentHelpers-inl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "JsArgumentHelpers-inl.h"; sourceTree = ""; }; @@ -2593,7 +2593,7 @@ 3D92B0A71E03699D0018521A /* CxxModule.h */, 3D92B0A81E03699D0018521A /* CxxNativeModule.cpp */, 3D92B0A91E03699D0018521A /* CxxNativeModule.h */, - 3D92B0AB1E03699D0018521A /* Executor.h */, + 3D92B0AB1E03699D0018521A /* JSExecutor.h */, 3D92B0AE1E03699D0018521A /* Instance.cpp */, 3D92B0AF1E03699D0018521A /* Instance.h */, 3D92B0B01E03699D0018521A /* JsArgumentHelpers-inl.h */, @@ -2852,7 +2852,7 @@ 27595AD01E575C7800CCE2B1 /* JSIndexedRAMBundle.h in Headers */, 27595AD31E575C7800CCE2B1 /* ModuleRegistry.h in Headers */, 27595ACC1E575C7800CCE2B1 /* JSCPerfStats.h in Headers */, - 27595AC11E575C7800CCE2B1 /* Executor.h in Headers */, + 27595AC11E575C7800CCE2B1 /* JSExecutor.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -2941,7 +2941,7 @@ 27595AB51E575C7800CCE2B1 /* JSIndexedRAMBundle.h in Headers */, 27595AB81E575C7800CCE2B1 /* ModuleRegistry.h in Headers */, 27595AB11E575C7800CCE2B1 /* JSCPerfStats.h in Headers */, - 27595AA61E575C7800CCE2B1 /* Executor.h in Headers */, + 27595AA61E575C7800CCE2B1 /* JSExecutor.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.cpp b/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.cpp index e10662f83..994975f2d 100644 --- a/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.cpp +++ b/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.cpp @@ -5,21 +5,19 @@ #include #include -#include -#include - -#include - -#include -#include - +#include #include +#include #include #include #include #include #include -#include +#include +#include +#include +#include +#include #include "CxxModuleWrapper.h" #include "JavaScriptExecutorHolder.h" diff --git a/ReactAndroid/src/main/jni/react/jni/JSLoader.cpp b/ReactAndroid/src/main/jni/react/jni/JSLoader.cpp index c8c31d5fd..187f96fb7 100644 --- a/ReactAndroid/src/main/jni/react/jni/JSLoader.cpp +++ b/ReactAndroid/src/main/jni/react/jni/JSLoader.cpp @@ -2,15 +2,17 @@ #include "JSLoader.h" +#include +#include +#include +#include #include #include -#include -#include #include #include #include #include -#include + #ifdef WITH_FBSYSTRACE #include using fbsystrace::FbSystraceSection; diff --git a/ReactAndroid/src/main/jni/react/jni/JSLoader.h b/ReactAndroid/src/main/jni/react/jni/JSLoader.h index 3c3e15720..d6ea1fbe6 100644 --- a/ReactAndroid/src/main/jni/react/jni/JSLoader.h +++ b/ReactAndroid/src/main/jni/react/jni/JSLoader.h @@ -5,7 +5,7 @@ #include #include -#include +#include #include namespace facebook { diff --git a/ReactAndroid/src/main/jni/react/jni/JavaScriptExecutorHolder.h b/ReactAndroid/src/main/jni/react/jni/JavaScriptExecutorHolder.h index 5baf7153d..b23cc9e37 100644 --- a/ReactAndroid/src/main/jni/react/jni/JavaScriptExecutorHolder.h +++ b/ReactAndroid/src/main/jni/react/jni/JavaScriptExecutorHolder.h @@ -2,10 +2,9 @@ #include +#include #include -#include - namespace facebook { namespace react { diff --git a/ReactAndroid/src/main/jni/react/jni/MethodInvoker.h b/ReactAndroid/src/main/jni/react/jni/MethodInvoker.h index b9aceb6ba..288c0b875 100644 --- a/ReactAndroid/src/main/jni/react/jni/MethodInvoker.h +++ b/ReactAndroid/src/main/jni/react/jni/MethodInvoker.h @@ -4,9 +4,9 @@ #include +#include #include #include -#include namespace facebook { namespace react { diff --git a/ReactAndroid/src/main/jni/react/jni/OnLoad.cpp b/ReactAndroid/src/main/jni/react/jni/OnLoad.cpp index 11e05d64c..81bc89883 100644 --- a/ReactAndroid/src/main/jni/react/jni/OnLoad.cpp +++ b/ReactAndroid/src/main/jni/react/jni/OnLoad.cpp @@ -2,10 +2,10 @@ #include -#include +#include +#include #include #include -#include #include #include #include diff --git a/ReactAndroid/src/main/jni/react/jni/OnLoad.h b/ReactAndroid/src/main/jni/react/jni/OnLoad.h index 5cd3c1749..9da83c447 100644 --- a/ReactAndroid/src/main/jni/react/jni/OnLoad.h +++ b/ReactAndroid/src/main/jni/react/jni/OnLoad.h @@ -3,12 +3,11 @@ #pragma once #include -#include -#include namespace facebook { namespace react { jmethodID getLogMarkerMethod(); + } // namespace react } // namespace facebook diff --git a/ReactAndroid/src/main/jni/react/jni/ProxyExecutor.cpp b/ReactAndroid/src/main/jni/react/jni/ProxyExecutor.cpp index c82a2fbc8..b0780f6d3 100644 --- a/ReactAndroid/src/main/jni/react/jni/ProxyExecutor.cpp +++ b/ReactAndroid/src/main/jni/react/jni/ProxyExecutor.cpp @@ -2,15 +2,15 @@ #include "ProxyExecutor.h" +#include +#include +#include #include #include -#include -#include #include #include - -#include -#include +#include +#include namespace facebook { namespace react { diff --git a/ReactAndroid/src/main/jni/react/jni/ProxyExecutor.h b/ReactAndroid/src/main/jni/react/jni/ProxyExecutor.h index 02328dd7b..8603f8fec 100644 --- a/ReactAndroid/src/main/jni/react/jni/ProxyExecutor.h +++ b/ReactAndroid/src/main/jni/react/jni/ProxyExecutor.h @@ -2,7 +2,7 @@ #pragma once -#include +#include #include #include #include diff --git a/ReactCommon/cxxreact/BUCK b/ReactCommon/cxxreact/BUCK index a59063975..72713c826 100644 --- a/ReactCommon/cxxreact/BUCK +++ b/ReactCommon/cxxreact/BUCK @@ -11,7 +11,7 @@ if THIS_IS_FBOBJC: rn_xplat_cxx_library( name = "module", - compiler_flags = CXX_LIBRARY_COMPILER_FLAGS, + header_namespace = "", exported_headers = subdir_glob( [ ("", "CxxModule.h"), @@ -20,8 +20,8 @@ rn_xplat_cxx_library( ], prefix = "cxxreact", ), + compiler_flags = CXX_LIBRARY_COMPILER_FLAGS, force_static = True, - header_namespace = "", visibility = [ "PUBLIC", ], @@ -36,16 +36,16 @@ rn_xplat_cxx_library( srcs = [ "JSBigString.cpp", ], - compiler_flags = CXX_LIBRARY_COMPILER_FLAGS + [ - "-fexceptions", - "-frtti", - ], + header_namespace = "", exported_headers = subdir_glob( [("", "JSBigString.h")], prefix = "cxxreact", ), + compiler_flags = CXX_LIBRARY_COMPILER_FLAGS + [ + "-fexceptions", + "-frtti", + ], force_static = True, - header_namespace = "", visibility = [ "PUBLIC", ], @@ -58,12 +58,12 @@ rn_xplat_cxx_library( rn_xplat_cxx_library( name = "samplemodule", srcs = ["SampleCxxModule.cpp"], + header_namespace = "", + exported_headers = ["SampleCxxModule.h"], compiler_flags = CXX_LIBRARY_COMPILER_FLAGS + [ "-fno-omit-frame-pointer", "-fexceptions", ], - exported_headers = ["SampleCxxModule.h"], - header_namespace = "", soname = "libxplat_react_module_samplemodule.so", visibility = [ "PUBLIC", @@ -77,9 +77,9 @@ rn_xplat_cxx_library( CXXREACT_PUBLIC_HEADERS = [ "CxxNativeModule.h", - "Executor.h", "Instance.h", "JSBundleType.h", + "JSExecutor.h", "JSCExecutor.h", "JSCNativeModules.h", "JSIndexedRAMBundle.h", @@ -104,10 +104,11 @@ rn_xplat_cxx_library( "SampleCxxModule.cpp", ], ), - compiler_flags = CXX_LIBRARY_COMPILER_FLAGS + [ - "-fexceptions", - "-frtti", - ], + headers = glob( + ["*.h"], + excludes = CXXREACT_PUBLIC_HEADERS, + ), + header_namespace = "", exported_headers = dict([ ( "cxxreact/%s" % header, @@ -115,6 +116,10 @@ rn_xplat_cxx_library( ) for header in CXXREACT_PUBLIC_HEADERS ]), + compiler_flags = CXX_LIBRARY_COMPILER_FLAGS + [ + "-fexceptions", + "-frtti", + ], fbandroid_preprocessor_flags = [ "-DWITH_JSC_EXTRA_TRACING=1", "-DWITH_JSC_MEMORY_PRESSURE=1", @@ -144,11 +149,6 @@ rn_xplat_cxx_library( fbobjc_preprocessor_flags = DEBUG_PREPROCESSOR_FLAGS, fbobjc_visibility = ["PUBLIC"], force_static = True, - header_namespace = "", - headers = glob( - ["*.h"], - excludes = CXXREACT_PUBLIC_HEADERS, - ), preprocessor_flags = [ "-DLOG_TAG=\"ReactNative\"", "-DWITH_FBSYSTRACE=1", diff --git a/ReactCommon/cxxreact/CxxModule.h b/ReactCommon/cxxreact/CxxModule.h index 897123008..c67f95d82 100644 --- a/ReactCommon/cxxreact/CxxModule.h +++ b/ReactCommon/cxxreact/CxxModule.h @@ -1,23 +1,26 @@ // Copyright 2004-present Facebook. All Rights Reserved. -#ifndef FBXPLATMODULE -#define FBXPLATMODULE - -#include +#pragma once #include - #include #include #include +#include + using namespace std::placeholders; -namespace facebook { namespace react { - class Instance; +namespace facebook { +namespace react { + +class Instance; + }} -namespace facebook { namespace xplat { namespace module { +namespace facebook { +namespace xplat { +namespace module { /** * Base class for Catalyst native modules whose implementations are @@ -186,5 +189,3 @@ private: }; }}} - -#endif diff --git a/ReactCommon/cxxreact/CxxNativeModule.cpp b/ReactCommon/cxxreact/CxxNativeModule.cpp index 664c9ab84..c13b53b80 100644 --- a/ReactCommon/cxxreact/CxxNativeModule.cpp +++ b/ReactCommon/cxxreact/CxxNativeModule.cpp @@ -9,6 +9,7 @@ #include "JsArgumentHelpers.h" #include "SystraceSection.h" +#include "MessageQueueThread.h" using facebook::xplat::module::CxxModule; diff --git a/ReactCommon/cxxreact/CxxNativeModule.h b/ReactCommon/cxxreact/CxxNativeModule.h index da42b29c6..a93d51e5f 100644 --- a/ReactCommon/cxxreact/CxxNativeModule.h +++ b/ReactCommon/cxxreact/CxxNativeModule.h @@ -9,6 +9,7 @@ namespace facebook { namespace react { class Instance; +class MessageQueueThread; std::function makeCallback( std::weak_ptr instance, const folly::dynamic& callbackId); diff --git a/ReactCommon/cxxreact/Instance.cpp b/ReactCommon/cxxreact/Instance.cpp index 8da3d3ceb..6db8f3003 100644 --- a/ReactCommon/cxxreact/Instance.cpp +++ b/ReactCommon/cxxreact/Instance.cpp @@ -2,10 +2,14 @@ #include "Instance.h" -#include "Executor.h" +#include "JSExecutor.h" #include "MethodCall.h" #include "RecoverableError.h" #include "SystraceSection.h" +#include "MessageQueueThread.h" +#include "NativeToJsBridge.h" +#include "JSBigString.h" +#include "JSModulesUnbundle.h" #include #include diff --git a/ReactCommon/cxxreact/Instance.h b/ReactCommon/cxxreact/Instance.h index 46ae71449..6424958b6 100644 --- a/ReactCommon/cxxreact/Instance.h +++ b/ReactCommon/cxxreact/Instance.h @@ -2,17 +2,24 @@ #pragma once +#include #include -#include -#include #include -#include +#include + +namespace folly { + struct dynamic; +} namespace facebook { namespace react { +class JSBigString; class JSExecutorFactory; +class JSModulesUnbundle; +class MessageQueueThread; +class ModuleRegistry; struct InstanceCallback { virtual ~InstanceCallback() {} @@ -48,7 +55,7 @@ class Instance { void *getJavaScriptContext(); void callJSFunction(std::string&& module, std::string&& method, folly::dynamic&& params); void callJSCallback(uint64_t callbackId, folly::dynamic&& params); - MethodCallResult callSerializableNativeHook(unsigned int moduleId, unsigned int methodId, folly::dynamic&& args); + // This method is experimental, and may be modified or removed. template Value callFunctionSync(const std::string& module, const std::string& method, T&& args) { @@ -80,5 +87,4 @@ class Instance { bool m_syncReady = false; }; -} -} +} } diff --git a/ReactCommon/cxxreact/JSCExecutor.cpp b/ReactCommon/cxxreact/JSCExecutor.cpp index 337ed83f7..bb10718df 100644 --- a/ReactCommon/cxxreact/JSCExecutor.cpp +++ b/ReactCommon/cxxreact/JSCExecutor.cpp @@ -19,10 +19,7 @@ #include #include -#ifdef WITH_INSPECTOR -#include -#endif - +#include "JSBigString.h" #include "JSBundleType.h" #include "Platform.h" #include "SystraceSection.h" @@ -33,6 +30,10 @@ #include "ModuleRegistry.h" #include "RecoverableError.h" +#ifdef WITH_INSPECTOR +#include +#endif + #if defined(WITH_JSC_EXTRA_TRACING) || (DEBUG && defined(WITH_FBSYSTRACE)) #include "JSCTracing.h" #endif diff --git a/ReactCommon/cxxreact/JSCExecutor.h b/ReactCommon/cxxreact/JSCExecutor.h index 7c8aafa0c..9b6834c66 100644 --- a/ReactCommon/cxxreact/JSCExecutor.h +++ b/ReactCommon/cxxreact/JSCExecutor.h @@ -7,8 +7,8 @@ #include #include -#include #include +#include #include #include #include diff --git a/ReactCommon/cxxreact/JSCUtils.h b/ReactCommon/cxxreact/JSCUtils.h index ca40eb3e8..dfa1df715 100644 --- a/ReactCommon/cxxreact/JSCUtils.h +++ b/ReactCommon/cxxreact/JSCUtils.h @@ -2,7 +2,8 @@ #pragma once -#include +#include +#include #include namespace facebook { diff --git a/ReactCommon/cxxreact/Executor.h b/ReactCommon/cxxreact/JSExecutor.h similarity index 86% rename from ReactCommon/cxxreact/Executor.h rename to ReactCommon/cxxreact/JSExecutor.h index 9b25dd26b..fc42b8edb 100644 --- a/ReactCommon/cxxreact/Executor.h +++ b/ReactCommon/cxxreact/JSExecutor.h @@ -5,33 +5,18 @@ #include #include -#include -#include +#include #include -#ifndef RN_EXPORT -#define RN_EXPORT __attribute__((visibility("default"))) -#endif - namespace facebook { namespace react { -#define UNPACKED_JS_SOURCE_PATH_SUFFIX "/bundle.js" -#define UNPACKED_META_PATH_SUFFIX "/bundle.meta" -#define UNPACKED_BYTECODE_SUFFIX "/bundle.bytecode" - -enum { - UNPACKED_JS_SOURCE = (1 << 0), - UNPACKED_BYTECODE = (1 << 1), -}; - +class JSBigString; class JSExecutor; class JSModulesUnbundle; class MessageQueueThread; class ModuleRegistry; -using MethodCallResult = folly::Optional; - // This interface describes the delegate interface required by // Executor implementations to call from JS into native code. class ExecutorDelegate { diff --git a/ReactCommon/cxxreact/JSIndexedRAMBundle.cpp b/ReactCommon/cxxreact/JSIndexedRAMBundle.cpp index 282f2d91b..b5fc10dfb 100644 --- a/ReactCommon/cxxreact/JSIndexedRAMBundle.cpp +++ b/ReactCommon/cxxreact/JSIndexedRAMBundle.cpp @@ -1,7 +1,9 @@ // Copyright 2004-present Facebook. All Rights Reserved. #include "JSIndexedRAMBundle.h" + #include "oss-compat-util.h" +#include "JSBigString.h" namespace facebook { namespace react { diff --git a/ReactCommon/cxxreact/JSIndexedRAMBundle.h b/ReactCommon/cxxreact/JSIndexedRAMBundle.h index 6768ccdce..e13da4a43 100644 --- a/ReactCommon/cxxreact/JSIndexedRAMBundle.h +++ b/ReactCommon/cxxreact/JSIndexedRAMBundle.h @@ -5,16 +5,15 @@ #include #include -#include -#include #include namespace facebook { namespace react { class JSBigString; +class JSBigBufferString; -class JSIndexedRAMBundle : public facebook::react::JSModulesUnbundle { +class JSIndexedRAMBundle : public JSModulesUnbundle { public: // Throws std::runtime_error on failure. JSIndexedRAMBundle(const char *sourceURL); diff --git a/ReactCommon/cxxreact/MethodCall.h b/ReactCommon/cxxreact/MethodCall.h index bd50b7b21..38a288ed5 100644 --- a/ReactCommon/cxxreact/MethodCall.h +++ b/ReactCommon/cxxreact/MethodCall.h @@ -2,9 +2,9 @@ #pragma once +#include #include #include -#include #include @@ -17,7 +17,7 @@ struct MethodCall { folly::dynamic arguments; int callId; - MethodCall(int mod, int meth, folly::dynamic args, int cid) + MethodCall(int mod, int meth, folly::dynamic&& args, int cid) : moduleId(mod) , methodId(meth) , arguments(std::move(args)) diff --git a/ReactCommon/cxxreact/ModuleRegistry.h b/ReactCommon/cxxreact/ModuleRegistry.h index a9b7b2de3..674159522 100644 --- a/ReactCommon/cxxreact/ModuleRegistry.h +++ b/ReactCommon/cxxreact/ModuleRegistry.h @@ -3,10 +3,10 @@ #pragma once #include -#include #include +#include -#include +#include #include #include diff --git a/ReactCommon/cxxreact/NativeModule.h b/ReactCommon/cxxreact/NativeModule.h index 3ec7f3880..afde69d85 100644 --- a/ReactCommon/cxxreact/NativeModule.h +++ b/ReactCommon/cxxreact/NativeModule.h @@ -5,7 +5,7 @@ #include #include -#include +#include #include namespace facebook { @@ -21,14 +21,14 @@ struct MethodDescriptor { , type(std::move(t)) {} }; + using MethodCallResult = folly::Optional; + class NativeModule { public: virtual ~NativeModule() {} virtual std::string getName() = 0; virtual std::vector getMethods() = 0; virtual folly::dynamic getConstants() = 0; - // TODO mhorowitz: do we need initialize()/onCatalystInstanceDestroy() in C++ - // or only Java? virtual void invoke(unsigned int reactMethodId, folly::dynamic&& params, int callId) = 0; virtual MethodCallResult callSerializableNativeHook(unsigned int reactMethodId, folly::dynamic&& args) = 0; }; diff --git a/ReactCommon/cxxreact/NativeToJsBridge.cpp b/ReactCommon/cxxreact/NativeToJsBridge.cpp index 33f73161f..5039b699c 100644 --- a/ReactCommon/cxxreact/NativeToJsBridge.cpp +++ b/ReactCommon/cxxreact/NativeToJsBridge.cpp @@ -2,19 +2,21 @@ #include "NativeToJsBridge.h" -#ifdef WITH_FBSYSTRACE -#include -using fbsystrace::FbSystraceAsyncFlow; -#endif - #include #include #include #include "Instance.h" -#include "ModuleRegistry.h" -#include "Platform.h" +#include "JSBigString.h" #include "SystraceSection.h" +#include "MethodCall.h" +#include "JSModulesUnbundle.h" +#include "MessageQueueThread.h" + +#ifdef WITH_FBSYSTRACE +#include +using fbsystrace::FbSystraceAsyncFlow; +#endif namespace facebook { namespace react { diff --git a/ReactCommon/cxxreact/NativeToJsBridge.h b/ReactCommon/cxxreact/NativeToJsBridge.h index 47fd3201b..227cd5e5b 100644 --- a/ReactCommon/cxxreact/NativeToJsBridge.h +++ b/ReactCommon/cxxreact/NativeToJsBridge.h @@ -7,27 +7,21 @@ #include #include -#include #include -#include -#include -#include -#include -#include -#include +#include namespace folly { - struct dynamic; - } namespace facebook { namespace react { -class ModuleRegistry; -class JsToNativeBridge; struct InstanceCallback; +class JSModulesUnbundle; +class JsToNativeBridge; +class MessageQueueThread; +class ModuleRegistry; // This class manages calls from native code to JS. It also manages // executors and their threads. All functions here can be called from diff --git a/ReactCommon/cxxreact/Platform.h b/ReactCommon/cxxreact/Platform.h index 6a38557a4..cc3326efb 100644 --- a/ReactCommon/cxxreact/Platform.h +++ b/ReactCommon/cxxreact/Platform.h @@ -6,7 +6,7 @@ #include #include -#include +#include #include #include diff --git a/ReactCommon/cxxreact/tests/jsbigstring.cpp b/ReactCommon/cxxreact/tests/jsbigstring.cpp index c11b231a3..21bd22cc2 100644 --- a/ReactCommon/cxxreact/tests/jsbigstring.cpp +++ b/ReactCommon/cxxreact/tests/jsbigstring.cpp @@ -4,8 +4,7 @@ #include #include -#include -#include +#include using namespace facebook; using namespace facebook::react;