LCIO  02.17
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
SIOReader.h
Go to the documentation of this file.
1 #ifndef SIO_SIOREADER_H
2 #define SIO_SIOREADER_H 1
3 
4 // -- std headers
5 #include <set>
6 
7 // -- lcio headers
8 #include "IO/LCReader.h"
9 #include "IO/LCEventListener.h"
10 #include "IO/LCRunListener.h"
11 #include "MT/LCReaderListener.h"
12 #include "MT/LCReader.h"
13 // #include "IOIMPL/LCEventIOImpl.h"
14 // #include "IOIMPL/LCRunHeaderIOImpl.h"
15 // #include "SIO/SIOHandlerMgr.h"
16 // #include "SIO/LCIORandomAccessMgr.h"
17 // #include "EVENT/LCIO.h"
18 // #include "LCIOTypes.h"
19 
20 // -- sio headers
21 // #include "sio/definitions.h"
22 // #include "sio/buffer.h"
23 
24 namespace SIO {
25 
31  class SIOReader : public IO::LCReader, private MT::LCReaderListener { // TODO restart from here !
32  public:
35  SIOReader( int lcReaderFlag=0 ) ;
36 
38  SIOReader(const SIOReader&) = delete ;
40  SIOReader& operator=(const SIOReader&) = delete ;
41 
43  virtual ~SIOReader() ;
44 
51  void open(const std::vector<std::string>& filenames) override ;
52 
56  void open(const std::string & filename) override ;
57 
63 
69  EVENT::LCRunHeader * readNextRunHeader(int accessMode) override ;
70 
71 
76  EVENT::LCEvent* readNextEvent() override ;
77 
78 
84  EVENT::LCEvent* readNextEvent( int accessMode) override ;
85 
86 
91  int getNumberOfEvents() override ;
92 
93 
98  int getNumberOfRuns() override ;
99 
100 
105  void getRuns(EVENT::IntVec & runs) override ;
106 
113  void getEvents(EVENT::IntVec & events) override ;
114 
115 
119  void skipNEvents(int n) override ;
120 
121 
122 
127  void setReadCollectionNames(const std::vector<std::string>& colnames) override ;
128 
129 
135  EVENT::LCRunHeader * readRunHeader(int runNumber ) override ;
136 
142  EVENT::LCRunHeader * readRunHeader(int runNumber, int accessMode ) override ;
143 
149  EVENT::LCEvent * readEvent(int runNumber, int evtNumber) override ;
150 
151 
157  EVENT::LCEvent * readEvent(int runNumber, int evtNumber, int accessMode) override ;
158 
163  void close() override ;
164 
165  // interface for listeners
166 
169  void registerLCEventListener(IO::LCEventListener * ls) override ;
170 
173  void removeLCEventListener(IO::LCEventListener * ls) override ;
174 
177  void registerLCRunListener(IO::LCRunListener * ls) override ;
178 
181  void removeLCRunListener(IO::LCRunListener * ls) override ;
182 
190  void readStream() override ;
191 
199  void readStream(int maxRecord) override ;
200 
201  private:
204 
205  private:
216 
217  }; // class
218 } // namespace
219 
220 #endif /* ifndef SIO_SIOREADER_H */
void registerLCRunListener(IO::LCRunListener *ls) override
Registers a listener for reading LCEventsLCRunHeaders from a stream.
Definition: SIOReader.cc:173
Interface for the run header.
Definition: LCRunHeader.h:23
EVENT::LCEvent * readEvent(int runNumber, int evtNumber) override
Reads the specified event from file.
Definition: SIOReader.cc:137
LCEvent * event
Definition: lsh.cc:80
MT::LCReader _reader
The underlying implementation of the LCReader.
Definition: SIOReader.h:207
SIOReader(int lcReaderFlag=0)
Default constructor.
Definition: SIOReader.cc:22
EVENT::LCRunHeader * readNextRunHeader() override
Reads the next run header from the file.
Definition: SIOReader.cc:77
Listener for the occurence of LCEvents when reading a stream.
STL class.
void getRuns(EVENT::IntVec &runs) override
Return the run numbers of the runs (run headers) in the file - the file has to be open...
Definition: SIOReader.cc:65
void getEvents(EVENT::IntVec &events) override
Return the run and event numbers of the events in the file - the file has to be open.
Definition: SIOReader.cc:71
void removeLCEventListener(IO::LCEventListener *ls) override
Remove a listener for reading LCEvents from a stream.
Definition: SIOReader.cc:167
int getNumberOfEvents() override
Return the number of events in the file - the file has to be open.
Definition: SIOReader.cc:53
virtual ~SIOReader()
Destructor.
Definition: SIOReader.cc:29
EVENT::LCRunHeader * readRunHeader(int runNumber) override
Reads the specified runHeader from file.
Definition: SIOReader.cc:119
EVENT::LCEvent * readNextEvent() override
Reads the next event from the file.
Definition: SIOReader.cc:95
void open(const std::vector< std::string > &filenames) override
Opens a list of files for reading (read-only).
Definition: SIOReader.cc:41
Listener for the occurence of LCRunHeader when reading a stream.
Definition: LCRunListener.h:24
void setReadCollectionNames(const std::vector< std::string > &colnames) override
Limit the collection names that are going to be read to the subset given in the vector - all other co...
Definition: SIOReader.cc:35
Interface for reading data from LCIO.
Definition: LCReader.h:32
Implementation of a LCReader for parallel processing use.
Definition: LCReader.h:37
void registerLCEventListener(IO::LCEventListener *ls) override
Registers a listener for reading LCEvents from a stream.
Definition: SIOReader.cc:161
The main event interface.
Definition: LCEvent.h:31
void removeLCRunListener(IO::LCRunListener *ls) override
Remove a listener for reading LCRunHeaders from a stream.
Definition: SIOReader.cc:179
EVENT::LCRunHeader * _currentRun
pointer to current RunHeader
Definition: SIOReader.h:215
Concrete implementation of LCWriter using SIO.
Definition: SIOReader.h:31
int getNumberOfRuns() override
Return the number of runs (run headers) in the file - the file has to be open.
Definition: SIOReader.cc:59
SIOReader & operator=(const SIOReader &)=delete
no assignment operator
void processRunHeader(std::shared_ptr< EVENT::LCRunHeader > hdr) override
Definition: SIOReader.cc:211
LCReaderListener class Interface for MT::LCReader::readStream() callbacks.
void processEvent(std::shared_ptr< EVENT::LCEvent > event) override
Definition: SIOReader.cc:197
EVENT::LCEvent * _currentEvent
pointer to current Event
Definition: SIOReader.h:213
void readStream() override
Reads the input stream and notifies registered listeners according to the object type found in the st...
Definition: SIOReader.cc:185
std::set< IO::LCEventListener * > _evtListeners
The event listeners.
Definition: SIOReader.h:211
void close() override
Closes the output file/stream etc.
Definition: SIOReader.cc:155
void skipNEvents(int n) override
Skips the next n events from the current position.
Definition: SIOReader.cc:113
std::set< IO::LCRunListener * > _runListeners
The run listeners.
Definition: SIOReader.h:209