SORTIE Core C++ Documentation
Public Member Functions | Protected Attributes | List of all members
clBehaviorBase Class Reference

BehaviorBase - Version 2.0 This class acts as a virtual parent for all behavior classes. More...

#include <BehaviorBase.h>

Inheritance diagram for clBehaviorBase:
clWorkerBase clBoleVolumeCalculator clCarbonValueCalculator clClimateChange clClimateImporter clCompetitionHarvest clConditOmegaCalculator clCrownRadiusReporter clDensDepInfestation clDensitySeedSurvival clDetailedSubstrate clDimensionAnalysis clDisperseBase clDisturbance clEstablishment clFoliarChemistry clFuncResponseSeedPredation clGeneralizedHarvestRegime clGermination clGrowthBase clHarvestInterface clInsectInfestation clLightBase clLightFilter clMerchValueCalculator clMicroEstablishment clMortalityBase clNeighborhoodSeedPredation clOutput clPartitionedBiomass clPlant clQualityVigorClassifier clRandomBrowse clRandomSeedLogger clRipleysKCalculator clSeasonalWaterDeficit clSelectionHarvest clShortOutput clSnagDecomp clStateReporter clStochasticGapGrowth clStorm clStormDamageApplier clStormDirectKiller clStormKilledPartitionedBiomass clStormKiller clStormLight clSubstrate clSubstrateDepSeedSurvival clTreeAgeCalculator clTreeRemover clVolumeCalculator clWindstorm

Public Member Functions

virtual float GetBehaviorVersion ()
 Gets the behavior version number. More...
 
 clBehaviorBase (clSimManager *p_oSimManager)
 Constructor. More...
 
virtual ~clBehaviorBase ()
 Destructor. More...
 
virtual void Action ()
 This is the function which is called each timestep and performs the actual work of the behavior. More...
 
virtual short int ValidateVersionNumber (float fTestVersion)
 Makes sure that the version number of a file passed is between the minimum and current version numbers. More...
 
virtual void RegisterTreeDataMembers ()
 Registers tree data members. More...
 
virtual void SetSpeciesTypeCombos (short int iNumCombos, stcSpeciesTypeCombo *p_whatCombos)
 Sets the species/type combos for a behavior. More...
 
virtual void SetNameData (std::string sNameString)
 Sets the string for the parameter file behavior. More...
 
virtual short int GetNewTreeInts ()
 Gets the number of new tree integer data members this behavior wants to register. More...
 
virtual short int GetNewTreeFloats ()
 Gets the number of new tree float data members this behavior wants to register. More...
 
virtual short int GetNewTreeChars ()
 Gets the number of new tree character data members this behavior wants to register. More...
 
virtual short int GetNewTreeBools ()
 Gets the number of new tree bool data members this behavior wants to register. More...
 
virtual short int GetNumSpeciesTypeCombos ()
 Gets the number of species/type combos to which this behavior applies. More...
 
virtual short int GetNumBehaviorSpecies ()
 Gets the number of unique tree species to which this behavior applies. More...
 
struct stcSpeciesTypeCombo GetSpeciesTypeCombo (short int iIndex)
 Gets one of this behavior's type/species combos. More...
 
virtual short int GetBehaviorSpecies (short int iIndex)
 Gets one of the behavior's species. More...
 
short int GetBehaviorListNumber ()
 Gets the behavior list number for this behavior, which differentiates between multiple copies of the behavior in the behavior list. More...
 
void SetBehaviorListNumber (short int iNumber)
 Sets the behavior list number for this behavior, which differentiates between multiple copies of the behavior in the behavior list. More...
 
std::string FormatSpeciesTypeQueryString ()
 Formats the string for species/types query. More...
 
virtual DOMElement * GetParentParametersElement (xercesc::DOMDocument *p_oDoc)
 This will get the correct set of parameters for this behavior based on the behavior list position number. More...
 
- Public Member Functions inherited from clWorkerBase
 clWorkerBase (clSimManager *p_oSimManager)
 Constructor. More...
 
virtual ~clWorkerBase ()
 Destructor. More...
 
std::string GetName ()
 Gets the object's namestring. More...
 
clSimManagerGetSimManager ()
 
void DoObjectSetup (xercesc::DOMDocument *p_oDoc, fileType iFileType)
 Triggers the setup process. More...
 
virtual void TimestepCleanup ()
 Performs any necessary cleanup operations at the end of a timestep. More...
 
virtual void EndOfRunCleanup ()
 Performs any necessary cleanup operations at the end of a run. More...
 

Protected Attributes

short int m_iNumSpeciesTypeCombos
 How many type/species combos a behavior will act on. More...
 
short int m_iNumBehaviorSpecies
 How many distinct species are in the combo list - important for filling species-specific values from parameter file. More...
 
short int * mp_iWhatSpecies
 List of distinct species - for filling species-specific values from parameter file. More...
 
stcSpeciesTypeCombomp_whatSpeciesTypeCombos
 Array of species/type combos that the behavior will act on. More...
 
short int m_iNewTreeInts
 The number of new tree integer data members this behavior wants to add. More...
 
short int m_iNewTreeFloats
 The number of new tree float data members this behavior wants to add. More...
 
short int m_iNewTreeChars
 The number of new tree character data members this behavior wants to add. More...
 
short int m_iNewTreeBools
 The number of new tree boolean data members this behavior wants to add. More...
 
short int m_iBehaviorListNumber
 The number of this behavior in the behavior list, to differentiate between possible multiple copies of this behavior. More...
 
float m_fVersionNumber
 Version number - this will be rounded to 2 digits after the decimal place. More...
 
std::string m_sXMLRoot
 XML root that encloses the parameters for this behavior. More...
 
float m_fMinimumVersionNumber
 Minimum version number - this behavior will run parameter data for a file marked between this number and the current version number, inclusive. More...
 
- Protected Attributes inherited from clWorkerBase
std::string m_sNameString
 If a behavior has registered a command line command with the sim manager, this allows it to be called. More...
 
clSimManagermp_oSimManager
 Pointer to the simulation manager object. More...
 
int * mp_iAllowedFileTypes
 List of the input file types this object can handle. More...
 
int m_iNumAllowedTypes
 Number of input file types this object can handle. More...
 

Additional Inherited Members

- Protected Member Functions inherited from clWorkerBase
virtual void GetData (xercesc::DOMDocument *p_oDoc)=0
 Performs an object's setup. More...
 
void AssembleFileCode (int iFileType, int iFileVersion, char *cCode)
 Creates the proper identifying filecode for an XML file. More...
 

Detailed Description

BehaviorBase - Version 2.0 This class acts as a virtual parent for all behavior classes.

This allows the Simulation Manager to work with behavior objects without knowing anything about them.

There should not be any objects instantiated from this class.

Because I am continually surprised at the basic functions I want to mess with in my derived classes, every function here is virtual. Most administrative dealings with behaviors have them cast to the clBehaviorBase class, so function-hiding won't work. Override to your heart's content.

Copyright 2011 Charles D. Canham.

Author
Lora E. Murphy


Edit history:
--------------—
October 20, 2011 - Wiped the slate clean for SORTIE 7.0; created version 2.0 (LEM)
May 18, 2015 - Changed GetParentParametersElement so it wasn't an error if element was not found (LEM)

Constructor & Destructor Documentation

◆ clBehaviorBase()

clBehaviorBase::clBehaviorBase ( clSimManager p_oSimManager)

Constructor.

Initializes variables.

Parameters
p_oSimManagerSim Manager object.

◆ ~clBehaviorBase()

virtual clBehaviorBase::~clBehaviorBase ( )
virtual

Destructor.

Destroys variables initialized in the constructor.

Member Function Documentation

◆ Action()

virtual void clBehaviorBase::Action ( )
virtual

◆ FormatSpeciesTypeQueryString()

std::string clBehaviorBase::FormatSpeciesTypeQueryString ( )

Formats the string for species/types query.

This value can be used to pass to clTreePopulation::Find() in order to get the trees to act on.

Returns
Query string.

◆ GetBehaviorListNumber()

short int clBehaviorBase::GetBehaviorListNumber ( )
inline

Gets the behavior list number for this behavior, which differentiates between multiple copies of the behavior in the behavior list.

Returns
Behavior list number.

◆ GetBehaviorSpecies()

virtual short int clBehaviorBase::GetBehaviorSpecies ( short int  iIndex)
virtual

Gets one of the behavior's species.

To get all species, loop through based on GetNumBehaviorSpecies and hit this function numerous times. I did it this way as the most secure way I could think of to access the members of an array.

Parameters
iIndexof the species.
Returns
The desired species number.
Exceptions
BAD_DATAerror if the argument is not a valid array index.

◆ GetBehaviorVersion()

virtual float clBehaviorBase::GetBehaviorVersion ( )
inlinevirtual

Gets the behavior version number.

Returns
Behavior version number.

◆ GetNewTreeBools()

virtual short int clBehaviorBase::GetNewTreeBools ( )
inlinevirtual

Gets the number of new tree bool data members this behavior wants to register.

Returns
Number of new tree bools, or zero if no new members are to be registered.

◆ GetNewTreeChars()

virtual short int clBehaviorBase::GetNewTreeChars ( )
inlinevirtual

Gets the number of new tree character data members this behavior wants to register.

Returns
Number of new tree characters, or zero if no new members are to be registered.

◆ GetNewTreeFloats()

virtual short int clBehaviorBase::GetNewTreeFloats ( )
inlinevirtual

Gets the number of new tree float data members this behavior wants to register.

Returns
Number of new tree floats, or zero if no new members are to be registered.

◆ GetNewTreeInts()

virtual short int clBehaviorBase::GetNewTreeInts ( )
inlinevirtual

Gets the number of new tree integer data members this behavior wants to register.

Returns
Number of new tree integers, or zero if no new members are to be registered.

Reimplemented in clMortalityBase.

◆ GetNumBehaviorSpecies()

virtual short int clBehaviorBase::GetNumBehaviorSpecies ( )
inlinevirtual

Gets the number of unique tree species to which this behavior applies.

Returns
Number of behavior species, or zero if this behavior doesn't apply to any species.

◆ GetNumSpeciesTypeCombos()

virtual short int clBehaviorBase::GetNumSpeciesTypeCombos ( )
inlinevirtual

Gets the number of species/type combos to which this behavior applies.

Returns
Number of species/type combos, or zero if this behavior doesn't apply to any species/type combos.

◆ GetParentParametersElement()

virtual DOMElement* clBehaviorBase::GetParentParametersElement ( xercesc::DOMDocument *  p_oDoc)
virtual

This will get the correct set of parameters for this behavior based on the behavior list position number.

Parameters
p_oDocParsed XML doc.
Returns
DOMElement corresponding to this behavior; NULL if not found.

◆ GetSpeciesTypeCombo()

struct stcSpeciesTypeCombo clBehaviorBase::GetSpeciesTypeCombo ( short int  iIndex)

Gets one of this behavior's type/species combos.

To get all species or types, loop through based on GetNumCombos and hit this function numerous times. I did it this way as the most secure way I could think of to access the members of an array.

Parameters
iIndexof the species/type combo.
Returns
The desired species/type combo.
Exceptions
BAD_DATAerror if the argument is not a valid array index.

◆ RegisterTreeDataMembers()

virtual void clBehaviorBase::RegisterTreeDataMembers ( )
virtual

Registers tree data members.

If a behavior has any tree data members to add, it should register them by overriding this function. It cannot be assumed at this point that any data will have been read from the parameter file for the behavior itself, although it can be assumed that the tree population has read its data.

Reimplemented in clMerchValueCalculator, clGrowthBase, clLaggedPostHarvestGrowth, clHarvestInterface, clBoleVolumeCalculator, clVolumeCalculator, clDensDepInfestation, clLightDepSeedSurvival, clGeneralizedHarvestRegime, clQualityVigorClassifier, clCompetitionHarvest, clSnagDecomp, clDimensionAnalysis, clInsectInfestation, clEpiphyticEstablishment, clAbsoluteGrowth, clStormDamageApplier, clMortalityBase, clMichMenNegGrowth, clLightBase, clCarbonValueCalculator, clTreeAgeCalculator, clCrownRadiusReporter, and clRandomBrowse.

◆ SetBehaviorListNumber()

void clBehaviorBase::SetBehaviorListNumber ( short int  iNumber)
inline

Sets the behavior list number for this behavior, which differentiates between multiple copies of the behavior in the behavior list.

Parameters
iNumberBehavior list number.

◆ SetNameData()

virtual void clBehaviorBase::SetNameData ( std::string  sNameString)
inlinevirtual

◆ SetSpeciesTypeCombos()

virtual void clBehaviorBase::SetSpeciesTypeCombos ( short int  iNumCombos,
stcSpeciesTypeCombo p_whatCombos 
)
virtual

Sets the species/type combos for a behavior.

This function is only allowed to be called once, because messing with it would be very awful. These don't check for duplicate values in the list passed. The unique species list is assembled and placed in mp_iWhatSpecies.

Parameters
iNumCombosNumber of species/type combos being passed.
p_whatCombosArray of species/type combo objects.
Exceptions
ModelErrIf this function was called previously.

◆ ValidateVersionNumber()

virtual short int clBehaviorBase::ValidateVersionNumber ( float  fTestVersion)
virtual

Makes sure that the version number of a file passed is between the minimum and current version numbers.

Parameters
fTestVersionTest version number to validate.
Returns
Whether the file number is valid. Possible values:
  • -1 - this file has an invalid version number for this behavior
  • 0 - this file has a valid version number but it does not match the current number
  • 1 - this file's version number matches the current version number of the behavior

Member Data Documentation

◆ m_fMinimumVersionNumber

float clBehaviorBase::m_fMinimumVersionNumber
protected

Minimum version number - this behavior will run parameter data for a file marked between this number and the current version number, inclusive.

◆ m_fVersionNumber

float clBehaviorBase::m_fVersionNumber
protected

Version number - this will be rounded to 2 digits after the decimal place.

◆ m_iBehaviorListNumber

short int clBehaviorBase::m_iBehaviorListNumber
protected

The number of this behavior in the behavior list, to differentiate between possible multiple copies of this behavior.

◆ m_iNewTreeBools

short int clBehaviorBase::m_iNewTreeBools
protected

The number of new tree boolean data members this behavior wants to add.

◆ m_iNewTreeChars

short int clBehaviorBase::m_iNewTreeChars
protected

The number of new tree character data members this behavior wants to add.

◆ m_iNewTreeFloats

short int clBehaviorBase::m_iNewTreeFloats
protected

The number of new tree float data members this behavior wants to add.

◆ m_iNewTreeInts

short int clBehaviorBase::m_iNewTreeInts
protected

The number of new tree integer data members this behavior wants to add.

◆ m_iNumBehaviorSpecies

short int clBehaviorBase::m_iNumBehaviorSpecies
protected

How many distinct species are in the combo list - important for filling species-specific values from parameter file.

◆ m_iNumSpeciesTypeCombos

short int clBehaviorBase::m_iNumSpeciesTypeCombos
protected

How many type/species combos a behavior will act on.

◆ m_sXMLRoot

std::string clBehaviorBase::m_sXMLRoot
protected

XML root that encloses the parameters for this behavior.

◆ mp_iWhatSpecies

short int* clBehaviorBase::mp_iWhatSpecies
protected

List of distinct species - for filling species-specific values from parameter file.

◆ mp_whatSpeciesTypeCombos

stcSpeciesTypeCombo* clBehaviorBase::mp_whatSpeciesTypeCombos
protected

Array of species/type combos that the behavior will act on.


The documentation for this class was generated from the following file: