Main Page | Namespace List | Class Hierarchy | Class List | File List | Namespace Members | Class Members

StreamerMgr.hh

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 // -- lcio headers
00011 #include "lcio.h"
00012 #include "EVENT/LCCollection.h"
00013 
00014 // -- CondDB headers
00015 #include "ConditionsDB/ICondDBStreamable.h"
00016 
00017 // -- C++ headers
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 } ; //end namespace
00069 
00070 #endif // USE_CONDDB
00071 #endif // StreamerMgr_h

Generated on Fri Sep 9 12:30:31 2005 for LCCD by doxygen 1.3.5