state_machine_cpp
builder_transitions.h
Go to the documentation of this file.
1 //
2 // Created by henri on 27/04/21.
3 //
4 
5 #ifndef STATE_MACHINE_CPP_BUILDER_TRANSITIONS_H
6 #define STATE_MACHINE_CPP_BUILDER_TRANSITIONS_H
7 
8 #include "builder_indirection.h"
10 
12 protected:
13  virtual void create_or_override(bool t_is_override, const State::Any& t_initial_state, const State::Any& t_next_state, Transition::TrivialHandler* t_handler, std::string&& t_description) = 0;
14  virtual void create_or_override_if(bool t_is_override, const State::Any& t_initial_state, const State::Any& t_if_true, const State::Any& t_else, Transition::ConditionalHandler* t_handler, std::string&& t_description) = 0;
15  virtual void create_or_override_parallelized(bool t_is_override, const State::Any &t_initial_state, std::initializer_list<State::Any> t_next_states, const State::Any &t_final_state, std::string&& t_description) = 0;
16 public:
17  explicit Transitions(Algorithm::Instance& t_destination, const Layers* t_layer, Algorithm::Mode t_build_mode);
18 
19  // Trivial transitions
20  void create(const State::Any& t_initial_state, const State::Any& t_next_state, Transition::TrivialHandler& t_handler, std::string t_description = "");
21  void create(const State::Any& t_initial_state, const State::Any& t_next_state, std::string t_description = "");
22  void create_virtual(const State::Any& t_initial_state, const State::Any& t_next_state, std::string t_description = "");
23  void override(const State::Any& t_initial_state, const State::Any& t_next_state, Transition::TrivialHandler& t_handler, std::string t_description = "");
24  void override(const State::Any& t_initial_state, const State::Any& t_next_state, std::string t_description = "");
25 
26  // Conditional transitions
27  void create_if(const State::Any& t_initial_state, const State::Any& t_if_true, const State::Any& t_else, Transition::ConditionalHandler& t_handler, std::string t_description = "");
28  void create_if_virtual(const State::Any& t_initial_state, const State::Any& t_if_true, const State::Any& t_else, std::string t_description = "");
29  void override_if(const State::Any& t_initial_state, const State::Any& t_if_true, const State::Any& t_else, Transition::ConditionalHandler& t_handler, std::string t_description = "");
30 
31  // Parallel transitions
32  void create_parallelized(const State::Any& t_initial_state, std::initializer_list<State::Any> t_next_states, const State::Any& t_final_state, std::string t_description = "");
33  void override_parallelized(const State::Any& t_initial_state, std::initializer_list<State::Any> t_next_states, const State::Any& t_final_state, std::string t_description = "");
34 
35  // All
36  virtual void remove(const State::Any& t_state) = 0;
37  virtual void declare_as_final(const State::Any& t_state) = 0;
38 };
39 
40 
41 #endif //STATE_MACHINE_CPP_BUILDER_TRANSITIONS_H
state_machine_cpp::Algorithm::Mode
Mode
Definition: builder_types.h:9
state_machine_cpp::Algorithm::Builder::Transitions::create_if_virtual
void create_if_virtual(const State::Any &t_initial_state, const State::Any &t_if_true, const State::Any &t_else, std::string t_description="")
state_machine_cpp::Algorithm::Builder::Transitions::create
void create(const State::Any &t_initial_state, const State::Any &t_next_state, Transition::TrivialHandler &t_handler, std::string t_description="")
state_machine_cpp::Algorithm::Builder::Transitions::create_if
void create_if(const State::Any &t_initial_state, const State::Any &t_if_true, const State::Any &t_else, Transition::ConditionalHandler &t_handler, std::string t_description="")
state_machine_cpp::Transition::TrivialHandler
void(Context &) TrivialHandler
Definition: transition_handlers.h:14
state_machine_cpp::Algorithm::Builder::Transitions::override_if
void override_if(const State::Any &t_initial_state, const State::Any &t_if_true, const State::Any &t_else, Transition::ConditionalHandler &t_handler, std::string t_description="")
state_machine_cpp::State::Any
Definition: state_any.h:19
state_machine_cpp::Algorithm::Builder::Layers
Definition: builder_layers.h:10
state_machine_cpp::Algorithm::Instance
Definition: algorithm.h:23
state_machine_cpp::Algorithm::Builder::Transitions::override_parallelized
void override_parallelized(const State::Any &t_initial_state, std::initializer_list< State::Any > t_next_states, const State::Any &t_final_state, std::string t_description="")
state_machine_cpp::Algorithm::Builder::Transitions::create_or_override
virtual void create_or_override(bool t_is_override, const State::Any &t_initial_state, const State::Any &t_next_state, Transition::TrivialHandler *t_handler, std::string &&t_description)=0
state_machine_cpp::Algorithm::Builder::Transitions::create_virtual
void create_virtual(const State::Any &t_initial_state, const State::Any &t_next_state, std::string t_description="")
transition_handlers.h
state_machine_cpp::Algorithm::Builder::Transitions::create_or_override_if
virtual void create_or_override_if(bool t_is_override, const State::Any &t_initial_state, const State::Any &t_if_true, const State::Any &t_else, Transition::ConditionalHandler *t_handler, std::string &&t_description)=0
state_machine_cpp::Algorithm::Builder::Transitions
Definition: builder_transitions.h:11
state_machine_cpp::Algorithm::Builder::Transitions::create_or_override_parallelized
virtual void create_or_override_parallelized(bool t_is_override, const State::Any &t_initial_state, std::initializer_list< State::Any > t_next_states, const State::Any &t_final_state, std::string &&t_description)=0
state_machine_cpp::Algorithm::Builder::Transitions::declare_as_final
virtual void declare_as_final(const State::Any &t_state)=0
state_machine_cpp::Algorithm::Builder::Transitions::remove
virtual void remove(const State::Any &t_state)=0
state_machine_cpp::Transition::ConditionalHandler
bool(const Context &) ConditionalHandler
Definition: transition_handlers.h:15
state_machine_cpp::Algorithm::Builder::Transitions::create_parallelized
void create_parallelized(const State::Any &t_initial_state, std::initializer_list< State::Any > t_next_states, const State::Any &t_final_state, std::string t_description="")
state_machine_cpp::Algorithm::Builder::Transitions::Transitions
Transitions(Algorithm::Instance &t_destination, const Layers *t_layer, Algorithm::Mode t_build_mode)
state_machine_cpp::Algorithm::Builder::Indirection
Definition: builder_indirection.h:13
builder_indirection.h