Stride Reference Manual  - generated for commit 9643b11
AbstractPopBuilder.h
Go to the documentation of this file.
1 /*
2  * This is free software: you can redistribute it and/or modify it
3  * under the terms of the GNU General Public License as published by
4  * the Free Software Foundation, either version 3 of the License, or
5  * any later version.
6  * The software is distributed in the hope that it will be useful,
7  * but WITHOUT ANY WARRANTY; without even the implied warranty of
8  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
9  * GNU General Public License for more details.
10  * You should have received a copy of the GNU General Public License
11  * along with the software. If not, see <http://www.gnu.org/licenses/>.
12  *
13  * Copyright 2017, 2018 Kuylen E, Willem L, Broeckhove J
14  * Copyright 2018, 2019 Jan Broeckhove and Bistromatics group.
15  */
16 
22 #pragma once
23 
24 #include <boost/property_tree/ptree_fwd.hpp>
25 #include <memory>
26 #include <spdlog/logger.h>
27 
28 namespace stride {
29 
30 class Population;
31 namespace util {
32 class RnMan;
33 }
34 
39 {
40 public:
45  AbstractPopBuilder(const boost::property_tree::ptree& config, util::RnMan& rnMan,
46  std::shared_ptr<spdlog::logger> strideLogger = nullptr);
47 
49  virtual ~AbstractPopBuilder() = default;
50 
52  virtual std::shared_ptr<Population> Build(std::shared_ptr<Population> pop) = 0;
53 
54 protected:
55  const boost::property_tree::ptree& m_config;
57  std::shared_ptr<spdlog::logger> m_stride_logger;
58 };
59 
60 } // namespace stride
Base Class for PopBuilders.
util::RnMan & m_rn_man
Random number generation management.
std::shared_ptr< spdlog::logger > m_stride_logger
const boost::property_tree::ptree & m_config
Configuration property tree.
Namespace for the simulator and related classes.
Definition: Calendar.cpp:28