43 lines
567 B
C++
43 lines
567 B
C++
#ifndef STATE_H
|
|
#define STATE_H
|
|
|
|
class Context;
|
|
|
|
class State
|
|
{
|
|
protected:
|
|
Context* context_ = nullptr;
|
|
|
|
public:
|
|
virtual ~State() = default;
|
|
|
|
void set_context(Context* context)
|
|
{
|
|
context_ = context;
|
|
}
|
|
|
|
virtual const char* name() const = 0;
|
|
|
|
virtual void on_entry() = 0;
|
|
virtual void on_do() = 0;
|
|
virtual void on_exit() = 0;
|
|
|
|
// Events
|
|
virtual void reset()
|
|
{
|
|
}
|
|
|
|
virtual void set_operational()
|
|
{
|
|
}
|
|
|
|
virtual void set_pre_operational()
|
|
{
|
|
}
|
|
|
|
virtual void fault()
|
|
{
|
|
}
|
|
};
|
|
|
|
#endif |