1*ab11e3c9SKudo Chien #pragma once 2*ab11e3c9SKudo Chien 3*ab11e3c9SKudo Chien #include <jsi/jsi.h> 4*ab11e3c9SKudo Chien #include <memory> 5*ab11e3c9SKudo Chien #include <utility> 6*ab11e3c9SKudo Chien #include "SharedParent.h" 7*ab11e3c9SKudo Chien 8*ab11e3c9SKudo Chien using namespace facebook; 9*ab11e3c9SKudo Chien 10*ab11e3c9SKudo Chien namespace reanimated { 11*ab11e3c9SKudo Chien 12*ab11e3c9SKudo Chien class MutableValueSetterProxy : public jsi::HostObject { 13*ab11e3c9SKudo Chien private: 14*ab11e3c9SKudo Chien friend MutableValue; 15*ab11e3c9SKudo Chien std::shared_ptr<MutableValue> mutableValue; 16*ab11e3c9SKudo Chien 17*ab11e3c9SKudo Chien public: MutableValueSetterProxy(std::shared_ptr<MutableValue> mutableValue)18*ab11e3c9SKudo Chien explicit MutableValueSetterProxy(std::shared_ptr<MutableValue> mutableValue) 19*ab11e3c9SKudo Chien : mutableValue(std::move(mutableValue)) {} 20*ab11e3c9SKudo Chien void 21*ab11e3c9SKudo Chien set(jsi::Runtime &rt, const jsi::PropNameID &name, const jsi::Value &value); 22*ab11e3c9SKudo Chien jsi::Value get(jsi::Runtime &rt, const jsi::PropNameID &name); 23*ab11e3c9SKudo Chien }; 24*ab11e3c9SKudo Chien 25*ab11e3c9SKudo Chien } // namespace reanimated 26