|
Gaudi Framework, version v23r2 |
| Home | Generated: Thu Jun 28 2012 |
00001 // ==================================================================== 00002 // EvtCollectionStream.h 00003 // -------------------------------------------------------------------- 00004 // 00005 // Package : GaudiSvc/PersistencySvc 00006 // 00007 // Author : Markus Frank 00008 // 00009 // ==================================================================== 00010 #ifndef GAUDISVC_PERSISTENCYSVC_EVTCOLLECTIONSTREAM_H 00011 #define GAUDISVC_PERSISTENCYSVC_EVTCOLLECTIONSTREAM_H 00012 00013 // STL include files 00014 #include <memory> 00015 #include <vector> 00016 #include <string> 00017 00018 // Required for inheritance 00019 #include "GaudiKernel/Algorithm.h" 00020 // forward declarations 00021 template <class ConcreteAlgorithm> class AlgFactory; 00022 namespace { template <class P, class S> class Factory; } 00023 00024 00029 class EvtCollectionStream : public Algorithm { 00030 friend class AlgFactory<EvtCollectionStream>; 00031 friend class Factory<EvtCollectionStream,IAlgorithm* (std::string,ISvcLocator *)>; 00032 00033 typedef std::vector<std::string> ItemNames; 00034 typedef std::vector<DataStoreItem*> Items; 00035 protected: 00037 SmartIF<INTupleSvc> m_pTupleSvc; 00039 std::string m_storeName; 00041 ItemNames m_itemNames; 00043 Items m_itemList; 00044 protected: 00046 EvtCollectionStream(const std::string& name, ISvcLocator* pSvcLocator); 00048 virtual ~EvtCollectionStream(); 00050 void clearItems(); 00052 void addItem(const std::string& descriptor); 00053 public: 00055 virtual StatusCode initialize(); 00057 virtual StatusCode finalize(); 00059 virtual StatusCode execute(); 00060 }; 00061 00062 #endif // GAUDISVC_PERSISTENCYSVC_EVTCOLLECTIONSTREAM_H