bpp-phyl3  3.0.0
SequenceSimulator.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: The Bio++ Development Group
2 //
3 // SPDX-License-Identifier: CECILL-2.1
4 
5 #ifndef BPP_PHYL_SIMULATION_SEQUENCESIMULATOR_H
6 #define BPP_PHYL_SIMULATION_SEQUENCESIMULATOR_H
7 
8 
9 // From bpp-core:
10 #include <Bpp/Clonable.h>
11 
12 // From bpp-seq:
14 
15 #include "SiteSimulator.h"
16 
17 namespace bpp
18 {
24  public virtual Clonable
25 {
26 public:
29 
30  SequenceSimulatorInterface* clone() const override = 0;
31 
32 public:
33  virtual std::unique_ptr<SiteContainerInterface> simulate(size_t numberOfSites) const = 0;
34 
35  virtual const SiteSimulatorInterface& siteSimulator(size_t pos) const = 0;
36 
37  virtual std::vector<std::string> getSequenceNames() const = 0;
38 
39  virtual std::shared_ptr<const Alphabet> getAlphabet() const = 0;
40 
41  virtual const Alphabet& alphabet() const = 0;
42 
43  virtual void outputInternalSequences(bool inter) = 0;
44 };
45 } // end of namespace bpp.
46 #endif // BPP_PHYL_SIMULATION_SEQUENCESIMULATOR_H
The SequenceSimulator interface. SequenceSimulator classes can simulate whole datasets.
virtual const Alphabet & alphabet() const =0
virtual std::vector< std::string > getSequenceNames() const =0
virtual std::unique_ptr< SiteContainerInterface > simulate(size_t numberOfSites) const =0
virtual void outputInternalSequences(bool inter)=0
SequenceSimulatorInterface * clone() const override=0
virtual const SiteSimulatorInterface & siteSimulator(size_t pos) const =0
virtual std::shared_ptr< const Alphabet > getAlphabet() const =0
The SiteSimulator interface. SiteSimulator classes can simulate single sites.
Definition: SiteSimulator.h:24
Defines the basic types of data flow nodes.