/
githubmr
/
facebook-react-native
Обзор
Документация
Войти
/
githubmr
/
facebook-react-native
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
main
packages/react-native/ReactCommon/react/bridging/CallbackWrapper.h
67 строк
2 KB
Pieter De Baets
Fix include directive to solve redefinition error (#44891)
12 июн 2024, 17:24
12 июн 2024, 17:24
c92f31d
Код
Авторство
О чём код?
/* * Copyright (c) Meta Platforms, Inc. and 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 <jsi/jsi.h> #include <memory> #include <react/bridging/LongLivedObject.h> namespace facebook::react { class CallInvoker; // Helper for passing jsi::Function arg to other methods. class CallbackWrapper : public LongLivedObject { private: CallbackWrapper( jsi::Function&& callback, jsi::Runtime& runtime, std::shared_ptr<CallInvoker> jsInvoker) : LongLivedObject(runtime), callback_(std::move(callback)), jsInvoker_(std::move(jsInvoker)) {} jsi::Function callback_; std::shared_ptr<CallInvoker> jsInvoker_; public: static std::weak_ptr<CallbackWrapper> createWeak( jsi::Function&& callback, jsi::Runtime& runtime, std::shared_ptr<CallInvoker> jsInvoker) { auto wrapper = std::shared_ptr<CallbackWrapper>(new CallbackWrapper( std::move(callback), runtime, std::move(jsInvoker))); LongLivedObjectCollection::get(runtime).add(wrapper); return wrapper; } // Delete the enclosed jsi::Function void destroy() { allowRelease(); } jsi::Function& callback() noexcept { return callback_; } jsi::Runtime& runtime() noexcept { return runtime_; } CallInvoker& jsInvoker() noexcept { return *(jsInvoker_); } std::shared_ptr<CallInvoker> jsInvokerPtr() noexcept { return jsInvoker_; } }; } // namespace facebook::react