8#ifndef FMTschedule_H_INCLUDED
9#define FMTschedule_H_INCLUDED
17#include <boost/serialization/export.hpp>
18#include <boost/unordered_set.hpp>
36 friend class boost::serialization::access;
37 template<
class Archive>
38 void serialize(Archive& ar,
const unsigned int version)
41 ar & boost::serialization::make_nvp(
"FMTobject", boost::serialization::base_object<FMTobject>(*
this));
42 ar & BOOST_SERIALIZATION_NVP(period);
43 ar & BOOST_SERIALIZATION_NVP(elements);
46 _exhandler->printexceptions(
"",
"FMTschedule::serialize", __LINE__, __FILE__);
58 std::map<FMTaction, std::map<FMTdevelopment, std::vector<double>>> elements;
63 bool sameelements(
const FMTschedule& rhs)
const;
74 FMTschedule(
const int& lperiod, std::vector<FMTschedule>& schedules);
129 operator std::string()
const;
182 std::vector<boost::unordered_set<FMTdevelopment>>
getoperabilities(
const std::vector<FMTaction>& actions)
const;
204 const std::vector<FMTtheme>& newthemes,
const std::vector<FMTaction>&presolvedaction)
const;
210 const std::vector<FMTtheme>& originalbasethemes,
const std::vector<FMTaction>&originalbasebaseactions)
const;
228 typedef typename std::map<FMTaction, std::map<FMTdevelopment, std::vector<double>>>::value_type
value_type;
229 typedef typename std::map<FMTaction, std::map<FMTdevelopment, std::vector<double>>>::iterator
iterator;
230 typedef typename std::map<FMTaction, std::map<FMTdevelopment, std::vector<double>>>::const_iterator
const_iterator;
232 const std::map<FMTdevelopment, std::vector<double>>&
at(
const FMTaction& action)
const;
#define FMTEXPORT
Definition: FMTutility.hpp:92
Definition: FMTaction.hpp:42
Definition: FMTdevelopment.hpp:44
Definition: FMTmaskfilter.hpp:27
Definition: FMTobject.hpp:50
Definition: FMTschedule.hpp:31
FMTschedule(int lperiod, const std::map< FMTaction, std::map< FMTdevelopment, std::map< int, double > > > &mapping)
const_iterator find(const FMTaction &actionkey) const
std::vector< boost::unordered_set< FMTdevelopment > > getoperabilities(const std::vector< FMTaction > &actions) const
bool douselock() const
Definition: FMTschedule.hpp:142
FMTschedule(int lperiod, std::map< FMTaction, std::map< FMTdevelopment, std::vector< double > > > mapping)
void setperiod(const int &newperiod)
const std::map< FMTdevelopment, std::vector< double > > & at(const FMTaction &action) const
void setuselock(const bool &lock)
std::map< FMTaction, std::map< FMTdevelopment, std::vector< double > > >::value_type value_type
Definition: FMTschedule.hpp:228
iterator find(const FMTaction &actionkey)
double actionarea(const FMTaction &action) const
void addevent(const Core::FMTdevelopment &dev, const double &area, const Core::FMTaction &action)
int getperiod() const
Definition: FMTschedule.hpp:134
bool operated(const FMTaction &action, const FMTdevelopment &developement) const
FMTschedule(const int &lperiod, std::vector< FMTschedule > &schedules)
FMTschedule postsolve(const FMTmaskfilter &filter, const std::vector< FMTtheme > &originalbasethemes, const std::vector< FMTaction > &originalbasebaseactions) const
const_iterator begin() const
std::map< FMTaction, std::map< FMTdevelopment, std::vector< double > > >::const_iterator const_iterator
Definition: FMTschedule.hpp:230
const_iterator end() const
FMTschedule(const int &lperiod, const FMTobject &obj, const bool &luselock)
FMTschedule presolve(const FMTmaskfilter &filter, const std::vector< FMTtheme > &newthemes, const std::vector< FMTaction > &presolvedaction) const
FMTschedule(const FMTschedule &rhs)
bool isfuturconstraints(const std::vector< Core::FMTconstraint > &constraints) const
std::map< FMTdevelopment, std::vector< double > > & operator[](const FMTaction &action)
std::map< FMTaction, std::map< FMTdevelopment, std::vector< double > > >::iterator iterator
Definition: FMTschedule.hpp:229
FMTschedule getnewschedule(const double &factor) const
The Core namespace provides classes for simulating stands/strata growth/harvest through time.
Definition: FMTaction.hpp:31