state_machine_cpp
builder_impl_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_IMPL_TRANSITIONS_H
6 #define STATE_MACHINE_CPP_BUILDER_IMPL_TRANSITIONS_H
7 
8 #include "builder_transitions.h"
9 #include "../states/state_any.h"
10 #include "../states/state_instance.h"
11 #include <list>
12 #include <functional>
13 
15  class Instance;
16  namespace Impl::Build {
17  class Transitions;
18  }
19 }
20 
22 
23  // HANDLER CREATORS
24  std::function<int(Context&)> create_parallelized_handler(const State::Instance &t_initial_state,
25  const std::vector<State::Instance>& t_next_states,
26  const State::Any &t_final_state);
27  std::function<int(Context&)> create_direct_handler(const State::Instance &t_initial_state,
28  Transition::TrivialHandler *t_handler);
29  std::function<int(Context&)> create_conditional_handler(const State::Instance &t_initial_state,
31 
32  std::function<int(Context&)> wrap_with_logs(const State::Instance& t_initial_state,
33  std::function<int(Context&)>&& t_function);
34 
35  // TRANSITION CREATORS
36  void create_or_override(bool t_is_override,
37  const State::Any &t_initial_state,
38  const State::Any &t_next_state,
39  Transition::TrivialHandler *t_handler,
40  std::string&& t_description) override;
41  void create_or_override_if(bool t_is_override,
42  const State::Any &t_initial_state,
43  const State::Any &t_if_true,
44  const State::Any &t_else,
46  std::string&& t_description) override;
47  void create_or_override_parallelized(bool t_is_override,
48  const State::Any &t_initial_state,
49  std::initializer_list<State::Any> t_next_states,
50  const State::Any &t_final_state,
51  std::string&& t_description) override;
52 
53 public:
54  Transitions(Algorithm::Instance& t_destination,
56  Algorithm::Mode t_build_mode);
57 
58  void remove(const State::Any &t_state) override;
59  void declare_as_final(const State::Any &t_state) override;
60 };
61 
62 
63 #endif //STATE_MACHINE_CPP_BUILDER_IMPL_TRANSITIONS_H
state_machine_cpp::Algorithm::Mode
Mode
Definition: builder_types.h:9
state_machine_cpp::Algorithm::Impl::Build::Transitions::Transitions
Transitions(Algorithm::Instance &t_destination, const state_machine_cpp::Algorithm::Builder::Layers *t_layer, Algorithm::Mode t_build_mode)
state_machine_cpp::Algorithm::Impl::Build::Transitions::remove
void remove(const State::Any &t_state) override
state_machine_cpp::Transition::TrivialHandler
void(Context &) TrivialHandler
Definition: transition_handlers.h:14
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
builder_transitions.h
state_machine_cpp::State::Instance
Definition: state_instance.h:23
state_machine_cpp::Algorithm::Impl::Build::Transitions
Definition: builder_impl_transitions.h:21
state_machine_cpp::Algorithm
Definition: algorithm.h:14
state_machine_cpp::Algorithm::Builder::Transitions
Definition: builder_transitions.h:11
state_machine_cpp::Transition::ConditionalHandler
bool(const Context &) ConditionalHandler
Definition: transition_handlers.h:15
state_machine_cpp::Context
Definition: context.h:25
state_machine_cpp::Algorithm::Impl::Build::Transitions::declare_as_final
void declare_as_final(const State::Any &t_state) override