add doxygen via opencode
This commit is contained in:
@@ -31,50 +31,117 @@
|
||||
#include "pisystemtime.h"
|
||||
|
||||
|
||||
//! \ingroup StateMachine
|
||||
//! \~\brief
|
||||
//! \~english
|
||||
//! \~russian
|
||||
//! \~english Base class for state machine states
|
||||
//! \~russian Базовый класс для состояний машины состояний
|
||||
class PIP_EXPORT PIStateBase {
|
||||
friend class PIStateMachine;
|
||||
friend class PITransitionBase;
|
||||
friend class PIStateFinal;
|
||||
|
||||
public:
|
||||
//! \~english Creates state with name
|
||||
//! \~russian Создает состояние с именем
|
||||
PIStateBase(const PIString & n = {}): name_(n) { ; }
|
||||
virtual ~PIStateBase();
|
||||
|
||||
//! \~english Called when state is \~russian Вы entered
|
||||
//! зывается при входе в состояние
|
||||
virtual void onEnter() {}
|
||||
|
||||
//! \~english Called when state is exited
|
||||
//! \~russian Вызывается при выходе из состояния
|
||||
virtual void onExit() {}
|
||||
|
||||
//! \~english Called when state machine finishes (for final states)
|
||||
//! \~russian Вызывается при завершении машины состояний (для финальных состояний)
|
||||
virtual void onFinish() {}
|
||||
|
||||
//! \~english Returns state machine this state belongs to
|
||||
//! \~russian Возвращает машину состояний, которой принадлежит это состояние
|
||||
PIStateMachine * machine() const { return root; }
|
||||
|
||||
//! \~english Returns parent state
|
||||
//! \~russian Возвращает родительское состояние
|
||||
PIStateBase * parent() const { return parent_state; }
|
||||
|
||||
//! \~english Returns active child state
|
||||
//! \~russian Возвращает активное дочернее состояние
|
||||
PIStateBase * activeChild() const { return active_state; }
|
||||
|
||||
//! \~english Returns all active child states
|
||||
//! \~russian Возвращает все активные дочерние состояния
|
||||
PIVector<PIStateBase *> activeChildren() const;
|
||||
|
||||
//! \~english Returns all active atomic states
|
||||
//! \~russian Возвращает все активные атомарные состояния
|
||||
PIVector<PIStateBase *> activeAtomics() const;
|
||||
|
||||
//! \~english Adds child state
|
||||
//! \~russian Добавляет дочернее состояние
|
||||
void addState(PIStateBase * s);
|
||||
|
||||
//! \~english Adds multiple child states
|
||||
//! \~russian Добавляет несколько дочерних состояний
|
||||
void addStates(PIVector<PIStateBase *> s);
|
||||
|
||||
//! \~english Sets initial state for compound state
|
||||
//! \~russian Устанавливает начальное состояние для составного состояния
|
||||
void setInitialState(PIStateBase * s);
|
||||
|
||||
//! \~english Adds transition to target state on event
|
||||
//! \~russian Добавляет переход к целевому состоянию по событию
|
||||
PITransitionBase * addTransition(PIStateBase * target, int event_id);
|
||||
|
||||
//! \~english Adds timeout transition to target state
|
||||
//! \~russian Добавляет переход по таймауту к целевому состоянию
|
||||
PITransitionTimeout * addTimeoutTransition(PIStateBase * target, PISystemTime timeout);
|
||||
|
||||
//! \~english Sets parallel mode for state
|
||||
//! \~russian Устанавливает параллельный режим для состояния
|
||||
void setParallel(bool yes) { is_parallel = yes; }
|
||||
|
||||
//! \~english Returns state name
|
||||
//! \~russian Возвращает имя состояния
|
||||
const PIString & getName() const { return name_; }
|
||||
|
||||
//! \~english Checks if this is root state machine
|
||||
//! \~russian Проверяет является ли это корневой машиной состояний
|
||||
bool isStateMachine() const { return is_root; }
|
||||
|
||||
//! \~english Checks if state is active
|
||||
//! \~russian Проверяет активно ли состояние
|
||||
bool isActive() const { return is_active; }
|
||||
|
||||
//! \~english Checks if state is in parallel mode
|
||||
//! \~russian Проверяет находится ли состояние в параллельном режиме
|
||||
bool isParallel() const { return is_parallel; }
|
||||
|
||||
//! \~english Checks if state is final
|
||||
//! \~russian Проверяет является ли состояние финальным
|
||||
bool isFinal() const { return is_final; }
|
||||
|
||||
//! \~english Checks if state is atomic (no children)
|
||||
//! \~russian Проверяет является ли состояние атомарным (нет потомков)
|
||||
bool isAtomic() const { return children.isEmpty(); }
|
||||
|
||||
//! \~english Checks if state is compound (has children)
|
||||
//! \~russian Проверяет является ли состояние составным (есть потомки)
|
||||
bool isCompound() const { return children.isNotEmpty(); }
|
||||
|
||||
//! \~english Returns child states
|
||||
//! \~russian Возвращает дочерние состояния
|
||||
const PIVector<PIStateBase *> & getChildren() const { return children; }
|
||||
|
||||
//! \~english Returns transitions from this state
|
||||
//! \~russian Возвращает переходы из этого состояния
|
||||
const PIVector<PITransitionBase *> & getTransitions() const { return transitions; }
|
||||
|
||||
//! \~english Prints state tree to string
|
||||
//! \~russian Выводит дерево состояний в строку
|
||||
void print(PIString prefix = {});
|
||||
|
||||
//! \~english Returns all states in machine
|
||||
//! \~russian Возвращает все состояния в машине
|
||||
PIVector<PIStateBase *> gatherStates();
|
||||
|
||||
private:
|
||||
@@ -100,8 +167,12 @@ private:
|
||||
};
|
||||
|
||||
|
||||
//! \~english State with lambda callbacks
|
||||
//! \~russian Состояние с lambda коллбэками
|
||||
class PIP_EXPORT PIStateLambda: public PIStateBase {
|
||||
public:
|
||||
//! \~english Creates lambda state with callbacks
|
||||
//! \~russian Создает lambda состояние с коллбэками
|
||||
PIStateLambda(std::function<void()> on_enter, std::function<void()> on_exit = nullptr, const PIString & n = {}): PIStateBase(n) {
|
||||
enter = on_enter;
|
||||
exit = on_exit;
|
||||
@@ -118,8 +189,12 @@ private:
|
||||
};
|
||||
|
||||
|
||||
//! \~english Final state of state machine
|
||||
//! \~russian Финальное состояние машины состояний
|
||||
class PIP_EXPORT PIStateFinal: public PIStateBase {
|
||||
public:
|
||||
//! \~english Creates final state with finish callback
|
||||
//! \~russian Создает финальное состояние с коллбэком завершения
|
||||
PIStateFinal(std::function<void()> on_finish = nullptr, const PIString & n = {}): PIStateBase(n) {
|
||||
is_final = true;
|
||||
enter = on_finish;
|
||||
|
||||
Reference in New Issue
Block a user