VLCB
Loading...
Searching...
No Matches
TimedResponse.h
Go to the documentation of this file.
1// Copyright (C) Sven Rosvall (sven@rosvall.ie)
2// This file is part of VLCB-Arduino project on https://github.com/SvenRosvall/VLCB-Arduino
3// Licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
4// The full licence can be found at: http://creativecommons.org/licenses/by-nc-sa/4.0
5
6#pragma once
7
8#include "CircularBuffer.h"
9
10namespace VLCB
11{
12
13class Controller;
14
21{
22public:
24
25 class Task
26 {
27 public:
29 Task() : controller(nullptr) {}
30 virtual ~Task() = default;
31 virtual Result runStep() = 0;
32 int sequence = 0;
33 protected:
35 };
36
37 void add(Task * task)
38 {
39 tasks.put(task);
40 }
41
42 void process();
43
44 bool pendingTasks() const
45 {
46 return tasks.available();
47 }
48
49private:
51 unsigned long lastTaskTime = 0;
52};
53
54} // VLCB
Definition CircularBuffer.h:15
Main object in VLCB. Coordinates transport, ui, configuration and services.
Definition Controller.h:67
Definition TimedResponse.h:26
virtual ~Task()=default
Task(Controller *controller)
Definition TimedResponse.h:28
virtual Result runStep()=0
Task()
Definition TimedResponse.h:29
Controller * controller
Definition TimedResponse.h:34
int sequence
Definition TimedResponse.h:32
Manage tasks that respond with messages at timed intervals.
Definition TimedResponse.h:21
void process()
Definition TimedResponse.cpp:14
void add(Task *task)
Definition TimedResponse.h:37
Result
Definition TimedResponse.h:23
@ RETRY
Definition TimedResponse.h:23
@ FINISHED
Definition TimedResponse.h:23
@ PROGRESS
Definition TimedResponse.h:23
bool pendingTasks() const
Definition TimedResponse.h:44
Definition AbstractEventTeachingService.cpp:13