CellModules
main.cpp
Go to the documentation of this file.
1
#include <
mecacell/mecacell.h
>
2
// #include <mecacellviewer/viewer.h>
3
#include "
scenarios/Scenario.hpp
"
4
#include "../modules/extraModules/sql/include/pluginSQL/PluginSQL.hpp"
5
#include <fstream>
6
#include <csignal>
7
8
using namespace
std
;
9
10
nlohmann::json
loadJsonConfig
(
const
string
&inputFileName) {
11
nlohmann::json
config;
12
ifstream i(inputFileName,ifstream::in);
13
i >> config;
14
i.close();
15
return
config;
16
}
17
static
Scenario
*
scenario_ptr
=
nullptr
;
18
void
signal_handler
(
int
signum) {
19
std::cerr
<<
"Interrupt signal ("
<< signum <<
") received.\n"
;
20
scenario_ptr
->
showBenchmarksSummaries
();
21
std::exit(signum);
22
}
23
24
int
main
(
int
argc,
char
*argv[]) {
25
std::signal(SIGTERM,
signal_handler
);
26
std::signal(SIGINT,
signal_handler
);
27
28
string
configPath = argc > 1 ? argv[1] :
"../config/viewer.json"
;
29
nlohmann::json
configuration =
loadJsonConfig
(configPath);
30
31
Scenario
scenario;
32
scenario_ptr
= &scenario;
33
scenario.
getWorld
().
benchmark
=
true
;
34
35
PluginSQL::PluginSQL<Cell>
pluginSQL(configuration[
"main"
],
true
);
36
scenario.
getWorld
().registerPlugin(pluginSQL);
37
38
scenario.
init
(configuration);
39
40
while
(!scenario.
stop
()){
41
scenario.
loop
();
42
}
43
scenario.
showBenchmarksSummaries
();
44
return
0;
45
46
// MecacellViewer::Viewer<Scenario> viewer(scenario);
47
// return viewer.exec();
48
}
Scenario.hpp
Defines the Scenario class for managing the simulation scenario.
MecaCell::World::benchmark
bool benchmark
Definition:
world.hpp:93
PluginSQL::PluginSQL
Definition:
PluginSQL.hpp:13
Scenario
Manages the simulation scenario.
Definition:
Scenario.hpp:24
Scenario::getWorld
World & getWorld()
Gets the world of the scenario.
Definition:
Scenario.hpp:53
Scenario::init
void init(nlohmann::json config)
Initializes the scenario with a configuration.
Definition:
Scenario.hpp:162
Scenario::loop
void loop()
Runs the main loop of the scenario.
Definition:
Scenario.hpp:176
Scenario::showBenchmarksSummaries
void showBenchmarksSummaries() const
Definition:
Scenario.hpp:183
Scenario::stop
bool stop()
Checks if the scenario should stop.
Definition:
Scenario.hpp:197
nlohmann::basic_json
a class to store JSON values
Definition:
json.hpp:12931
mecacell.h
std
Provides common mathematical functions and vector operations.
Definition:
std.hpp:4
std::cerr
iostream cerr
Standard error stream.
Definition:
std.hpp:315
main
int main(int argc, char *argv[])
Definition:
main.cpp:24
loadJsonConfig
nlohmann::json loadJsonConfig(const string &inputFileName)
Definition:
main.cpp:10
scenario_ptr
static Scenario * scenario_ptr
Definition:
main.cpp:17
signal_handler
void signal_handler(int signum)
Definition:
main.cpp:18
src
main.cpp
Generated by
1.9.4