}
+bool ArduControl::CommandQueueTask::get_work(PendingCommand &cmd)
+{
+ return queue.pop(cmd);
+}
+
+void ArduControl::CommandQueueTask::push(const PendingCommand &cmd)
+{
+ queue.push(cmd);
+}
+
+
ArduControl::RefreshTask::RefreshTask():
next(cycle.end()),
round(0),
control(c),
done(false)
{
+ tasks.push_back(&control.command_queue);
tasks.push_back(&control.monitor);
tasks.push_back(&control.mfx_announce);
tasks.push_back(&control.mfx_search);
bool ArduControl::ControlThread::get_work(PendingCommand &cmd)
{
- if(control.command_queue.pop(cmd))
- return true;
-
for(vector<Task *>::iterator i=tasks.begin(); i!=tasks.end(); ++i)
if((*i)->get_work(cmd))
return true;