暂无描述

MainApplicationTurboModuleManagerDelegate.cpp 1.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. #include "MainApplicationTurboModuleManagerDelegate.h"
  2. #include "MainApplicationModuleProvider.h"
  3. namespace facebook {
  4. namespace react {
  5. jni::local_ref<MainApplicationTurboModuleManagerDelegate::jhybriddata>
  6. MainApplicationTurboModuleManagerDelegate::initHybrid(
  7. jni::alias_ref<jhybridobject>) {
  8. return makeCxxInstance();
  9. }
  10. void MainApplicationTurboModuleManagerDelegate::registerNatives() {
  11. registerHybrid({
  12. makeNativeMethod(
  13. "initHybrid", MainApplicationTurboModuleManagerDelegate::initHybrid),
  14. makeNativeMethod(
  15. "canCreateTurboModule",
  16. MainApplicationTurboModuleManagerDelegate::canCreateTurboModule),
  17. });
  18. }
  19. std::shared_ptr<TurboModule>
  20. MainApplicationTurboModuleManagerDelegate::getTurboModule(
  21. const std::string &name,
  22. const std::shared_ptr<CallInvoker> &jsInvoker) {
  23. // Not implemented yet: provide pure-C++ NativeModules here.
  24. return nullptr;
  25. }
  26. std::shared_ptr<TurboModule>
  27. MainApplicationTurboModuleManagerDelegate::getTurboModule(
  28. const std::string &name,
  29. const JavaTurboModule::InitParams &params) {
  30. return MainApplicationModuleProvider(name, params);
  31. }
  32. bool MainApplicationTurboModuleManagerDelegate::canCreateTurboModule(
  33. const std::string &name) {
  34. return getTurboModule(name, nullptr) != nullptr ||
  35. getTurboModule(name, {.moduleName = name}) != nullptr;
  36. }
  37. } // namespace react
  38. } // namespace facebook