1 #ifndef SIO_SIOINTVECHANDLER_H
2 #define SIO_SIOINTVECHANDLER_H 1
12 #include <sio/io_device.h>
13 #include <sio/version.h>
23 template <
typename VECTYPE>
30 void read( sio::read_device& device,
EVENT::LCObject* objP, sio::version_type vers )
override ;
49 template <
typename VECTYPE>
57 template <
typename VECTYPE>
59 auto vec =
dynamic_cast<VECTYPE*
>( objP ) ;
64 SIO_SDATA( device, nElements ) ;
65 vec->reserve( nElements ) ;
66 for(
int i=0 ; i<nElements ; i++ ) {
67 typename VECTYPE::value_type x ;
68 SIO_SDATA( device , x ) ;
73 if( vers > SIO_VERSION_ENCODE( 1, 2 ) ) {
74 SIO_PTAG( device , vec ) ;
80 template <
typename VECTYPE>
82 auto vec =
dynamic_cast<const VECTYPE*
>( obj ) ;
85 int nElements = vec->size() ;
86 SIO_SDATA( device, nElements ) ;
87 for(
int i=0 ; i<nElements ; i++ ) {
88 SIO_SDATA( device, (*vec)[i] ) ;
91 SIO_PTAG( device , vec ) ;
96 template <
typename VECTYPE>
98 return new VECTYPE() ;
The generic object that is held in an LCCollection.
SIOLCVecHandler< EVENT::LCFloatVec > SIOFloatVecHandler
SIOLCVecHandler< EVENT::LCStrVec > SIOStrVecHandler
SIOLCVecHandler< EVENT::LCIntVec > SIOIntVecHandler
const char * lctypename()
Template that returns the LCIO type name as used in the LCCollctions (and files), e...
void write(sio::write_device &device, const EVENT::LCObject *obj) override
Writes lcio objects to an SIO stream.
Interface for all lcio object SIO-handlers, has to be implemented for all event entities (hits...
EVENT::LCObject * create() const override
Factory method to create an object of the type of the collection.
Implementation of SIOObjectHandler to handle IO of IntVecs.
void read(sio::read_device &device, EVENT::LCObject *objP, sio::version_type vers) override
Reads lcio objects from an SIO stream.
SIOLCVecHandler()
Constructor.