add doxygen via opencode
This commit is contained in:
@@ -30,22 +30,32 @@
|
||||
#include "pitimer.h"
|
||||
|
||||
|
||||
//! \ingroup StateMachine
|
||||
//! \~\brief
|
||||
//! \~english
|
||||
//! \~russian
|
||||
//! \~english Base class for state machine transitions
|
||||
//! \~russian Базовый класс для переходов машины состояний
|
||||
class PIP_EXPORT PITransitionBase {
|
||||
friend class PIStateMachine;
|
||||
friend class PIStateBase;
|
||||
|
||||
public:
|
||||
//! \~english Creates transition from source to target on event
|
||||
//! \~russian Создает переход от source к target по событию
|
||||
PITransitionBase(PIStateBase * source, PIStateBase * target, int event_id);
|
||||
virtual ~PITransitionBase();
|
||||
|
||||
//! \~english Returns state machine this transition belongs to
|
||||
//! \~russian Возвращает машину состояний, которой принадлежит этот переход
|
||||
PIStateMachine * machine() const { return root; }
|
||||
|
||||
//! \~english Returns source state
|
||||
//! \~russian Возвращает исходное состояние
|
||||
PIStateBase * source() const { return source_state; }
|
||||
|
||||
//! \~english Returns target state
|
||||
//! \~russian Возвращает целевое состояние
|
||||
PIStateBase * target() const { return target_state; }
|
||||
|
||||
//! \~english Adds guard function to transition
|
||||
//! \~russian Добавляет сторожевую функцию к переходу
|
||||
template<typename R, typename... Args>
|
||||
PITransitionBase * addGuard(std::function<R(Args...)> f) {
|
||||
static_assert(std::is_same<R, bool>::value, "guard function should return bool!");
|
||||
@@ -54,11 +64,15 @@ public:
|
||||
return this;
|
||||
}
|
||||
|
||||
//! \~english Adds guard function to transition (callable)
|
||||
//! \~russian Добавляет сторожевую функцию к переходу (callable)
|
||||
template<typename L>
|
||||
PITransitionBase * addGuard(L f) {
|
||||
return addGuard(toStdFunction(f));
|
||||
}
|
||||
|
||||
//! \~english Tests guard function with arguments
|
||||
//! \~russian Тестирует сторожевую функцию с аргументами
|
||||
template<typename... Args>
|
||||
bool testGuard(Args... args) {
|
||||
if (!guard) return true;
|
||||
@@ -69,13 +83,25 @@ public:
|
||||
return reinterpret_cast<PIStateMachineHelpers::Function<Args...> *>(guard)->func(args...);
|
||||
}
|
||||
|
||||
//! \~english Adds action to transition
|
||||
//! \~russian Добавляет действие к переходу
|
||||
PITransitionBase * addAction(std::function<void()> a);
|
||||
|
||||
//! \~english Executes transition action
|
||||
//! \~russian Выполняет действие перехода
|
||||
void makeAction();
|
||||
|
||||
//! \~english Triggers transition
|
||||
//! \~russian Запускает переход
|
||||
void trigger();
|
||||
|
||||
protected:
|
||||
//! \~english Called when transition becomes enabled
|
||||
//! \~russian Вызывается когда переход становится доступным
|
||||
virtual void enabled() {}
|
||||
|
||||
//! \~english Called when transition becomes disabled
|
||||
//! \~russian Вызывается когда переход становится недоступным
|
||||
virtual void disabled() {}
|
||||
|
||||
int eventID = 0;
|
||||
@@ -86,8 +112,12 @@ protected:
|
||||
};
|
||||
|
||||
|
||||
//! \~english Timeout transition
|
||||
//! \~russian Переход по таймауту
|
||||
class PIP_EXPORT PITransitionTimeout: public PITransitionBase {
|
||||
public:
|
||||
//! \~english Creates timeout transition
|
||||
//! \~russian Создает переход по таймауту
|
||||
PITransitionTimeout(PIStateBase * source, PIStateBase * target, PISystemTime timeout);
|
||||
~PITransitionTimeout();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user