Loading [MathJax]/extensions/ams.js
ALMaSS  1.2 (after EcoStack, March 2024)
The Animal, Landscape and Man Simulation System
All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
PopulationManagerList Class Reference

A small class to hold the pointers to active population managers. More...

#include <PopulationManager.h>

Public Member Functions

 PopulationManagerList ()
 
void SetPopulation (std::shared_ptr< Population_Manager_Base > p_pm, int a_pt)
 
int GetPopulationManagerNum (int a_pt)
 Returns the number of population manager,. More...
 
Population_Manager_BaseGetPopulation (int a_pt, int a_index=0)
 
std::shared_ptr< Population_Manager_BaseGetPopulation_smart (int a_pt, int a_index=0)
 
int SupplyActivePopulationsCount ()
 returns the number of active populations O(1) More...
 

Protected Attributes

std::vector< std::shared_ptr< Population_Manager_Base > > m_populationlist [static_cast< int >(TOP_foobar)]
 
std::array< bool, TOP_foobarm_populationarray {false}
 

Detailed Description

A small class to hold the pointers to active population managers.

Constructor & Destructor Documentation

◆ PopulationManagerList()

PopulationManagerList::PopulationManagerList ( )
inline
948 {;}

Member Function Documentation

◆ GetPopulation()

Population_Manager_Base* PopulationManagerList::GetPopulation ( int  a_pt,
int  a_index = 0 
)
inline
962 { if( m_populationlist[a_pt].size()<1) return nullptr; return m_populationlist[a_pt][a_index].get(); }

References m_populationlist.

Referenced by Osmia_Population_Manager::Init(), and RunTheSim().

◆ GetPopulation_smart()

std::shared_ptr<Population_Manager_Base> PopulationManagerList::GetPopulation_smart ( int  a_pt,
int  a_index = 0 
)
inline
966 { if( m_populationlist[a_pt].size()<1) return nullptr; return m_populationlist[a_pt][a_index]; }

References m_populationlist.

Referenced by SetOutputFiles().

◆ GetPopulationManagerNum()

int PopulationManagerList::GetPopulationManagerNum ( int  a_pt)
inline

Returns the number of population manager,.

957 { return static_cast<int>(m_populationlist[a_pt].size()); }

References m_populationlist.

Referenced by RunTheSim().

◆ SetPopulation()

void PopulationManagerList::SetPopulation ( std::shared_ptr< Population_Manager_Base p_pm,
int  a_pt 
)
inline
949  {
950  m_populationlist[a_pt].push_back(p_pm);
951  if (p_pm != nullptr) m_populationarray.at(a_pt) = true;
952  else m_populationarray.at(a_pt) = false;
953  }

References m_populationarray, and m_populationlist.

Referenced by CreatePopulationManager().

◆ SupplyActivePopulationsCount()

int PopulationManagerList::SupplyActivePopulationsCount ( )

returns the number of active populations O(1)

1689  {
1690  return std::accumulate(m_populationarray.begin(), m_populationarray.end(), 0);
1691 }

References m_populationarray.

Member Data Documentation

◆ m_populationarray

std::array<bool, TOP_foobar> PopulationManagerList::m_populationarray {false}
protected

◆ m_populationlist

std::vector<std::shared_ptr<Population_Manager_Base> > PopulationManagerList::m_populationlist[static_cast< int >(TOP_foobar)]
protected

The documentation for this class was generated from the following files:
PopulationManagerList::m_populationlist
std::vector< std::shared_ptr< Population_Manager_Base > > m_populationlist[static_cast< int >(TOP_foobar)]
Definition: PopulationManager.h:971
PopulationManagerList::m_populationarray
std::array< bool, TOP_foobar > m_populationarray
Definition: PopulationManager.h:972