1 #pragma once 2 3 #include <jsi/jsi.h> 4 #include <stdio.h> 5 #include <string> 6 #include <utility> 7 #include <vector> 8 9 using namespace facebook; 10 11 namespace reanimated { 12 13 using UpdaterFunction = std::function<void( 14 jsi::Runtime &rt, 15 int viewTag, 16 const jsi::Value &viewName, 17 const jsi::Object &object)>; 18 using RequestRender = 19 std::function<void(std::function<void(double)>, jsi::Runtime &rt)>; 20 using ScrollToFunction = std::function<void(int, double, double, bool)>; 21 using MeasuringFunction = 22 std::function<std::vector<std::pair<std::string, double>>(int)>; 23 using TimeProviderFunction = std::function<double(void)>; 24 25 using RegisterSensorFunction = 26 std::function<int(int, int, std::function<void(double[])>)>; 27 using UnregisterSensorFunction = std::function<void(int)>; 28 using SetGestureStateFunction = std::function<void(int, int)>; 29 using ConfigurePropsFunction = std::function<void( 30 jsi::Runtime &rt, 31 const jsi::Value &uiProps, 32 const jsi::Value &nativeProps)>; 33 using KeyboardEventSubscribeFunction = 34 std::function<int(std::function<void(int, int)>)>; 35 using KeyboardEventUnsubscribeFunction = std::function<void(int)>; 36 37 struct PlatformDepMethodsHolder { 38 RequestRender requestRender; 39 UpdaterFunction updaterFunction; 40 ScrollToFunction scrollToFunction; 41 MeasuringFunction measuringFunction; 42 TimeProviderFunction getCurrentTime; 43 RegisterSensorFunction registerSensor; 44 UnregisterSensorFunction unregisterSensor; 45 SetGestureStateFunction setGestureStateFunction; 46 ConfigurePropsFunction configurePropsFunction; 47 KeyboardEventSubscribeFunction subscribeForKeyboardEvents; 48 KeyboardEventUnsubscribeFunction unsubscribeFromKeyboardEvents; 49 }; 50 51 } // namespace reanimated 52