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 #ifndef MIMOTERAREADER_HH
00026 #define MIMOTERAREADER_HH
00027
00028 # ifdef __cplusplus
00029
00030
00031 # include "mimotera++/MimoteraException.hh"
00032 # include "mimotera++/MimoteraEvent.hh"
00033
00034
00035 # include <iostream>
00036 # include <sys/types.h>
00037 # include <fstream>
00038
00039 # else
00040
00041 # include "mimotera++/MimoteraEvent.hh"
00042
00043 # endif
00044
00045 # ifdef __cplusplus
00046
00047 namespace Mimotera {
00048
00049
00051
00077 class MimoteraReader {
00078
00079
00080 public:
00082 MimoteraReader() ;
00083
00085
00093 MimoteraReader( const char * filename );
00094
00096 ~MimoteraReader();
00097
00098
00100
00108 off_t open( const char * filename ) ;
00109
00110
00112
00121 bool readNextEvent() ;
00122
00123
00125
00130 MimoteraEvent * getEvent() ;
00131
00133 void init();
00134
00135 private:
00136
00138
00142 bool _hasValidFile;
00143
00145
00149 bool _isEventReady;
00150
00152 std::ifstream * _mimoteraFile;
00153
00155 Mimotera::MimoteraEvent * _mimoteraEvent;
00156
00158 size_t _iEvt;
00159
00161 std::streampos _currentPosition;
00162
00164 std::streampos _previousPosition;
00165
00167 unsigned short _tempHeader[ kMimoteraInfoSize ] ;
00168
00169 };
00170
00229 }
00230 # else
00231
00232 typedef struct MimoteraReader {} MimoteraReader ;
00233
00234 # endif
00235
00236
00237 # ifdef __cplusplus
00238 extern "C" {
00239 namespace Mimotera {
00240 # endif
00241
00249 extern MimoteraReader * MimoteraReader_create( const char * filename );
00250
00256 extern MimoteraReader * MimoteraReader_create_cpp( const char * filename );
00257
00264 extern void MimoteraReader_open( MimoteraReader * reader, const char * filename );
00265
00271 extern void MimoteraReader_open_cpp( MimoteraReader * reader, const char * filename );
00272
00280 extern void MimoteraReader_dispose( MimoteraReader * reader );
00281
00286 extern void MimoteraReader_dispose_cpp( MimoteraReader * reader );
00287
00295 extern int MimoteraReader_readNextEvent( MimoteraReader * reader );
00296
00303 extern int MimoteraReader_readNextEvent_cpp( MimoteraReader * reader );
00304
00312 extern MimoteraEvent * MimoteraReader_getEvent( MimoteraReader * reader ) ;
00313
00319 extern MimoteraEvent * MimoteraReader_getEvent_cpp( MimoteraReader * reader ) ;
00320
00321
00322 # ifdef __cplusplus
00323 }
00324 }
00325 # endif
00326
00327 #endif