Program Listing for File SpeciesAbundancesHandler.h¶
↰ Return to documentation for file (necsim/SpeciesAbundancesHandler.h
)
// This file is part of necsim project which is released under MIT license.
// See file **LICENSE.txt** or visit https://opensource.org/licenses/MIT) for full license details.
#ifndef SPECIES_ABUNDANCES_H
#define SPECIES_ABUNDANCES_H
#include <vector>
#include <map>
#include <memory>
#include "RNGController.h"
using namespace std;
using namespace random_numbers;
namespace necsim
{
class SpeciesAbundancesHandler
{
protected:
shared_ptr<RNGController> random;
unsigned long max_species_id;
unsigned long metacommunity_size;
unsigned long local_community_size;
long double speciation_rate;
public:
SpeciesAbundancesHandler();
virtual ~SpeciesAbundancesHandler() = default;;
virtual void setup(shared_ptr<RNGController> random, const unsigned long &metacommunity_size,
const long double &speciation_rate, const unsigned long &local_community_size);
virtual unsigned long getRandomSpeciesID() = 0;
virtual void setAbundanceList(const shared_ptr<map<unsigned long, unsigned long>> &abundance_list_in);
virtual void setAbundanceList(shared_ptr<vector<unsigned long>> abundance_list_in);
};
}
#endif //SPECIES_ABUNDANCES_H