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>
9
#include "
states/state_instance.h
"
10
#include "
builder/builder_types.h
"
11
12
namespace
state_machine_cpp::Algorithm
{
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
18
class
state_machine_cpp::Algorithm::Builder
{
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>
37
void
state_machine_cpp::Algorithm::Builder::import
(
Algorithm::Builder::States
&states,
Algorithm::Builder::Transitions
&transitions,
Layers
& layers) {
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
state_machine_cpp
include
builder
builder.h
Generated by
1.8.17