Experiment Controller. More...
#include <experiment.h>
Public Types | |
| enum | State { IDLE , RUN } |
| States during which recurring tasks can be called using during. More... | |
| enum | Event { INIT , STOP , TIMEOUT } |
| Events upon which tasks can be called using onEvent. More... | |
Public Member Functions | |
| Experiment (FrameRegistry *fr=nullptr) | |
construct. if FrameRegistry is not available at this point, call registerWith at the earliest convenience | |
| void | registerWith (FrameRegistry ®) |
| set frame registry from which Experiment will receive frames | |
| Schedule::Evented::Registry & | onEvent (Event e) |
| register callbacks for Experiment state change events | |
| Schedule::Recurring::Registry & | during (State s) |
| register recurring callbacks during Experiment states | |
| void | setHeartbeatTimeout (uint32_t ms, Sink< Frame > ¬ify) |
| set Heartbeat timeout in ms | |
Public Attributes | |
| const State & | state {state_} |
| const access to Experiment state | |
| const uint32_t & | time {time_} |
| const access to Experiment time | |
| ELog | log {time, k.log} |
| Logging facility. | |
Experiment Controller.
Implements a simple state machine and provides hooks for recurring callbacks during the states, or on Events (state changes).
k in this namespace to be alive | enum Experiment::State |
States during which recurring tasks can be called using during.
| Enumerator | |
|---|---|
| IDLE | initial Experiment state |
| RUN | running Experiment state |
| enum Experiment::Event |
Events upon which tasks can be called using onEvent.
| Enumerator | |
|---|---|
| INIT | Event generated on experiment start. |
| STOP | Event generated on experiment end. |
| TIMEOUT | Event generated on missed heartbeat. |