Memosa-FVM  0.2
SchemeReader Class Reference

#include <SchemeReader.h>

Inheritance diagram for SchemeReader:
Collaboration diagram for SchemeReader:

Public Member Functions

 SchemeReader (const string &fileName)
 
virtual ~SchemeReader ()
 
- Public Member Functions inherited from Reader
 Reader (const string &fileName)
 
virtual ~Reader ()
 
void resetFilePtr ()
 
string readLine ()
 
void close ()
 

Protected Member Functions

int getNextSection ()
 
void closeSection ()
 
int closeSectionBinary (const int currentId)
 
int readInt (const bool isBinary)
 
void skipInt (const int n, const bool isBinary)
 
char getNextChar ()
 
int moveToListOpen ()
 
void moveToListClose ()
 
void moveToListCloseBinary ()
 
void readHeader (int &i1, int &i2, int &i3, int &i4, int &i5)
 
int readListLength ()
 
void readList (char *buffer)
 

Additional Inherited Members

- Protected Attributes inherited from Reader
const string _fileName
 
FILE * _fp
 

Detailed Description

Definition at line 13 of file SchemeReader.h.

Constructor & Destructor Documentation

SchemeReader::SchemeReader ( const string &  fileName)

Definition at line 7 of file SchemeReader.cpp.

7  :
8  Reader(fileName)
9 {}
Reader(const string &fileName)
Definition: Reader.cpp:14
SchemeReader::~SchemeReader ( )
virtual

Definition at line 11 of file SchemeReader.cpp.

12 {}

Member Function Documentation

void SchemeReader::closeSection ( )
protected
int SchemeReader::closeSectionBinary ( const int  currentId)
protected

Definition at line 154 of file SchemeReader.cpp.

References Reader::_fp.

Referenced by FluentReader::read(), FluentReader::readCells(), FluentReader::readFacePairs(), FluentReader::readFaces(), and FluentReader::readNodes().

155 {
156  // char c;
157  int id;
158  // moveToListOpen();
159  //moveToListClose();
160  //moveToListOpen();
161  do
162  {
163  getc(_fp);
164 // while ((c = getc(_fp)) != '\n')
165 // if (EOF == c)
166 // {
167 // cerr << "error closing binary section: expected " << currentId
168 // << " , found EOF " << endl;
169 
170 // return EOF;
171 // }
172  }
173  while (1 != fscanf(_fp,"End of Binary Section %d",&id));
174 
175  if (currentId != id)
176  cerr << "error closing binary section: expected " << currentId
177  << " , found " << id << endl;
178  return id;
179 }
FILE * _fp
Definition: Reader.h:26
char SchemeReader::getNextChar ( )
protected

Definition at line 15 of file SchemeReader.cpp.

References Reader::_fp.

Referenced by moveToListOpen().

16 {
17  char c;
18 
19  while ((c = getc(_fp)) != EOF)
20  if (isprint(c) && !isspace(c))
21  break;
22  return(c);
23 }
FILE * _fp
Definition: Reader.h:26
int SchemeReader::getNextSection ( )
protected

Definition at line 132 of file SchemeReader.cpp.

References Reader::_fp, and moveToListOpen().

Referenced by FluentReader::read().

133 {
134  if (moveToListOpen() == EOF)
135  return EOF;
136 
137  int id;
138  if (fscanf(_fp,"%d", &id) != 1)
139  {
140  cerr << "error reading id "<< endl;
141  }
142 
143  return id;
144 }
FILE * _fp
Definition: Reader.h:26
int moveToListOpen()
void SchemeReader::moveToListClose ( )
protected

Definition at line 43 of file SchemeReader.cpp.

References Reader::_fp.

Referenced by closeSection(), FluentReader::read(), and readHeader().

44 {
45  char c;
46 
47  while ((c = getc(_fp)) != EOF)
48  switch (c)
49  {
50  case '(':
52  break;
53  case ')':
54  return;
55  }
56 }
FILE * _fp
Definition: Reader.h:26
void moveToListClose()
void SchemeReader::moveToListCloseBinary ( )
protected

Definition at line 116 of file SchemeReader.cpp.

References Reader::_fp, and moveToListOpen().

117 {
118  char c;
119  int id;
120  moveToListOpen();
121  do
122  {
123  while ((c = getc(_fp)) != '\n')
124  if (EOF == c)
125  return;
126  }
127  while (1 != fscanf(_fp,"End of Binary Section %6d",&id));
128 }
FILE * _fp
Definition: Reader.h:26
int moveToListOpen()
int SchemeReader::moveToListOpen ( )
protected

Definition at line 28 of file SchemeReader.cpp.

References getNextChar().

Referenced by getNextSection(), moveToListCloseBinary(), FluentReader::read(), FluentReader::readFacePairs(), FluentReader::readFaces(), readHeader(), FluentReader::readNodes(), and FluentReader::readVectorData().

29 {
30  char c;
31 
32  while ((c = getNextChar()))
33  if ((char) c == '(')
34  return 0;
35  else if (c == EOF)
36  return EOF;
37 
38  return EOF;
39 }
char getNextChar()
void SchemeReader::readHeader ( int &  i1,
int &  i2,
int &  i3,
int &  i4,
int &  i5 
)
protected

Definition at line 182 of file SchemeReader.cpp.

References Reader::_fp, moveToListClose(), and moveToListOpen().

Referenced by FluentReader::readCells(), FluentReader::readFacePairs(), FluentReader::readFaces(), and FluentReader::readNodes().

183 {
184  moveToListOpen();
185 
186  if (fscanf(_fp, "%x%x%x%x",&i1,&i2,&i3,&i4) != 4)
187  {
188  cerr << "error reading header" << endl;
189  // readerError("Error reading the mesh header", DBG_HERE);
190  }
191 
192  /* read shape, not always availabe */
193  if (fscanf(_fp,"%x",&i5) != 1)
194  i5 = -1;
195 
196  moveToListClose();
197 }
FILE * _fp
Definition: Reader.h:26
void moveToListClose()
int moveToListOpen()
int SchemeReader::readInt ( const bool  isBinary)
protected

Definition at line 200 of file SchemeReader.cpp.

References Reader::_fp.

Referenced by FluentReader::readFacePairs(), and FluentReader::readFaces().

201 {
202  int i;
203  if (isBinary ?
204  (1 != fread(&i, sizeof(int), 1, _fp)) :
205  (1 != fscanf(_fp,"%x",&i)))
206  cerr << "Error reading int " << endl;
207  return i;
208 }
FILE * _fp
Definition: Reader.h:26
void SchemeReader::readList ( char *  buffer)
protected

Definition at line 88 of file SchemeReader.cpp.

References Reader::_fp.

Referenced by FluentReader::read().

89 {
90  char c;
91  int parenLevel=0;
92  int buffSize=0;
93 
94  while ((c = getc(_fp)) != EOF)
95  {
96  if (c == '(')
97  parenLevel++;
98 
99  if (parenLevel > 0)
100  {
101  buffer[buffSize] = c;
102  buffSize++;
103  }
104 
105  if (c == ')')
106  parenLevel--;
107 
108  if (parenLevel == 0 && buffSize > 0)
109  return;
110  }
111 
112  throw CException("EOF reached while reading list");
113 }
FILE * _fp
Definition: Reader.h:26
int SchemeReader::readListLength ( )
protected

Definition at line 59 of file SchemeReader.cpp.

References Reader::_fp.

Referenced by FluentReader::read().

60 {
61  char c;
62  int parenLevel=0;
63  int buffSize=0;
64 
65 
66  while ((c = getc(_fp)) != EOF)
67  {
68 
69  if (c == '(')
70  parenLevel++;
71 
72  if (parenLevel > 0)
73  {
74  buffSize++;
75  }
76 
77  if (c == ')')
78  parenLevel--;
79 
80  if (parenLevel == 0 && buffSize > 0)
81  return buffSize;
82  }
83 
84  throw CException("EOF reached while reading list");
85 }
FILE * _fp
Definition: Reader.h:26
void SchemeReader::skipInt ( const int  n,
const bool  isBinary 
)
protected

Definition at line 211 of file SchemeReader.cpp.

References Reader::_fp.

Referenced by FluentReader::readFaces().

212 {
213  int i;
214  for (int n=0; n<count; n++)
215  {
216  if (isBinary ?
217  (1 != fread(&i, sizeof(int), 1, _fp)) :
218  (1 != fscanf(_fp,"%x",&i)))
219  cerr << "Error reading int " << endl;
220  }
221 }
FILE * _fp
Definition: Reader.h:26

The documentation for this class was generated from the following files: