bpp-seq3  3.0.0
OSequence.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_SEQ_IO_OSEQUENCE_H
6 #define BPP_SEQ_IO_OSEQUENCE_H
7 
8 #include <Bpp/Exceptions.h>
9 
10 #include "../Container/SequenceContainer.h"
11 #include "../Container/SiteContainer.h"
12 #include "IoSequence.h"
13 
14 namespace bpp
15 {
21 class OSequence :
22  public virtual IOSequence
23 {
24 public:
25  OSequence() {}
26  virtual ~OSequence() {}
27 
28 public:
36  virtual void writeSequences(std::ostream& output, const SequenceContainerInterface& sc) const = 0;
37 
47  virtual void writeSequences(const std::string& path, const SequenceContainerInterface& sc, bool overwrite) const = 0;
48 };
49 
50 
56 class OAlignment :
57  public virtual IOSequence
58 {
59 public:
61  virtual ~OAlignment() {}
62 
63 public:
71  virtual void writeAlignment(std::ostream& output, const SiteContainerInterface& sc) const = 0;
72 
82  virtual void writeAlignment(const std::string& path, const SiteContainerInterface& sc, bool overwrite) const = 0;
83 };
84 
85 
93  public virtual IOProbabilisticSequence
94 {
95 public:
98 
99 public:
106  virtual void writeSequences(std::ostream& output, const ProbabilisticSequenceContainerInterface& sc) const = 0;
107 
116  virtual void writeSequences(const std::string& path, const ProbabilisticSequenceContainerInterface& sc, bool overwrite) const = 0;
117 };
118 
126  public virtual IOProbabilisticSequence
127 {
128 public:
131 
132 public:
139  virtual void writeAlignment(std::ostream& output, const ProbabilisticSiteContainerInterface& sc) const = 0;
140 
149  virtual void writeAlignment(const std::string& path, const ProbabilisticSiteContainerInterface& sc, bool overwrite) const = 0;
150 };
151 } // end of namespace bpp.
152 #endif // BPP_SEQ_IO_OSEQUENCE_H
The IOProbabislisticSequence interface.
Definition: IoSequence.h:38
The IOSequence interface.
Definition: IoSequence.h:23
The OAlignment interface.
Definition: OSequence.h:58
virtual ~OAlignment()
Definition: OSequence.h:61
virtual void writeAlignment(const std::string &path, const SiteContainerInterface &sc, bool overwrite) const =0
Write a container to a file.
virtual void writeAlignment(std::ostream &output, const SiteContainerInterface &sc) const =0
Write a container to a stream.
The OProbabilisticAlignment interface.
Definition: OSequence.h:127
virtual void writeAlignment(const std::string &path, const ProbabilisticSiteContainerInterface &sc, bool overwrite) const =0
Write a container to a file.
virtual void writeAlignment(std::ostream &output, const ProbabilisticSiteContainerInterface &sc) const =0
Write a container to a stream.
virtual ~OProbabilisticAlignment()
Definition: OSequence.h:130
The OProbabilisticSequence interface.
Definition: OSequence.h:94
virtual ~OProbabilisticSequence()
Definition: OSequence.h:97
virtual void writeSequences(std::ostream &output, const ProbabilisticSequenceContainerInterface &sc) const =0
Write a container to a stream.
virtual void writeSequences(const std::string &path, const ProbabilisticSequenceContainerInterface &sc, bool overwrite) const =0
Write a container to a file.
The OSequence interface.
Definition: OSequence.h:23
virtual void writeSequences(const std::string &path, const SequenceContainerInterface &sc, bool overwrite) const =0
Write a container to a file.
virtual void writeSequences(std::ostream &output, const SequenceContainerInterface &sc) const =0
Write a container to a stream.
virtual ~OSequence()
Definition: OSequence.h:26
The SequenceContainer interface.
This alphabet is used to deal NumericAlphabet.