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

OutputDataHandler.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:       OutputDataHandler.h (formerly ausgabe.h)
00012 //
00013 //  Contents:   Collects information from model components and writes to files
00014 //
00015 //
00016 //
00017 //------------------------------------------------------------------------------
00018 
00019 
00020 #ifndef _OutputDataHandler_h
00021 #define _OutputDataHandler_h
00022 
00023 
00024 #include "BasicDefines.h"
00025 
00026 
00027 class ausgabe
00028 {       protected:
00029         FILE* aStrm0;
00030         FILE* aStrm1;
00031         FILE* aStrm2;
00032         FILE* aStrm3;                           //neu 2004
00033    FILE* aStrm4;
00034    FILE* aStrm_w;          // Yearly Water File
00035 
00036    FILE* aStrm_wr;          // Yearly Water Rental File
00037    FILE* aStrm_wre;
00038    FILE* aStrm_wAg;          // Yearly Water Agent File
00039 
00040    FILE* aStrm_Lrm;          // Yearly Land rental file
00041    FILE* aStrm_Lrmexp;          // Yearly Land rental file
00042 
00043    //char filename[MXLENGTH];//maximal 50 Zeichen
00044 
00045    public:
00046         ausgabe();                      //Uebergabe: Output-Dateikrzel
00047         virtual ~ausgabe();
00048    virtual void deallocate();
00049 
00050         virtual void data_period0();
00051 
00052         virtual void output_periode();//Periodendaten
00053       // Called once, in main slope; <sim_main.cpp>
00054       // executes ausgabe::aufgabedaten()
00055       //       CHILE:   ausgabe::betriebsdaten()
00056       //       else:    ausgabe::writeAgPfmDataInStream();//neu 2004
00057 
00058         virtual void outputFinal();     //Daten zum Simulationsende
00059 
00060 //      virtual void betriebsdaten(); // CHILE only
00061       // Called in ausgabe::output_periode()
00062       // Produces <OUT><TIME>"p.out"
00063       // Produces <OUT><TIME>"k.out"
00064 
00065         virtual void aufgabedaten();  // all
00066       // Called in ausgabe::output_periode
00067       // Produces <OUT><TIME>"a.out"
00068 
00069       // Renamed from <diffusionsdaten>
00070       // Locally defined output stream
00071         virtual void writeDiffusion();   //
00072       // Warning: Same name as <s_liste::diffusionsdaten>
00073       // Called once, in main slope; <sim_main.cpp>
00074       // Produces <OUT><TIME>"d.out"
00075 
00076         virtual void makeSectorOutputData();
00077       // Called once, in main slope; <sim_main.cpp>
00078 
00079 
00080 
00081    // NEW ARNOLD 2005
00082    virtual void openWater();
00083       // uses streams aStrm_w, aStrm_wAg
00084       //
00085       // Called once, in  ausgabe::makeSectorOutputData()
00086       // closes   <OUT><TIME>"w.out"
00087       //          <OUT><TIME>"wAg.out"
00088 
00089  // NEW ARNOLD 2005
00090    virtual void closeWater();
00091       // closes streams aStrm_w, aStrm_wAg
00092       //
00093       // Called once, in  ausgabe::makeSectorOutputData()
00094       // closes   <OUT><TIME>"w.out"
00095       //          <OUT><TIME>"wAg.out"
00096 
00097       
00098         virtual void openPachtWater();      // CHILE only. Overloaded: timeshift=0!
00099    virtual void closePachtWater();      // CHILE only
00100         virtual void openPachtWater(int timeshift);      // CHILE only
00101       // Renamed from "pachtdaten_vorbereiten"
00102       // Called once, in  ausgabe::makeSectorOutputData()
00103       // Produces <OUT><TIME>"r.out"
00104       // time shift is one for expected values. Then, the filename is also rE
00105       
00106         virtual void openPachtLand();      // CHILE only. Overloaded: timeshift=0!
00107    virtual void closePachtLand();      // CHILE only
00108         virtual void openPachtLand(int timeshift);      // CHILE only
00109       // Produces <OUT><TIME>"Lr.out"  and "Lrexp.out"
00110       // time shift is one for expected values. Then, the filename is also rE
00111 
00112    // (Locally defined Streams)
00113    // AgentLandData
00114         virtual void writeAgLndDataInStream();//neu 2004
00115    // (Locally defined Streams)
00116       // Called in <void ausgabe::data_period0>
00117       // Produces <OUT>"l00.out" before first period
00118       // KEY to agent data!!!
00119 
00120    // AgentPerformanceData
00121    // (Locally defined Streams)
00122    virtual void writeAgPfmDataInStream();//neu 2004
00123       // Called in <ausgabe::output_periode()>
00124       // Alternative to <ausgabe::betriebsdaten()>
00125       // Produces <OUT>p<TIME>.out
00126       // Produces <OUT>u<TIME>.out
00127       // Produces <OUT>k<TIME>.out
00128       // Executes
00129       //      b_liste::writeAgentPfmData(aStrm0, aStrm1);
00130       //      for_all(betrieb)
00131       //      betrieb::writePfmPrdData
00132 
00133         virtual void prepareStreamsExitData();//neu 2004
00134       // Called in ???
00135       // Writes exiting agents into further data
00136       // Produces <OUT><TIME>"xp.out"
00137       // Produces <OUT><TIME>"xk.out"
00138 
00139    virtual void prepareStreamYieldData();//neu 2004
00140       // Called in ???
00141       // Writes soil data
00142       // Produces <OUT><TIME>"y.out"
00143 
00144         virtual FILE* get_stream0();          //neu 2004
00145         virtual FILE* get_stream1();
00146         virtual FILE* get_stream2();
00147    virtual FILE* get_stream3();          //neu 2004  soils...
00148    virtual FILE* get_stream_w();         //neu 2005
00149    virtual FILE* get_stream_wAg();       //neu 2005
00150    virtual FILE* get_stream_Lrm();       //neu 2005
00151    virtual FILE* get_stream_Lrmexp();    //neu 2005
00152 
00153    virtual FILE* get_stream_wr();        // in <sector::P_in_datei_schreiben>
00154    virtual FILE* get_stream_wre();       //in <sector::P_in_datei_schreiben>
00155 
00156 
00157    // ARNOLD 2005
00158    virtual void closeAllSectorStreams();
00159       // Called once,  in main slope; <sim_main.cpp>
00160       // Finishes ausgabe::makeSectorOutputData()
00161       //     by closing all streams.
00162 
00163 };
00164 
00165 #endif
00166 
00167 

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