00001 #ifndef FWCore_Sources_ExternalInputSource_h 00002 #define FWCore_Sources_ExternalInputSource_h 00003 00004 /*---------------------------------------------------------------------- 00005 ----------------------------------------------------------------------*/ 00006 00007 #include <memory> 00008 #include <vector> 00009 #include <string> 00010 00011 #include "FWCore/Framework/interface/ConfigurableInputSource.h" 00012 #include "FWCore/Catalog/interface/InputFileCatalog.h" 00013 00014 namespace edm { 00015 class ParameterSet; 00016 class ParameterSetDescription; 00017 00018 class ExternalInputSource : public ConfigurableInputSource { 00019 public: 00020 ExternalInputSource(ParameterSet const& pset, InputSourceDescription const& desc, bool realData = true); 00021 virtual ~ExternalInputSource(); 00022 00023 std::vector<std::string> const& logicalFileNames() const {return catalog_.logicalFileNames();} 00024 std::vector<std::string> const& fileNames() const {return catalog_.fileNames();} 00025 InputFileCatalog& catalog() {return catalog_;} 00026 00027 static void fillDescription(ParameterSetDescription& desc); 00028 00029 protected: 00030 void incrementFileIndex() {++fileIndex_;} 00031 00032 private: 00033 virtual size_t fileIndex() const {return fileIndex_;} 00034 00035 size_t fileIndex_; 00036 InputFileCatalog catalog_; 00037 }; 00038 } 00039 #endif