00001 #ifndef SIO_SIOOBJECTHANDLER_H
00002 #define SIO_SIOOBJECTHANDLER_H 1
00003
00004 #include "EVENT/LCObject.h"
00005 #include "EVENT/LCCollection.h"
00006
00007 #include "SIO_block.h"
00008
00009 class SIO_stream ;
00010
00011
00012 namespace SIO{
00013
00014
00021 class SIOObjectHandler {
00022
00023 public:
00024
00025 virtual ~SIOObjectHandler(){ ; }
00026
00029 virtual unsigned int read(SIO_stream* stream,
00030 EVENT::LCObject** objP) =0 ;
00031
00034 virtual unsigned int write(SIO_stream* stream,
00035 const EVENT::LCObject* obj ) =0 ;
00036
00037
00042 virtual unsigned int init( SIO_stream* stream,
00043 SIO_operation op,
00044 EVENT::LCCollection* col,
00045 unsigned int vers ) ;
00046
00047
00049 virtual unsigned int readBase(SIO_stream* stream,
00050 EVENT::LCObject** objP) ;
00051
00052
00054 virtual unsigned int writeBase(SIO_stream* stream,
00055 const EVENT::LCObject* obj ) ;
00056
00057 protected:
00058
00059
00060 unsigned int _flag{0} ;
00061 unsigned int _vers{0} ;
00062
00063 };
00064
00065 }
00066 #endif