VLCB
Toggle main menu visibility
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
10
namespace
VLCB
11
{
12
13
class
Controller
;
14
20
class
TimedResponse
21
{
22
public
:
23
enum
Result
{
PROGRESS
,
RETRY
,
FINISHED
};
24
25
class
Task
26
{
27
public
:
28
Task
(
Controller
*
controller
) :
controller
(
controller
) {}
29
Task
() :
controller
(nullptr) {}
30
virtual
~Task
() =
default
;
31
virtual
Result
runStep
() = 0;
32
int
sequence
= 0;
33
protected
:
34
Controller
*
controller
;
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
49
private
:
50
CircularBuffer<Task *>
tasks;
51
unsigned
long
lastTaskTime = 0;
52
};
53
54
}
// VLCB
CircularBuffer.h
VLCB::CircularBuffer
Definition
CircularBuffer.h:15
VLCB::Controller
Main object in VLCB. Coordinates transport, ui, configuration and services.
Definition
Controller.h:121
VLCB::TimedResponse::Task
Definition
TimedResponse.h:26
VLCB::TimedResponse::Task::~Task
virtual ~Task()=default
VLCB::TimedResponse::Task::Task
Task(Controller *controller)
Definition
TimedResponse.h:28
VLCB::TimedResponse::Task::runStep
virtual Result runStep()=0
VLCB::TimedResponse::Task::Task
Task()
Definition
TimedResponse.h:29
VLCB::TimedResponse::Task::controller
Controller * controller
Definition
TimedResponse.h:34
VLCB::TimedResponse::Task::sequence
int sequence
Definition
TimedResponse.h:32
VLCB::TimedResponse
Manage tasks that respond with messages at timed intervals.
Definition
TimedResponse.h:21
VLCB::TimedResponse::add
void add(Task *task)
Definition
TimedResponse.h:37
VLCB::TimedResponse::Result
Result
Definition
TimedResponse.h:23
VLCB::TimedResponse::RETRY
@ RETRY
Definition
TimedResponse.h:23
VLCB::TimedResponse::FINISHED
@ FINISHED
Definition
TimedResponse.h:23
VLCB::TimedResponse::PROGRESS
@ PROGRESS
Definition
TimedResponse.h:23
VLCB::TimedResponse::pendingTasks
bool pendingTasks() const
Definition
TimedResponse.h:44
VLCB
Definition
AbstractEventTeachingService.cpp:13
VLCB::process
void process()
Definition
VLCB.cpp:192
src
TimedResponse.h
Generated by
1.18.0