blob: f458aed63591787269efa9aa01b32acbcc015fce (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
#ifndef _QV_INPUT_
#define _QV_INPUT_
#include <QvDict.h>
#include <QvString.h>
class QvNode;
class QvDB;
class QvInput {
public:
QvInput();
~QvInput();
static float isASCIIHeader(const char *string);
void setFilePointer(FILE *newFP);
FILE * getCurFile() const { return fp; }
float getVersion();
QvBool get(char &c);
QvBool read(char &c);
QvBool read(QvString &s);
QvBool read(QvName &n, QvBool validIdent = FALSE);
QvBool read(int &i);
QvBool read(unsigned int &i);
QvBool read(short &s);
QvBool read(unsigned short &s);
QvBool read(long &l);
QvBool read(unsigned long &l);
QvBool read(float &f);
QvBool read(double &d);
QvBool eof() const;
void getLocationString(QvString &string) const;
void putBack(char c);
void putBack(const char *string);
void addReference(const QvName &name, QvNode *node);
QvNode * findReference(const QvName &name) const;
private:
FILE *fp; // File pointer
int lineNum; // Number of line currently reading
float version; // Version number of file
QvBool readHeader; // TRUE if header was checked for A/B
QvBool headerOk; // TRUE if header was read ok
QvDict refDict; // Node reference dictionary
QvString backBuf;
int backBufIndex;
QvBool checkHeader();
QvBool skipWhiteSpace();
QvBool readInteger(long &l);
QvBool readUnsignedInteger(unsigned long &l);
QvBool readReal(double &d);
QvBool readUnsignedIntegerString(char *str);
int readDigits(char *string);
int readHexDigits(char *string);
int readChar(char *string, char charToRead);
friend class QvNode;
friend class QvDB;
};
#endif /* _QV_INPUT_ */
|