Change the header system
DORiE has a central header system, that is, all headers are included in one file
dorie.hh. Its use is quite convenient when it is needed to use all functionalities of DORiE, however, that is not always the case. An example of this is the
impl/ folder where we create a library with instances of
simulation objects: since every header is not independent, it's not enough to call
simulation.hh and we are forced to have to call
dorie.hh. This is counter-productive for the library because it also creates the object
SimulationFactory which at the same time creates many instantiations of
Simulation. Because we want an individual instantiation of
.cc file we are forced to exclude
SimulationFactory somehow, leading to awkward CPP directives:
#ifndef DUNE_DORIE_SIMULATION_FACTORY_HH #define DUNE_DORIE_SIMULATION_FACTORY_HH #endif
Decentralize the header system making every header independent and self-sufficient from others.
How to test the implementation?
#include <dune/dorie/dorie.hh> for
#include <dune/dorie/interface/simulation.hh> in every file in
impl would be enough.