PIP 5.6.1
Platform-Independent Primitives
Открытые члены | Полный список членов класса
Класс PIStateMachine

Корневой объект, который владеет и запускает иерархическую машину состояний. Подробнее...

#include <pistatemachine.h>

Граф наследования:PIStateMachine:
Inheritance graph
[см. легенду]

Открытые члены

 PIStateMachine (const PIString &n={})
 Создает машину состояний с необязательным именем.
 
bool start ()
 Запускает машину из ее начальной активной конфигурации.
 
bool isRunning () const
 Возвращает true, пока машина запущена.
 
void setOnFinish (std::function< void()> f)
 Задает callback-функцию, вызываемую при завершении машины.
 
template<typename... Args>
bool postEvent (int event_id, Args... args)
 Посылает событие в активные состояния и запускает первый подходящий переход.
 
- Открытые члены унаследованные от PIStateBase
 PIStateBase (const PIString &n={})
 Создает состояние с необязательным именем для диагностики.
 
virtual ~PIStateBase ()
 Уничтожает состояние вместе с принадлежащими дочерними состояниями и переходами.
 
virtual void onEnter ()
 Вызывается при активации состояния.
 
virtual void onExit ()
 Вызывается при деактивации состояния.
 
virtual void onFinish ()
 Вызывается, когда финальное дочернее состояние завершает это состояние.
 
PIStateMachinemachine () const
 Возвращает корневую машину состояний.
 
PIStateBaseparent () const
 Возвращает родительское состояние.
 
PIStateBaseactiveChild () const
 Возвращает активное дочернее состояние непараллельного составного состояния.
 
PIVector< PIStateBase * > activeChildren () const
 Возвращает активные дочерние состояния.
 
PIVector< PIStateBase * > activeAtomics () const
 Возвращает активные атомарные листовые состояния под этим состоянием.
 
void addState (PIStateBase *s)
 Добавляет дочернее состояние, которым владеет это состояние.
 
void addStates (PIVector< PIStateBase * > s)
 Добавляет несколько дочерних состояний, которыми владеет это состояние.
 
void setInitialState (PIStateBase *s)
 Задает начальное дочернее состояние для непараллельного составного состояния.
 
PITransitionBaseaddTransition (PIStateBase *target, int event_id)
 Добавляет переход по событию из этого состояния в target.
 
PITransitionTimeoutaddTimeoutTransition (PIStateBase *target, PISystemTime timeout)
 Добавляет переход по таймауту, который срабатывает пока это состояние активно.
 
void setParallel (bool yes)
 Включает или выключает параллельную активацию дочерних состояний.
 
const PIStringgetName () const
 Возвращает имя состояния.
 
bool isStateMachine () const
 Возвращает true для корневого объекта машины состояний.
 
bool isActive () const
 Возвращает true, если состояние сейчас активно.
 
bool isParallel () const
 Возвращает true, если дочерние состояния активируются параллельно.
 
bool isFinal () const
 Возвращает true, если состояние помечено как финальное.
 
bool isAtomic () const
 Возвращает true, если у состояния нет дочерних состояний.
 
bool isCompound () const
 Возвращает true, если состояние содержит дочерние состояния.
 
const PIVector< PIStateBase * > & getChildren () const
 Возвращает прямые дочерние состояния.
 
const PIVector< PITransitionBase * > & getTransitions () const
 Возвращает исходящие переходы, принадлежащие этому состоянию.
 
void print (PIString prefix={})
 Печатает дерево состояний и активные ветви в piCout.
 
PIVector< PIStateBase * > gatherStates ()
 Возвращает это состояние и все дочерние состояния.
 

Дополнительные унаследованные члены

Подробное описание

Корневой объект, который владеет и запускает иерархическую машину состояний.