00001 #include "CPPFORT/lcrdr.h" 00002 00003 #include "lcio.h" 00004 #include "Exceptions.h" 00005 #include "IOIMPL/LCFactory.h" 00006 #include "IMPL/LCRunHeaderImpl.h" 00007 #include "IMPL/LCEventImpl.h" 00008 #include "IMPL/LCTOOLS.h" 00009 #include <iostream> 00010 00011 using namespace lcio ; 00012 00013 00014 PTRTYPE lcrdrcreate(){ 00015 LCReader* lcReader = IOIMPL::LCFactory::getInstance()->createLCReader() ; 00016 return reinterpret_cast<PTRTYPE>(lcReader) ; 00017 } 00018 00019 int lcrdrdelete(PTRTYPE reader){ 00020 LCReader* lcReader = reinterpret_cast<LCReader*>( (reader) ) ; 00021 delete lcReader ; 00022 return LCIO::SUCCESS ; 00023 } 00024 00025 int lcrdropen(PTRTYPE reader, const char* filename ){ 00026 try{ 00027 LCReader* lcReader = reinterpret_cast<LCReader*>(reader) ; 00028 lcReader->open( filename ) ; 00029 }catch(...){ return LCIO::ERROR ; } 00030 return LCIO::SUCCESS ; 00031 } 00032 00033 int lcrdrclose(PTRTYPE reader){ 00034 try{ 00035 LCReader* lcReader = reinterpret_cast<LCReader*>(reader) ; 00036 lcReader->close() ; 00037 }catch(...){ return LCIO::ERROR ; } 00038 return LCIO::SUCCESS ; 00039 } 00040 00041 int lcrdrreadstream(PTRTYPE reader, int maxRecord){ 00042 try{ 00043 LCReader* lcReader = reinterpret_cast<LCReader*>(reader) ; 00044 lcReader->readStream( maxRecord ) ; 00045 }catch(...){ return LCIO::ERROR ; } 00046 return LCIO::SUCCESS ; 00047 } 00048 00049 PTRTYPE lcrdrreadnextrunheader(PTRTYPE reader, int accessMode){ 00050 LCReader* rdr = reinterpret_cast<LCReader*>(reader) ; 00051 return C2F_POINTER( LCRunHeader*, rdr->readNextRunHeader( accessMode ) ) ; 00052 } 00053 00054 PTRTYPE lcrdrreadnextevent(PTRTYPE reader, int accessMode){ 00055 LCReader* rdr = reinterpret_cast<LCReader*>(reader) ; 00056 return C2F_POINTER( LCEvent*, rdr->readNextEvent( accessMode ) ); 00057 } 00058 00059 PTRTYPE lcrdrreadevent(PTRTYPE reader, int runNumber, int evtNumber ){ 00060 LCReader* rdr = reinterpret_cast<LCReader*>(reader) ; 00061 return C2F_POINTER( LCEvent*, rdr->readEvent( runNumber, evtNumber ) ); 00062 } 00063 00064 int lcrdrskipnevents( PTRTYPE reader, int n ) { 00065 LCReader* rdr = reinterpret_cast<LCReader*>(reader) ; 00066 rdr->skipNEvents( n ) ; 00067 return LCIO::SUCCESS ; 00068 }