NativeSampleTurboCxxModuleSpecJSI.h 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. /*
  2. * Copyright (c) Facebook, Inc. and its affiliates.
  3. *
  4. * This source code is licensed under the MIT license found in the
  5. * LICENSE file in the root directory of this source tree.
  6. */
  7. #pragma once
  8. #include <memory>
  9. #include <string>
  10. #include <ReactCommon/TurboModule.h>
  11. namespace facebook {
  12. namespace react {
  13. // TODO: This definition should be codegen'ed for type-safety purpose.
  14. class JSI_EXPORT NativeSampleTurboCxxModuleSpecJSI : public TurboModule {
  15. protected:
  16. NativeSampleTurboCxxModuleSpecJSI(std::shared_ptr<CallInvoker> jsInvoker);
  17. public:
  18. virtual void voidFunc(jsi::Runtime &rt) = 0;
  19. virtual bool getBool(jsi::Runtime &rt, bool arg) = 0;
  20. virtual double getNumber(jsi::Runtime &rt, double arg) = 0;
  21. virtual jsi::String getString(jsi::Runtime &rt, const jsi::String &arg) = 0;
  22. virtual jsi::Array getArray(jsi::Runtime &rt, const jsi::Array &arg) = 0;
  23. virtual jsi::Object getObject(jsi::Runtime &rt, const jsi::Object &arg) = 0;
  24. virtual jsi::Object getValue(
  25. jsi::Runtime &rt,
  26. double x,
  27. const jsi::String &y,
  28. const jsi::Object &z) = 0;
  29. virtual void getValueWithCallback(
  30. jsi::Runtime &rt,
  31. const jsi::Function &callback) = 0;
  32. virtual jsi::Value getValueWithPromise(jsi::Runtime &rt, bool error) = 0;
  33. virtual jsi::Object getConstants(jsi::Runtime &rt) = 0;
  34. };
  35. } // namespace react
  36. } // namespace facebook