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