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