00001 #include "SIO/SIOLCRelationHandler.h" 00002 00003 #include "SIO/LCSIO.h" 00004 00005 #include "EVENT/LCIO.h" 00006 #include "EVENT/MCParticle.h" 00007 #include "EVENT/LCRelation.h" 00008 #include "IOIMPL/LCRelationIOImpl.h" 00009 #include "IMPL/LCFlagImpl.h" 00010 00011 #include "SIO_functions.h" 00012 #include "SIO_block.h" 00013 00014 00015 using namespace EVENT ; 00016 using namespace IMPL ; 00017 using namespace IOIMPL ; 00018 00019 00020 namespace SIO{ 00021 00022 unsigned int SIOLCRelationHandler::read(SIO_stream* stream, 00023 LCObject** objP){ 00024 unsigned int status ; 00025 00026 // create a new object : 00027 LCRelationIOImpl* rel = new LCRelationIOImpl ; 00028 *objP = rel ; 00029 00030 00031 SIO_PNTR( stream , &(rel->_from ) ); 00032 SIO_PNTR( stream , &(rel->_to ) ) ; 00033 00034 if( LCFlagImpl(_flag).bitSet( LCIO::LCREL_WEIGHTED ) ){ 00035 00036 SIO_DATA( stream , &(rel->_weight) , 1 ) ; 00037 00038 } 00039 return ( SIO_BLOCK_SUCCESS ) ; 00040 } 00041 00042 00043 unsigned int SIOLCRelationHandler::write(SIO_stream* stream, 00044 const LCObject* obj){ 00045 00046 unsigned int status ; 00047 00048 const LCRelation* rel = dynamic_cast<const LCRelation*>(obj) ; 00049 00050 LCObject* from = rel->getFrom() ; 00051 SIO_PNTR( stream, &from ) ; 00052 00053 LCObject* to = rel->getTo() ; 00054 SIO_PNTR( stream, &to ) ; 00055 00056 if( LCFlagImpl(_flag).bitSet( LCIO::LCREL_WEIGHTED ) ){ 00057 00058 LCSIO_WRITE( stream , rel->getWeight() ) ; 00059 00060 } 00061 00062 00063 return ( SIO_BLOCK_SUCCESS ) ; 00064 } 00065 00066 } // namespace
1.3.9.1