36 #ifndef _SIMULATOR_HPP_
37 #define _SIMULATOR_HPP_
40 #include "PopulationConfigGenerator.hpp"
41 #include "PopulationData.hpp"
42 #include "MutationGenerator.hpp"
43 #include "QuantitativeTrait.hpp"
44 #include "Reporter.hpp"
45 #include "VariantIndicator.hpp"
52 class VariantIndicator;
53 typedef shared_ptr<VariantIndicator> VariantIndicatorPtr;
55 typedef shared_ptr<Reporter> ReporterPtr;
56 typedef std::vector<ReporterPtr> ReporterPtrs;
94 std::string output_directory;
99 PopulationConfigGeneratorPtr population_config_generator;
100 RecombinationPositionGeneratorPtrs recombination_position_generators;
101 VariantIndicatorPtr variant_indicator;
102 QuantitativeTraitPtrs quantitative_traits;
103 MutationGeneratorPtr mutation_generator;
104 ReporterPtrs reporters;
110 virtual std::string class_name()
const {
return "SimulatorConfig";}
111 virtual Parameters parameters()
const;
112 virtual void configure(
const Parameters& parameters,
const Registry& registry);
113 void write_child_configurations(std::ostream& os, std::set<std::string>& ids_written)
const;
117 typedef shared_ptr<SimulatorConfig> SimulatorConfigPtr;
125 void simulate_single_generation();
134 size_t current_generation_index_;
135 PopulationPtrsPtr current_populations_;
136 PopulationDataPtrsPtr current_population_datas_;
141 typedef shared_ptr<Simulator> SimulatorPtr;
144 #endif // _SIMULATOR_HPP_