1*ab11e3c9SKudo Chien #pragma once 2*ab11e3c9SKudo Chien 3*ab11e3c9SKudo Chien #include <jsi/jsi.h> 4*ab11e3c9SKudo Chien #include <string> 5*ab11e3c9SKudo Chien #include <utility> 6*ab11e3c9SKudo Chien 7*ab11e3c9SKudo Chien using namespace facebook; 8*ab11e3c9SKudo Chien 9*ab11e3c9SKudo Chien namespace reanimated { 10*ab11e3c9SKudo Chien 11*ab11e3c9SKudo Chien class EventHandlerRegistry; 12*ab11e3c9SKudo Chien 13*ab11e3c9SKudo Chien class WorkletEventHandler { 14*ab11e3c9SKudo Chien friend EventHandlerRegistry; 15*ab11e3c9SKudo Chien 16*ab11e3c9SKudo Chien private: 17*ab11e3c9SKudo Chien unsigned long id; 18*ab11e3c9SKudo Chien std::string eventName; 19*ab11e3c9SKudo Chien jsi::Function handler; 20*ab11e3c9SKudo Chien 21*ab11e3c9SKudo Chien public: WorkletEventHandler(unsigned long id,std::string eventName,jsi::Function && handler)22*ab11e3c9SKudo Chien WorkletEventHandler( 23*ab11e3c9SKudo Chien unsigned long id, 24*ab11e3c9SKudo Chien std::string eventName, 25*ab11e3c9SKudo Chien jsi::Function &&handler) 26*ab11e3c9SKudo Chien : id(id), eventName(eventName), handler(std::move(handler)) {} 27*ab11e3c9SKudo Chien void process(jsi::Runtime &rt, const jsi::Value &eventValue); 28*ab11e3c9SKudo Chien }; 29*ab11e3c9SKudo Chien 30*ab11e3c9SKudo Chien } // namespace reanimated 31