| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

In This Package:

RootIOEvtSelector.h

Go to the documentation of this file.
00001 
00012 #ifndef ROOTIOEVTSELECTOR_H
00013 #define ROOTIOEVTSELECTOR_H
00014 
00015 #include "GaudiKernel/Service.h"
00016 #include "GaudiKernel/IEvtSelector.h"
00017 
00018 class IRootIOSvc;
00019 
00020 class RootIOEvtSelector : virtual public Service
00021                         , virtual public IEvtSelector
00022 {
00023 protected:
00024 
00025     IRootIOSvc* m_rioSvc;
00026 
00027     // A private class to carry around the primary entry number.
00028     class Context : public IEvtSelector::Context 
00029     {
00030         const RootIOEvtSelector* m_evtSel;
00031     public:
00032 
00033         // Primary "entry number", a.k.a. "event number", 
00034         // a.k.a. "top level algorithm execution number"
00035         int m_entry;            
00036 
00037         Context(const RootIOEvtSelector* evtsel) 
00038             : m_evtSel(evtsel), m_entry(-1) { }
00039         virtual ~Context() {  }
00040         virtual void* identifier() const { return (void*)m_evtSel; }
00041     };
00042 
00043 public:
00044 
00045 
00046     RootIOEvtSelector(const std::string& name, ISvcLocator* svcloc);
00047     virtual ~RootIOEvtSelector();
00048 
00050 
00058     virtual StatusCode setEntry(RootIOEvtSelector::Context& rc, int entry) const;
00059 
00060     virtual StatusCode initialize();
00061     virtual StatusCode finalize();
00062 
00063     // Satisfy IEvtSelector requirements:
00064 
00070     virtual StatusCode createContext(IEvtSelector::Context*& c) const;
00071 
00079     virtual StatusCode next(IEvtSelector::Context& c) const;
00080 
00087     virtual StatusCode next(IEvtSelector::Context& c, int jump) const;
00088 
00095     virtual StatusCode previous(IEvtSelector::Context& c) const;
00096 
00103     virtual StatusCode previous(IEvtSelector::Context& c, int jump) const;
00104 
00108     virtual StatusCode last(IEvtSelector::Context& refContext) const;
00109 
00115     virtual StatusCode rewind(IEvtSelector::Context& c) const;
00116 
00123     virtual StatusCode createAddress(const IEvtSelector::Context& c,
00124                                      IOpaqueAddress*& iop) const;
00125 
00130     virtual StatusCode releaseContext(IEvtSelector::Context*& c) const;
00131 
00139     virtual StatusCode resetCriteria(const std::string& cr,
00140                                      IEvtSelector::Context& c) const;
00141 
00142     StatusCode queryInterface(const InterfaceID& riid,void** ppif);
00143 
00144 
00145 };
00146 
00147 
00148 #endif  // ROOTIOEVTSELECTOR_H
| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

Generated on Mon Apr 11 20:18:19 2011 for RootIOSvc by doxygen 1.4.7