ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE/libmdtools/ReadWrite.hpp
Revision: 830
Committed: Tue Oct 28 16:20:28 2003 UTC (20 years, 8 months ago) by gezelter
File size: 2276 byte(s)
Log Message:
fixes for compatibility

File Contents

# User Rev Content
1 mmeineke 377 #ifndef __READWRITE_H__
2     #define __READWRITE_H__
3    
4     #include <iostream>
5     #include <fstream>
6    
7 gezelter 829 #include <string.h>
8     #include <stdio.h>
9     #include <stdlib.h>
10 mmeineke 804 #include <unistd.h>
11     #include <sys/types.h>
12     #include <sys/stat.h>
13 mmeineke 377
14 mmeineke 646
15 mmeineke 377 #include "Atom.hpp"
16     #include "SimInfo.hpp"
17     #include "Thermo.hpp"
18    
19     using namespace std;
20    
21 mmeineke 804 class FilePos{
22    
23     public:
24     FilePos(){
25     myPos = NULL;
26     next = NULL;
27     }
28     FilePos( fpos_t* thePos ) {
29     myPos = thePos;
30     next = NULL;
31     }
32     ~FilePos(){
33     if( next != NULL ) delete next;
34     if( myPos != NULL ) delete myPos;
35     }
36    
37     void add( fpos_t *thePos ){
38     if( next != NULL )
39     next->add( thePos );
40     else
41     next = new FilePos( thePos );
42     }
43    
44     FilePos &operator=(fpos_t *thePos){ myPos = thePos; return *this; }
45    
46     void setPos( fpos_t *thePos ){ myPos = thePos; }
47     fpos_t *getPos( void ){ return myPos; }
48    
49     FilePos* getNext( void ) { return next; }
50     private:
51    
52     fpos_t *myPos;
53     FilePos* next;
54    
55     };
56 mmeineke 646
57 mmeineke 377 class DumpWriter{
58    
59     public:
60     DumpWriter( SimInfo* the_entry_plug );
61     ~DumpWriter();
62    
63     void writeDump( double currentTime );
64 mmeineke 572 void writeFinal( double finalTime );
65 mmeineke 377
66     private:
67     SimInfo* entry_plug;
68     ofstream outFile;
69     char outName[500];
70     };
71    
72     class StatWriter{
73    
74     public:
75     StatWriter( SimInfo* the_entry_plug );
76     ~StatWriter();
77    
78     void writeStat( double currentTime );
79    
80     private:
81    
82     SimInfo* entry_plug;
83     ofstream outFile;
84     char outName[500];
85     Thermo* tStats;
86    
87     };
88    
89     class InitializeFromFile{
90    
91     public:
92     InitializeFromFile( char *in_name );
93     ~InitializeFromFile();
94    
95 mmeineke 641 void readInit( SimInfo* the_entry_plug );
96 mmeineke 377
97     private:
98     char* parseDumpLine(char* line, int atomIndex);
99 mmeineke 644 char* parseBoxLine(char* line, double boxMat[9], double &time );
100 mmeineke 377 FILE *c_in_file;
101     char c_in_name[500];
102 mmeineke 586 SimInfo* simnfo;
103 mmeineke 377 };
104    
105 gezelter 637 class DumpReader{
106 mmeineke 644
107     public:
108 gezelter 637 DumpReader( char *in_name );
109     ~DumpReader();
110 mmeineke 377
111 gezelter 637 int getNframes();
112 mmeineke 646 void scanFile( void );
113 mmeineke 377
114 mmeineke 656 void getNextFrame() {}
115     void readFrame(SimInfo* the_simnfo, int whichFrame);
116    
117 gezelter 637 private:
118 mmeineke 647
119 chuckv 657 void readSet( int whichFrame );
120 gezelter 637 char* parseDumpLine(char* line, int atomIndex);
121 mmeineke 644 char* parseCommentLine(char* line, double &time, double boxMat[9] );
122 mmeineke 647 FILE *inFile;
123     char inName[500];
124     bool isScanned;
125     int nFrames;
126 mmeineke 804
127     FilePos** frameStart;
128     FilePos* headFP;
129 mmeineke 647
130     SimInfo *simnfo;
131 gezelter 637 };
132    
133    
134 mmeineke 644
135 mmeineke 377 #endif