1*753557f6STomasz Sapeta #include "Scheduler.h"
2*753557f6STomasz Sapeta 
3*753557f6STomasz Sapeta namespace ABI47_0_0reanimated {
4*753557f6STomasz Sapeta 
scheduleOnUI(std::function<void ()> job)5*753557f6STomasz Sapeta void Scheduler::scheduleOnUI(std::function<void()> job) {
6*753557f6STomasz Sapeta   uiJobs.push(std::move(job));
7*753557f6STomasz Sapeta }
8*753557f6STomasz Sapeta 
scheduleOnJS(std::function<void ()> job)9*753557f6STomasz Sapeta void Scheduler::scheduleOnJS(std::function<void()> job) {
10*753557f6STomasz Sapeta   jsCallInvoker_->invokeAsync(std::move(job));
11*753557f6STomasz Sapeta }
12*753557f6STomasz Sapeta 
triggerUI()13*753557f6STomasz Sapeta void Scheduler::triggerUI() {
14*753557f6STomasz Sapeta   scheduledOnUI = false;
15*753557f6STomasz Sapeta   while (uiJobs.getSize()) {
16*753557f6STomasz Sapeta     auto job = uiJobs.pop();
17*753557f6STomasz Sapeta     job();
18*753557f6STomasz Sapeta   }
19*753557f6STomasz Sapeta }
20*753557f6STomasz Sapeta 
setJSCallInvoker(std::shared_ptr<ABI47_0_0facebook::ABI47_0_0React::CallInvoker> jsCallInvoker)21*753557f6STomasz Sapeta void Scheduler::setJSCallInvoker(
22*753557f6STomasz Sapeta     std::shared_ptr<ABI47_0_0facebook::ABI47_0_0React::CallInvoker> jsCallInvoker) {
23*753557f6STomasz Sapeta   jsCallInvoker_ = jsCallInvoker;
24*753557f6STomasz Sapeta }
25*753557f6STomasz Sapeta 
setRuntimeManager(std::shared_ptr<RuntimeManager> runtimeManager)26*753557f6STomasz Sapeta void Scheduler::setRuntimeManager(
27*753557f6STomasz Sapeta     std::shared_ptr<RuntimeManager> runtimeManager) {
28*753557f6STomasz Sapeta   this->runtimeManager = runtimeManager;
29*753557f6STomasz Sapeta }
30*753557f6STomasz Sapeta 
~Scheduler()31*753557f6STomasz Sapeta Scheduler::~Scheduler() {}
32*753557f6STomasz Sapeta 
Scheduler()33*753557f6STomasz Sapeta Scheduler::Scheduler() {
34*753557f6STomasz Sapeta   this->scheduledOnUI = false;
35*753557f6STomasz Sapeta }
36*753557f6STomasz Sapeta 
37*753557f6STomasz Sapeta } // namespace reanimated
38