1*ab11e3c9SKudo Chien #pragma once
2*ab11e3c9SKudo Chien 
3*ab11e3c9SKudo Chien #include <jsi/jsi.h>
4*ab11e3c9SKudo Chien #include <stdio.h>
5*ab11e3c9SKudo Chien #include <memory>
6*ab11e3c9SKudo Chien #include <unordered_map>
7*ab11e3c9SKudo Chien 
8*ab11e3c9SKudo Chien namespace reanimated {
9*ab11e3c9SKudo Chien 
10*ab11e3c9SKudo Chien using namespace facebook;
11*ab11e3c9SKudo Chien 
12*ab11e3c9SKudo Chien class FrozenObject;
13*ab11e3c9SKudo Chien 
14*ab11e3c9SKudo Chien class WorkletsCache {
15*ab11e3c9SKudo Chien  private:
16*ab11e3c9SKudo Chien   std::unordered_map<long long, std::shared_ptr<jsi::Function>> worklets;
17*ab11e3c9SKudo Chien 
18*ab11e3c9SKudo Chien  public:
19*ab11e3c9SKudo Chien   std::shared_ptr<jsi::Function> getFunction(
20*ab11e3c9SKudo Chien       jsi::Runtime &rt,
21*ab11e3c9SKudo Chien       std::shared_ptr<reanimated::FrozenObject> frozenObj);
22*ab11e3c9SKudo Chien };
23*ab11e3c9SKudo Chien 
24*ab11e3c9SKudo Chien } // namespace reanimated
25