Subversion Repositories public iLand

Rev

Rev 904 | Rev 907 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

#ifndef FMUNIT_H
#define FMUNIT_H
namespace AMIE {


class Agent; // forward
class Scheduler;
/** The FMUnit represents a management unit, i.e. a collection of stands.
 *  */

class FMUnit
{
public:
    FMUnit(const Agent *agent);
    ~FMUnit();
    void setId(const QString &id);
    const QString &id() const {return mId; }
    int index() const {return mIndex; }
    Scheduler *scheduler() {return mScheduler; }
    const Scheduler *constScheduler() const { return mScheduler; }
    const Agent* agent() const { return mAgent; }

    // actions

    /// update decadal management objectives for the planning unit.
    void managementPlanUpdate();

    /// update objectives of the current year.
    void updateYear();

    void aggregate();
    QStringList info() const;

private:
    QString mId;
    int mIndex;
    const Agent *mAgent;
    Scheduler *mScheduler;
};

} // namespace
#endif // FOMEUNITS_H