ThePEG  1.8.0
CFileLineReader.h
1 // -*- C++ -*-
2 //
3 // CFileLineReader.h is a part of ThePEG - Toolkit for HEP Event Generation
4 // Copyright (C) 1999-2011 Leif Lonnblad
5 //
6 // ThePEG is licenced under version 2 of the GPL, see COPYING for details.
7 // Please respect the MCnet academic guidelines, see GUIDELINES for details.
8 //
9 #ifndef THEPEG_CFileLineReader_H
10 #define THEPEG_CFileLineReader_H
11 //
12 // This is the declaration of the CFileLineReader class.
13 //
14 
15 #include "ThePEG/Config/ThePEG.h"
16 #include "CFileLineReader.fh"
17 #include "CFile.h"
18 #include <cstdio>
19 #include <string>
20 
21 namespace ThePEG {
22 
43 
44 public:
45 
52 
61  CFileLineReader(string filename, int len = defsize);
62 
68 
78  void open(string filename);
79 
83  void close();
85 
89  bool readline();
90 
96  void resetline();
97 
101  string getline() const;
102 
106  CFile cFile() const;
107 
111  operator void *();
112 
116  bool operator!();
117 
123  bool skip(char c);
124 
128  bool find(string str) const;
129 
135  char getc();
136 
140  CFileLineReader & operator>>(long & l);
141 
145  CFileLineReader & operator>>(int & i);
146 
150  CFileLineReader & operator>>(unsigned long & l);
151 
155  CFileLineReader & operator>>(unsigned int & i);
156 
160  CFileLineReader & operator>>(double & d);
161 
165  CFileLineReader & operator>>(float & f);
166 
170  CFileLineReader & operator>>(std::string & s);
172 
173 private:
174 
179 
183  int bufflen;
184 
188  char * buff;
189 
193  char * pos;
194 
198  bool bad;
199 
203  static const int defsize = 1024;
204 
205 private:
206 
211 
217 
218 };
219 
220 }
221 
222 #endif /* THEPEG_CFileLineReader_H */