00001 #include "CPPFORT/lcwrt.h" 00002 00003 #include "lcio.h" 00004 #include "IOIMPL/LCFactory.h" 00005 #include "IMPL/LCRunHeaderImpl.h" 00006 #include "IMPL/LCEventImpl.h" 00007 #include <iostream> 00008 00009 using namespace lcio ; 00010 00011 #define LCWRITER_PNTR( writer ) if(! (writer) ) return 0 ; \ 00012 LCWriter* lcWriter = reinterpret_cast<LCWriter*>( (writer) ) ; 00013 00014 00015 PTRTYPE lcwrtcreate(){ 00016 LCWriter* lcWriter = LCFactory::getInstance()->createLCWriter() ; 00017 return reinterpret_cast<PTRTYPE>(lcWriter) ; 00018 } 00019 00020 int lcwrtdelete(PTRTYPE writer){ 00021 LCWRITER_PNTR( writer ) ; 00022 delete lcWriter ; 00023 return LCIO::SUCCESS ; 00024 } 00025 00026 int lcwrtopen(PTRTYPE writer, const char* filename, int writeMode ){ 00027 try{ 00028 LCWriter* wrt = reinterpret_cast<LCWriter*>( writer ) ; 00029 wrt->open( filename , writeMode ) ; 00030 00031 }catch(...){ return LCIO::ERROR ; } 00032 return LCIO::SUCCESS ; 00033 00034 } 00035 00036 int lcwrtclose(PTRTYPE writer){ 00037 try{ 00038 LCWriter* wrt = reinterpret_cast<LCWriter*>( writer ) ; 00039 wrt->close() ; 00040 }catch(...){ return LCIO::ERROR ; } 00041 00042 return LCIO::SUCCESS ; 00043 } 00044 00045 int lcwrtwriterunheader( PTRTYPE writer, PTRTYPE header){ 00046 try{ 00047 00048 LCWriter* wrt = reinterpret_cast<LCWriter*>( writer ) ; 00049 LCRunHeader* hdr = reinterpret_cast<LCRunHeader*>( header ) ; 00050 00051 wrt->writeRunHeader( hdr ) ; 00052 00053 }catch(...){ return LCIO::ERROR ; } 00054 00055 return LCIO::SUCCESS ; 00056 } 00057 int lcwrtwriteevent( PTRTYPE writer, PTRTYPE event){ 00058 00059 try{ 00060 00061 LCWriter* wrt = reinterpret_cast<LCWriter*>( writer ) ; 00062 LCEvent* evt = reinterpret_cast<LCEvent*>( event ) ; 00063 00064 wrt->writeEvent( evt ) ; 00065 00066 }catch(...){ return LCIO::ERROR ; } 00067 00068 return LCIO::SUCCESS ; 00069 }