FSMgine
High-performance finite state machine library for C++17 with single-threaded and multi-threaded variants
Loading...
Searching...
No Matches
fsmgine::TransitionBuilder< TEvent > Class Template Reference

Builder for creating transitions with a fluent interface. More...

#include <FSMBuilder.hpp>

Public Types

using Predicate = typename FSM< TEvent >::Predicate
 Type alias for transition guard predicates.
 
using Action = typename FSM< TEvent >::Action
 Type alias for transition actions.
 

Public Member Functions

 TransitionBuilder (FSM< TEvent > &fsm, std::string_view from_state)
 Constructs a transition builder for a specific source state.
 
 TransitionBuilder (const TransitionBuilder &)=delete
 
TransitionBuilderoperator= (const TransitionBuilder &)=delete
 
 TransitionBuilder (TransitionBuilder &&)=default
 Move constructor (defaulted)
 
TransitionBuilderoperator= (TransitionBuilder &&)=default
 Move assignment operator (defaulted)
 
TransitionBuilderpredicate (Predicate pred)
 Adds a predicate (guard condition) to the transition.
 
TransitionBuilderaction (Action action)
 Adds an action to execute during the transition.
 
void to (const std::string &state)
 Completes the transition by specifying the target state.
 

Detailed Description

template<typename TEvent>
class fsmgine::TransitionBuilder< TEvent >

Builder for creating transitions with a fluent interface.

Template Parameters
TEventThe event type used for transitions

TransitionBuilder provides a fluent API for defining transitions between states. It supports adding predicates (guards) and actions to transitions.

Note
TransitionBuilder instances are created by FSMBuilder::from() and should not be constructed directly.
Example
fsm.get_builder()
.from("StateA")
.predicate([](const Event& e) { return e.type == "trigger"; })
.action([](const Event& e) { std::cout << "Transitioning!"; })
.to("StateB");
TransitionBuilder & action(Action action)
Adds an action to execute during the transition.
Definition FSMBuilder.hpp:166
void to(const std::string &state)
Completes the transition by specifying the target state.
Definition FSMBuilder.hpp:172
Main namespace for the FSMgine library.
Definition FSM.hpp:23

Constructor & Destructor Documentation

◆ TransitionBuilder()

template<typename TEvent >
fsmgine::TransitionBuilder< TEvent >::TransitionBuilder ( FSM< TEvent > &  fsm,
std::string_view  from_state 
)
explicit

Constructs a transition builder for a specific source state.

Parameters
fsmThe FSM this transition belongs to
from_stateThe source state for this transition

Member Function Documentation

◆ action()

template<typename TEvent >
TransitionBuilder< TEvent > & fsmgine::TransitionBuilder< TEvent >::action ( Action  action)

Adds an action to execute during the transition.

Parameters
actionA function to execute when this transition occurs
Returns
Reference to this builder for method chaining
Note
Multiple actions can be added; they execute in the order added

◆ predicate()

template<typename TEvent >
TransitionBuilder< TEvent > & fsmgine::TransitionBuilder< TEvent >::predicate ( Predicate  pred)

Adds a predicate (guard condition) to the transition.

Parameters
predA function that returns true if the transition should occur
Returns
Reference to this builder for method chaining
Note
Multiple predicates can be added; all must pass for the transition to occur

◆ to()

template<typename TEvent >
void fsmgine::TransitionBuilder< TEvent >::to ( const std::string &  state)

Completes the transition by specifying the target state.

Parameters
stateThe target state for this transition
Note
This method finalizes and adds the transition to the FSM

The documentation for this class was generated from the following files: