00001 #ifndef StreamerMgr_h
00002 #define StreamerMgr_h
00003
00004 #ifdef USE_CONDDB
00005
00006
00007 #include "lccd.h"
00008 #include "VCollectionStreamer.hh"
00009
00010
00011 #include "lcio.h"
00012 #include "EVENT/LCCollection.h"
00013
00014
00015 #include "ConditionsDB/ICondDBStreamable.h"
00016
00017
00018 #include <map>
00019
00020 namespace lccd {
00021
00022 typedef std::map< std::string, VCollectionStreamer* > StreamerMap ;
00023
00024
00032 class StreamerMgr {
00033
00034 public:
00035
00036 StreamerMgr() ;
00037
00038 virtual ~StreamerMgr() {} ;
00039
00042 static StreamerMgr* instance() ;
00043
00044
00049 VCollectionStreamer* getStreamer( const std::string& type ) ;
00050
00051
00055 void registerStreamer( VCollectionStreamer* streamer , const std::string& type ) ;
00056
00057
00058 protected:
00059
00060
00061 private:
00062 StreamerMap _map ;
00063
00064 static StreamerMgr* _me ;
00065
00066 };
00067
00068 } ;
00069
00070 #endif // USE_CONDDB
00071 #endif // StreamerMgr_h