Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members

AgentLivestockList.h

Go to the documentation of this file.
00001 //------------------------------------------------------------------------------
00002 //
00003 //  Thomas Berger (main author), Pepijn Schreinemachers, and Thorsten Arnold
00004 //
00005 //
00006 //  Hohenheim University (490d)
00007 //  Professorship for Land Use Economics in the Tropics and Subtropics
00008 //
00009 //  May not be distributed without permission by main author
00010 //
00011 //  File:       AgentLivestockList.h (formerly lslist.h)
00012 //
00013 //  Contents:   Manages linked list of all livestock units held by one agent
00014 //
00015 //
00016 //
00017 //------------------------------------------------------------------------------
00018 
00019 
00020 #ifndef _AgentLivestockList_h
00021 #define _AgentLivestockList_h
00022 
00023 
00024 #include "AgentLivestockUnit.h"
00025 
00026 #ifndef LP_OLD
00027         #include "AgentSolution.h"
00028 #else
00029    #include "FinancialMathFunctions.h"
00030 #endif
00031 
00032 
00033 class ls_list
00034 {       protected:
00035    int scID;    //SubcatchmentNum
00036    int hhID;    //Betriebsnummer
00037 
00038    int hSize;  //herd size
00039    int lastPID;
00040 
00041         livestck* firstLivestck;
00042    livestck* lastLivestck;
00043    livestck* markedLivestck;
00044 
00045    public:
00046    ls_list(int, int);
00047    virtual ~ls_list()
00048    {  deleteList();
00049    }
00050 
00051         virtual void makeLivestck(int lsID, int age);
00052         virtual void deallocLivestck(livestck*);
00053         virtual void insertLivestck(livestck*);
00054         virtual int getNumMembers(void);
00055    virtual int getNumLs(int lsID);
00056    virtual int getNumLsAgeGroup(int lsID, int ageLow, int ageUpp);
00057    virtual void checkLsInventory(int oid, MatrixDouble& ageLs);
00058    virtual void makeLsEntriesRHS(MatrixDouble& lsTyp, MatrixDouble& lsRHS);
00059    virtual void makeActLPcoeff(int,
00060                         MatrixDouble&, MatrixDouble&, MatrixDouble&, MatrixDouble&, MatrixDouble&, MatrixDouble&);
00061    virtual void makeExpLPcoeff(int, double, MatrixDouble&,
00062                         MatrixDouble&, MatrixDouble&, MatrixDouble&, MatrixDouble&, MatrixDouble&, MatrixDouble&);
00063    virtual void makeInvLPcoeff(int, double,
00064                         MatrixDouble&, MatrixDouble&, MatrixDouble&, MatrixDouble&, MatrixDouble&, MatrixDouble&);
00065    virtual int getLastID(void);
00066 
00067    virtual livestck* searchForLivestck(int pID);
00068         virtual livestck* searchFirstType(int lsID);//Parameter: type of livestock
00069    virtual livestck* searchNextType(int lsID);
00070         virtual livestck* searchLastType(int lsID);
00071    virtual livestck* searchPreviousType(int lsID);
00072    virtual livestck* getFirst();//return first in list
00073    virtual livestck* getLast();//return last in list
00074 
00075    virtual void putLvstInSolution(MatrixDouble& mEntries);
00076 #ifdef LP_OLD
00077         virtual int checkSoldLivestockAtStartPeriod(MatrixDouble& lsSoldStart, l_vektor& bprod);
00078         virtual int checkSoldLivestockAtEndOfPeriod(MatrixDouble& lsSoldEnd, l_vektor& bprod);
00079 #else
00080         virtual int checkSoldLivestockAtStartPeriod(MatrixDouble& lsSoldStart, AgentSolution& agentProblemObject);
00081         virtual int checkSoldLivestockAtEndOfPeriod(MatrixDouble& lsSoldEnd, AgentSolution& agentProblemObject);
00082 #endif
00083         virtual void updateExitUnits(MatrixDouble& lsExit);
00084    virtual void updateOffspInHerd(MatrixDouble& offsp);
00085    virtual void updateAgeInHerd();
00086         virtual livestck* takeOutLivestck(livestck*);
00087 
00088    virtual void printOnScreenLivestck(livestck*);
00089    virtual void printOnScreen_list(void);
00090    virtual void deleteList(void);
00091 };
00092 
00093 #endif

Generated on Thu Aug 28 12:38:44 2008 for MPMAS by  doxygen 1.3.9.1