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