ESyS-Particle  4.0.1
FieldMaster.h
00001 
00002 //                                                         //
00003 // Copyright (c) 2003-2011 by The University of Queensland //
00004 // Earth Systems Science Computational Centre (ESSCC)      //
00005 // http://www.uq.edu.au/esscc                              //
00006 //                                                         //
00007 // Primary Business: Brisbane, Queensland, Australia       //
00008 // Licensed under the Open Software License version 3.0    //
00009 // http://www.opensource.org/licenses/osl-3.0.php          //
00010 //                                                         //
00012 
00013 #ifndef __FIELDMASTER_H
00014 #define __FIELDMASTER_H
00015 
00016 #ifdef HAVE_CONFIG_H
00017 #include "config.h"
00018 #endif
00019 
00020 #if HAVE_SILO
00021 #include <silo.h>
00022 #endif
00023 
00024 //--- STL includes ---
00025 #include <string>
00026 using std::string;
00027 
00028 // --- project includes ---
00029 #include "Foundation/console.h"
00030 
00031 
00032 class TML_Comm;
00033 
00039 class AFieldMaster
00040 {
00041  private:
00042   static int s_field_count;
00043   
00044  protected:
00045   TML_Comm *m_comm;
00046   string m_field_name;
00047   string m_file_name;
00048   int m_t0,m_tend,m_dt;
00049   int m_id;
00050   int m_save_count;
00051   int m_write_type; // DX, POV. SILO, SUM, MAX, RAW_SERIES etc
00052 
00053   string makeFilename();
00054 #if HAVE_SILO
00055   DBfile* openSiloFile(bool& exists);
00056 #endif
00057   virtual void writeAsDX(){console.Error()<<"writeAsDX NOT IMPLEMENTED\n";};
00058   virtual void writeAsPOV(){console.Error()<<"writeAsPOV NOT IMPLEMENTED\n";};
00059   virtual void writeAsSILO(){console.Error()<<"writeAsSILO NOT IMPLEMENTED\n";};
00060   virtual void writeAsSUM(){console.Error()<<"writeAsSUM NOT IMPLEMENTED\n";};
00061   virtual void writeAsMAX(){console.Error()<<"writeAsMAX NOT IMPLEMENTED\n";};
00062   virtual void writeAsRAW_SERIES(){console.Error()<<"writeAsRAW_SERIES NOT IMPLEMENTED\n";};
00063   virtual void writeAsRAW2(){console.Error()<<"writeAsRAW2 NOT IMPLEMENTED\n";};
00064   virtual void writeAsRAW(){console.Error()<<"writeAsRAW NOT IMPLEMENTED\n";};
00065   virtual void writeAsRawWithID(){console.Error()<<"writeAsRawWithID NOT IMPLEMENTED\n";};
00066   virtual void writeAsRawWithPosID(){console.Error()<<"writeAsRawWithPosID NOT IMPLEMENTED\n";};
00067 
00068  public:
00069   AFieldMaster(TML_Comm*,const string&,const string&,const string&,int,int,int);
00070   virtual ~AFieldMaster(){};
00071 
00072   virtual bool needSave(int);
00073   virtual void collect()=0;
00074   virtual void write();
00075 };
00076 
00077 #endif //__FIELDMASTER_H