Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055 #if !defined(ALIZE_FileReader_h)
00056 #define ALIZE_FileReader_h
00057
00058 #if defined(_WIN32)
00059 #if defined(ALIZE_EXPORTS)
00060 #define ALIZE_API __declspec(dllexport)
00061 #else
00062 #define ALIZE_API __declspec(dllimport)
00063 #endif
00064 #else
00065 #define ALIZE_API
00066 #endif
00067
00068 #include <cstdio>
00069 #include "Object.h"
00070 #include "alizeString.h"
00071 #include "RealVector.h"
00072
00073
00074 namespace alize
00075 {
00076
00083
00084 class ALIZE_API FileReader : virtual public Object
00085 {
00086
00087 friend class TestFeatureFileReaderRaw;
00088 friend class TestFeatureFileReaderHTK;
00089 friend class TestFeatureFileReaderSPro4;
00090 friend class TestFeatureFileReader;
00091 friend class TestMixtureFileReaderRaw;
00092 friend class TestMixtureFileReaderAmiral;
00093
00094 public :
00095
00096
00097 explicit FileReader(const FileName&, const String& path,
00098 const String& extension, bool swap);
00099 static FileReader& create(const FileName& f, const String& path,
00100 const String& extension, bool swap);
00101
00104 virtual ~FileReader();
00105
00109 bool isClosed() const;
00110
00114 bool isOpen() const;
00115
00120 virtual void close();
00121
00126 virtual void reset();
00127
00133 char readChar();
00134
00140 int readInt2();
00141
00147 long readInt4();
00148
00154 unsigned long readUInt4();
00155
00161 double readDouble();
00162
00168 float readFloat();
00169
00175 FloatVector& readFloats(FloatVector& v);
00176
00185 unsigned long readSomeFloats(FloatVector& v);
00186
00203 const String& readLine();
00204
00211 const String& readString(unsigned long length);
00212
00216 const String& getFullFileName() const;
00217
00221 const String& getFileName() const;
00222
00227 void open();
00228
00233 unsigned long getFileLength();
00234
00237 void seek(unsigned long pos);
00238
00239 void rewind();
00240 long tell();
00241 bool& swap();
00242 void swap2Bytes(void *src, void *dest);
00243 void swap4Bytes(void *src, void *dest);
00244 void swap4Bytes(void *src);
00245 void swap8Bytes(void *src, void *dest);
00246
00247 virtual String toString() const;
00248 virtual String getClassName() const;
00249
00250
00251 protected :
00252
00253 String _fullFileName;
00254
00255 private :
00256
00257
00258 FILE* _pFileStruct;
00259 FileName _fileName;
00260 String _path;
00261 String _extension;
00262 unsigned long _fileLength;
00263 bool _fileLengthDefined;
00264 mutable String _string;
00265 bool _swap;
00267
00268
00269
00270
00271
00272
00273 void read(void* buffer, unsigned long length);
00274
00275 FileReader(const FileReader&);
00276 const FileReader& operator=(const FileReader&);
00277 bool operator==(const FileReader&) const;
00278 bool operator!=(const FileReader&) const;
00279 };
00280
00281 }
00282
00283 #endif // !defined(ALIZE_FileReader_h)
00284