1 #pragma once 2 3 #include <jsi/jsi.h> 4 #include <memory> 5 #include <unordered_map> 6 #include <vector> 7 8 using namespace facebook; 9 10 namespace reanimated { 11 12 class Mapper; 13 14 class MapperRegistry { 15 std::unordered_map<unsigned long, std::shared_ptr<Mapper>> mappers; 16 std::vector<std::shared_ptr<Mapper>> sortedMappers; 17 void updateOrder(); 18 bool updatedSinceLastExecute = false; 19 20 public: 21 void startMapper(std::shared_ptr<Mapper> mapper); 22 void stopMapper(unsigned long id); 23 24 void execute(jsi::Runtime &rt); 25 26 bool needRunOnRender(); 27 }; 28 29 } // namespace reanimated 30