mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Summary: ## Summary This diff does a bunch of things: 1. The TurboModule resolution algorithm on Android now supports C++ TurboModules. 2. `SampleTurboCxxModule` is moved from `ReactCommon/turbomodule/samples/platform/ios/` to `ReactCommon/turbomodule/samples` so that both iOS and Android can share it. 3. `CatalystTurboModuleManagerDelegate::getTurboModule(std::string, JSCallInvoker)` now understands and returns `SampleTurboCxxModule`. Reviewed By: mdvacca Differential Revision: D15253477 fbshipit-source-id: 3def91911b091f8cf93be17decd245a0499ed718
45 lines
1.4 KiB
Objective-C
45 lines
1.4 KiB
Objective-C
/**
|
|
* Copyright (c) Facebook, Inc. and its 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
|
|
|
|
#import <memory>
|
|
|
|
#import "NativeSampleTurboCxxModuleSpecJSI.h"
|
|
|
|
namespace facebook {
|
|
namespace react {
|
|
|
|
/**
|
|
* A sample implementation of the C++ spec. In practice, this class can just
|
|
* extend jsi::HostObject directly, but using the spec provides build-time
|
|
* type-safety.
|
|
*/
|
|
class SampleTurboCxxModule : public NativeSampleTurboCxxModuleSpecJSI {
|
|
public:
|
|
SampleTurboCxxModule(std::shared_ptr<JSCallInvoker> jsInvoker);
|
|
|
|
void voidFunc(jsi::Runtime &rt) override;
|
|
bool getBool(jsi::Runtime &rt, bool arg) override;
|
|
double getNumber(jsi::Runtime &rt, double arg) override;
|
|
jsi::String getString(jsi::Runtime &rt, const jsi::String &arg) override;
|
|
jsi::Array getArray(jsi::Runtime &rt, const jsi::Array &arg) override;
|
|
jsi::Object getObject(jsi::Runtime &rt, const jsi::Object &arg) override;
|
|
jsi::Object getValue(
|
|
jsi::Runtime &rt,
|
|
double x,
|
|
const jsi::String &y,
|
|
const jsi::Object &z) override;
|
|
void getValueWithCallback(jsi::Runtime &rt, const jsi::Function &callback)
|
|
override;
|
|
jsi::Value getValueWithPromise(jsi::Runtime &rt, bool error) override;
|
|
jsi::Object getConstants(jsi::Runtime &rt) override;
|
|
};
|
|
|
|
} // namespace react
|
|
} // namespace facebook
|