00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef GAUDISVC_PERSISTENCYSVC_EVTCOLLECTIONSTREAM_H
00011 #define GAUDISVC_PERSISTENCYSVC_EVTCOLLECTIONSTREAM_H
00012
00013
00014 #include <memory>
00015 #include <vector>
00016 #include <string>
00017
00018
00019 #include "GaudiKernel/Algorithm.h"
00020
00021 template <class ConcreteAlgorithm> class AlgFactory;
00022
00027 class EvtCollectionStream : public Algorithm {
00028 friend class AlgFactory<EvtCollectionStream>;
00029 typedef std::vector<std::string> ItemNames;
00030 typedef std::vector<DataStoreItem*> Items;
00031 protected:
00033 INTupleSvc* m_pTupleSvc;
00035 std::string m_storeName;
00037 ItemNames m_itemNames;
00039 Items m_itemList;
00040 protected:
00042 EvtCollectionStream(const std::string& name, ISvcLocator* pSvcLocator);
00044 virtual ~EvtCollectionStream();
00046 void clearItems();
00048 void addItem(const std::string& descriptor);
00049 public:
00051 virtual StatusCode initialize();
00053 virtual StatusCode finalize();
00055 virtual StatusCode execute();
00056 };
00057
00058 #endif // GAUDISVC_PERSISTENCYSVC_EVTCOLLECTIONSTREAM_H