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 }