state_machine_cpp
builder.h
Go to the documentation of this file.
1 //
2 // Created by henri on 21/04/21.
3 //
4 
5 #ifndef STATE_MACHINE_CPP_BUILDER_H
6 #define STATE_MACHINE_CPP_BUILDER_H
7 
8 #include <iostream>
10 #include "builder/builder_types.h"
11 
13  class Builder;
14  class Instance;
15  template<class T> void build(Algorithm::Instance& t_destination, Algorithm::Mode t_build_mode = Algorithm::Mode::Release);
16 }
17 
19 public:
20  class States;
21  class Transitions;
22  class Layers;
23 
24  template<class T> friend void ::state_machine_cpp::Algorithm::build(
25  Algorithm::Instance& t_destination,
26  Algorithm::Mode t_build_mode
27  );
28 
29  virtual void build(States& states, Transitions& transitions, Layers& layers) = 0;
30 protected:
31  template<class T> static void import(States& states, Transitions& transitions, Layers& layers);
32 private:
33  class Indirection;
34 };
35 
36 template<class T>
38  T builder;
39  builder.build(states, transitions, layers);
40 }
41 
42 #endif //STATE_MACHINE_CPP_BUILDER_H
state_machine_cpp::Algorithm::Builder::import
static void import(States &states, Transitions &transitions, Layers &layers)
Definition: builder.h:37
state_machine_cpp::Algorithm::Mode
Mode
Definition: builder_types.h:9
state_instance.h
state_machine_cpp::Algorithm::Builder::Layers
Definition: builder_layers.h:10
state_machine_cpp::Algorithm::Mode::Release
@ Release
builder_types.h
state_machine_cpp::Algorithm::Instance
Definition: algorithm.h:23
state_machine_cpp::Algorithm::Builder::States
Definition: builder_states.h:10
state_machine_cpp::Algorithm
Definition: algorithm.h:14
state_machine_cpp::Algorithm::Builder
Definition: builder.h:18
state_machine_cpp::Algorithm::Builder::build
virtual void build(States &states, Transitions &transitions, Layers &layers)=0
state_machine_cpp::Algorithm::Builder::Transitions
Definition: builder_transitions.h:11
state_machine_cpp::Algorithm::build
void build(Algorithm::Instance &t_destination, Algorithm::Mode t_build_mode=Algorithm::Mode::Release)
Definition: build.h:51
state_machine_cpp::Algorithm::Builder::Indirection
Definition: builder_indirection.h:13