00001 00002 #ifndef NFOUTPUT_HH_ 00003 #define NFOUTPUT_HH_ 00004 00005 00006 00007 #include "../NFcore/NFcore.hh" 00008 #include "../NFutil/NFutil.hh" 00009 00010 namespace NFcore 00011 { 00012 class MoleculeType; 00013 class System; 00014 00015 class Outputter { 00016 public: 00017 Outputter(string filename, System *s); 00018 virtual ~Outputter(); 00019 00020 virtual void output()=0; 00021 virtual void outputHeader()=0; 00022 virtual void tryToDump(double simTime)=0; 00023 protected: 00024 string filename; 00025 System *s; 00026 ofstream outputFileStream; 00027 }; 00028 00029 00030 00032 00062 class DumpSystem { 00063 00064 public: 00066 00072 DumpSystem(System *s, vector <double> dumpTimes, string pathToFolder, bool verbose); 00073 00075 00077 ~DumpSystem(); 00078 00080 00084 void tryToDump(double simTime); 00085 00086 protected: 00087 00089 00091 void dumpHeaderFile(double dumpTime); 00092 00094 00096 void dumpMoleculeTypeFiles(double dumpTime); 00097 00098 00099 System *s; 00100 int currentDumpTimeIndex; 00101 vector <double> dumpTimes; 00102 string pathToFolder; 00103 bool verbose; 00105 }; 00106 00107 00108 00109 00110 } 00111 00112 00113 00114 00115 00116 00117 00118 00119 #endif /* NFOUTPUT_HH_ */