CMS 3D CMS Logo

/data/doxygen/doxygen-1.7.3/gen/CMSSW_4_2_8/src/FWCore/Sources/interface/VectorInputSource.h

Go to the documentation of this file.
00001 #ifndef FWCore_Sources_VectorInputSource_h
00002 #define FWCore_Sources_VectorInputSource_h
00003 
00004 /*----------------------------------------------------------------------
00005 VectorInputSource: Abstract interface for vector input sources.
00006 ----------------------------------------------------------------------*/
00007 
00008 #include "FWCore/Sources/interface/EDInputSource.h"
00009 
00010 #include "boost/shared_ptr.hpp"
00011 
00012 #include <memory>
00013 #include <string>
00014 #include <vector>
00015 
00016 namespace edm {
00017   class EventPrincipal;
00018   struct InputSourceDescription;
00019   class ParameterSet;
00020   class VectorInputSource : public EDInputSource {
00021   public:
00022     typedef boost::shared_ptr<EventPrincipal> EventPrincipalVectorElement;
00023     typedef std::vector<EventPrincipalVectorElement> EventPrincipalVector;
00024     explicit VectorInputSource(ParameterSet const& pset, InputSourceDescription const& desc);
00025     virtual ~VectorInputSource();
00026 
00027     void readMany(int number, EventPrincipalVector& result);
00028     void readManyRandom(int number, EventPrincipalVector& result, unsigned int& fileSeqNumber);
00029     void readManySequential(int number, EventPrincipalVector& result, unsigned int& fileSeqNumber);
00030     void readManySpecified(std::vector<EventID> const& events, EventPrincipalVector& result);
00031     void dropUnwantedBranches(std::vector<std::string> const& wantedBranches);
00032 
00033   private:
00034     virtual void readMany_(int number, EventPrincipalVector& result) = 0;
00035     virtual void readManyRandom_(int number, EventPrincipalVector& result, unsigned int& fileSeqNumber) = 0;
00036     virtual void readManySequential_(int number, EventPrincipalVector& result, unsigned int& fileSeqNumber) = 0;
00037     virtual void readManySpecified_(std::vector<EventID> const& events, EventPrincipalVector& result) = 0;
00038     virtual void dropUnwantedBranches_(std::vector<std::string> const& wantedBranches) = 0;
00039   };
00040 }
00041 #endif