Blue Brain BioExplorer
EngineFactory.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2015-2024, EPFL/Blue Brain Project
3  *
4  * The Blue Brain BioExplorer is a tool for scientists to extract and analyse
5  * scientific data from visualization
6  *
7  * This file is part of Blue Brain BioExplorer <https://github.com/BlueBrain/BioExplorer>
8  *
9  * This library is free software; you can redistribute it and/or modify it under
10  * the terms of the GNU Lesser General Public License version 3.0 as published
11  * by the Free Software Foundation.
12  *
13  * This library is distributed in the hope that it will be useful, but WITHOUT
14  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
15  * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
16  * details.
17  *
18  * You should have received a copy of the GNU Lesser General Public License
19  * along with this library; if not, write to the Free Software Foundation, Inc.,
20  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
21  */
22 
23 #pragma once
24 
27 
28 namespace core
29 {
37 {
38 public:
46  EngineFactory(int argc, const char** argv, ParametersManager& parametersManager);
47 
55  Engine* create(const std::string& name);
56 
57 private:
58  int _argc;
59  const char** _argv;
60  ParametersManager& _parametersManager;
61  std::vector<DynamicLib> _libs;
62  std::map<std::string, std::unique_ptr<Engine>> _engines;
63 
64  Engine* _loadEngine(const std::string& name, int argc, const char* argv[]);
65 };
66 } // namespace core
EngineFactory(int argc, const char **argv, ParametersManager &parametersManager)
Constructor.
Engine * create(const std::string &name)
Create an instance of the engine corresponding the given name. If the name is incorrect,...
Provides an abstract implementation of a ray-tracing engine.
Definition: Engine.h:59