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