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 }