roadrunner  2.6.0
Fast simulator for SBML models
Registrable.h
1 //
2 // Created by Ciaran Welsh on 14/06/2021.
3 //
4 
5 #ifndef ROADRUNNER_REGISTRABLE_H
6 #define ROADRUNNER_REGISTRABLE_H
7 
8 #include "rrExporter.h"
9 #include <iostream>
10 #include <vector>
11 
12 namespace rr {
13 
14  // fwd
15  class ExecutableModel;
16  class Solver;
17 
23  class RR_DECLSPEC Registrable {
24 
25  public:
26  virtual ~Registrable() = default;
27 
32  virtual std::string getName() const = 0;
33 
38  virtual std::string getDescription() const = 0;
39 
44  virtual std::string getHint() const = 0;
45 
52  virtual Solver *construct(ExecutableModel *model) const = 0;
53  };
54 
55  typedef std::vector<Registrable *> RegistrableVector;
56 
57 }
58 
59 
60 #endif //ROADRUNNER_REGISTRABLE_H
Base class for all code generation systems; allows compiling and evaluating the model.
Definition: rrExecutableModel.h:118
Handles constructing a solver and contains meta information about it.
Definition: Registrable.h:23
virtual std::string getHint() const =0
Gets the hint associated with this Solver type.
virtual Solver * construct(ExecutableModel *model) const =0
Constructs a new Solver of a given type.
virtual std::string getName() const =0
Gets the name associated with this Solver type.
virtual std::string getDescription() const =0
Gets the description associated with this Solver type.
Base class for all integrators and steady state solvers.
Definition: Solver.h:39