5 #ifndef BPP_SEQ_CONTAINER_SITECONTAINER_H
6 #define BPP_SEQ_CONTAINER_SITECONTAINER_H
11 #include "../ProbabilisticSite.h"
25 template<
class SiteType,
class SequenceType,
class HashType>
46 virtual const SiteType&
site(
size_t sitePosition)
const override = 0;
56 virtual void setSite(
size_t sitePosition, std::unique_ptr<SiteType>&
site,
bool checkCoordinate =
true) = 0;
65 virtual void addSite(std::unique_ptr<SiteType>&
site,
bool checkCoordinate) = 0;
75 virtual void addSite(std::unique_ptr<SiteType>&
site,
size_t sitePosition,
bool checkCoordinate) = 0;
87 virtual std::unique_ptr<SiteType>
removeSite(
size_t sitePosition) = 0;
106 virtual void deleteSites(
size_t sitePosition,
size_t length)
override = 0;
The Container of Aligned Values interface.
The SequenceContainer interface.
The SiteContainer interface.
virtual void deleteSite(size_t sitePosition)=0
Delete a site from the container.
virtual ~TemplateSiteContainerInterface()
TemplateSiteContainerInterface()
virtual void setSite(size_t sitePosition, std::unique_ptr< SiteType > &site, bool checkCoordinate=true)=0
Set a site in the container.
virtual void addSite(std::unique_ptr< SiteType > &site, bool checkCoordinate)=0
Add a site in the container.
TemplateSiteContainerInterface< SiteType, SequenceType, HashType > * clone() const override=0
TemplateSiteContainerInterface< SiteType, SequenceType, HashType > * createEmptyContainer() const override=0
Return a copy of this container, but with no data inside.
virtual const SiteType & site(size_t sitePosition) const override=0
Get a site from the container.
virtual void deleteSites(size_t sitePosition, size_t length) override=0
Remove a continuous range of sites in the container.
virtual void reindexSites() override=0
Set all coordinate attributes.
virtual size_t getNumberOfSites() const override=0
Get the number of aligned positions in the container.
virtual void addSite(std::unique_ptr< SiteType > &site, size_t sitePosition, bool checkCoordinate)=0
Add a site in the container.
virtual std::unique_ptr< SiteType > removeSite(size_t sitePosition)=0
Remove a site from the container.
This alphabet is used to deal NumericAlphabet.