mirror of
https://github.com/zhigang1992/react-native.git
synced 2026-04-28 20:25:33 +08:00
Summary: This provides various versions of SampleTurboModule, that are: * compatible with existing NativeModule * TurboModule compliant Variants: * RCTSampleTurboModule (traditional objc module) * RCTSampleTurboCxxModule (objc++ module using CxxModule) * SampleTurboModule (pure C++ impl of a TurboModule, no ObjC) As noted in some files, they need to be codegen'ed based on the `NativeSampleTurboModule.js` (Flow type). The codegen script is not yet usable in OSS (we'll work on it some time in H2 2019). For now, these files need to be manually synced with Flow type. Reviewed By: cpojer Differential Revision: D14932539 fbshipit-source-id: fb887192384e5e6e4dff4cac68b4e037a4783cd9
39 lines
1.3 KiB
C++
39 lines
1.3 KiB
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
|
|
|
|
#include <memory>
|
|
#include <string>
|
|
|
|
#include <jsireact/TurboModule.h>
|
|
|
|
namespace facebook {
|
|
namespace react {
|
|
|
|
// TODO: This definition should be codegen'ed for type-safety purpose.
|
|
class JSI_EXPORT NativeSampleTurboCxxModuleSpecJSI : public TurboModule {
|
|
protected:
|
|
NativeSampleTurboCxxModuleSpecJSI(std::shared_ptr<JSCallInvoker> jsInvoker);
|
|
|
|
public:
|
|
virtual void voidFunc(jsi::Runtime &rt) = 0;
|
|
virtual bool getBool(jsi::Runtime &rt, bool arg) = 0;
|
|
virtual double getNumber(jsi::Runtime &rt, double arg) = 0;
|
|
virtual jsi::String getString(jsi::Runtime &rt, const jsi::String &arg) = 0;
|
|
virtual jsi::Array getArray(jsi::Runtime &rt, const jsi::Array &arg) = 0;
|
|
virtual jsi::Object getObject(jsi::Runtime &rt, const jsi::Object &arg) = 0;
|
|
virtual jsi::Object getValue(jsi::Runtime &rt, double x, const jsi::String &y, const jsi::Object &z) = 0;
|
|
virtual void getValueWithCallback(jsi::Runtime &rt, const jsi::Function &callback) = 0;
|
|
virtual jsi::Value getValueWithPromise(jsi::Runtime &rt, bool error) = 0;
|
|
virtual jsi::Object getConstants(jsi::Runtime &rt) = 0;
|
|
|
|
};
|
|
|
|
} // namespace react
|
|
} // namespace facebook
|