CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
VectorInputSource.h
Go to the documentation of this file.
1 #ifndef FWCore_Sources_VectorInputSource_h
2 #define FWCore_Sources_VectorInputSource_h
3 
4 
5 /*----------------------------------------------------------------------
6 
7 VectorInputSource: Abstract interface for vector input sources.
8 
9 ----------------------------------------------------------------------*/
10 
11 #include <memory>
12 #include <string>
13 #include <vector>
14 
15 #include "boost/shared_ptr.hpp"
16 
18 
19 namespace edm {
20  class EventPrincipal;
21  class InputSourceDescription;
22  class ParameterSet;
24  public:
25  typedef boost::shared_ptr<EventPrincipal> EventPrincipalVectorElement;
26  typedef std::vector<EventPrincipalVectorElement> EventPrincipalVector;
27  explicit VectorInputSource(ParameterSet const& pset, InputSourceDescription const& desc);
28  virtual ~VectorInputSource();
29 
30  void readMany(int number, EventPrincipalVector& result);
31  void readManyRandom(int number, EventPrincipalVector& result, unsigned int& fileSeqNumber);
32  void readManySequential(int number, EventPrincipalVector& result, unsigned int& fileSeqNumber);
33  void readManySpecified(std::vector<EventID> const& events, EventPrincipalVector& result);
34  void dropUnwantedBranches(std::vector<std::string> const& wantedBranches);
35 
36  private:
37  virtual void readMany_(int number, EventPrincipalVector& result) = 0;
38  virtual void readManyRandom_(int number, EventPrincipalVector& result, unsigned int& fileSeqNumber) = 0;
39  virtual void readManySequential_(int number, EventPrincipalVector& result, unsigned int& fileSeqNumber) = 0;
40  virtual void readManySpecified_(std::vector<EventID> const& events, EventPrincipalVector& result) = 0;
41  virtual void dropUnwantedBranches_(std::vector<std::string> const& wantedBranches) = 0;
42  };
43 }
44 
45 #endif
virtual void readManySpecified_(std::vector< EventID > const &events, EventPrincipalVector &result)=0
void dropUnwantedBranches(std::vector< std::string > const &wantedBranches)
virtual void readManySequential_(int number, EventPrincipalVector &result, unsigned int &fileSeqNumber)=0
void readMany(int number, EventPrincipalVector &result)
void readManyRandom(int number, EventPrincipalVector &result, unsigned int &fileSeqNumber)
tuple result
Definition: query.py:137
virtual void readManyRandom_(int number, EventPrincipalVector &result, unsigned int &fileSeqNumber)=0
std::vector< EventPrincipalVectorElement > EventPrincipalVector
tuple pset
Definition: CrabTask.py:85
void readManySequential(int number, EventPrincipalVector &result, unsigned int &fileSeqNumber)
VectorInputSource(ParameterSet const &pset, InputSourceDescription const &desc)
boost::shared_ptr< EventPrincipal > EventPrincipalVectorElement
tuple events
Definition: patZpeak.py:19
virtual void readMany_(int number, EventPrincipalVector &result)=0
virtual void dropUnwantedBranches_(std::vector< std::string > const &wantedBranches)=0
void readManySpecified(std::vector< EventID > const &events, EventPrincipalVector &result)