job scheduler works with run once and run periodic schedules. Stop logic is not fully thought through.
Dependents: JobSchedulerDemo Borsch
Diff: scheduler.cpp
- Revision:
- 17:3b565ccd291b
- Parent:
- 16:f61b62b119dd
- Child:
- 18:8be206ad1eb4
--- a/scheduler.cpp Thu Aug 03 00:00:13 2017 +0000 +++ b/scheduler.cpp Thu Aug 03 18:15:21 2017 +0000 @@ -31,8 +31,8 @@ }; struct JobListReq: Action { - LinkedList<Job>& _jobsToFill; - JobListReq(LinkedList<Job>& jobs) : Action(JobListAT), _jobsToFill(jobs) {} + LinkedList<Appointment>& _jobsToFill; + JobListReq(LinkedList<Appointment>& jobs) : Action(JobListAT), _jobsToFill(jobs) {} }; Scheduler::Scheduler(JobService *jobService) @@ -114,8 +114,8 @@ tr_error("JobRemove is not implemented"); } - void Scheduler::JobList(LinkedList<Job>& jobs) { - JobListReq req(jobs); + void Scheduler::AppointmentList(LinkedList<Appointment>& apts) { + JobListReq req(apts); _updates.put(&req); osEvent evt = req.resQueue.get(); if (evt.status != osEventMessage) { @@ -189,9 +189,9 @@ int loc = 1; node<Appointment>* n = _timeline.pop(loc); while (n != NULL) { - Job* job = n->data->GetJob(); - tr_debug("[process] adding job ID %d to list", job->GetID()); - req->_jobsToFill.append(job); + Appointment* apt = n->data; + tr_debug("[process] adding appointment with job ID %d to list", apt->GetJob()->GetID()); + req->_jobsToFill.append(apt); ++loc; n = _timeline.pop(loc); }