Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2025-01-31 23:35:44

0001 #ifndef FWCore_Framework_InputSourceDescription_h
0002 #define FWCore_Framework_InputSourceDescription_h
0003 
0004 /*----------------------------------------------------------------------
0005 
0006 InputSourceDescription : the stuff that is needed to configure an
0007 input source that does not come in through the ParameterSet  
0008 ----------------------------------------------------------------------*/
0009 #include <memory>
0010 #include "DataFormats/Provenance/interface/ModuleDescription.h"
0011 #include "FWCore/Common/interface/FWCoreCommonFwd.h"
0012 #include "FWCore/Framework/interface/PreallocationConfiguration.h"
0013 
0014 namespace edm {
0015   class ProductRegistry;
0016   class ActivityRegistry;
0017   class BranchIDListHelper;
0018   class PreallocationConfiguration;
0019   class ThinnedAssociationsHelper;
0020 
0021   struct InputSourceDescription {
0022     InputSourceDescription() : moduleDescription_(), actReg_(), maxEvents_(-1), maxLumis_(-1), allocations_(nullptr) {}
0023 
0024     InputSourceDescription(ModuleDescription const& md,
0025                            std::shared_ptr<BranchIDListHelper> branchIDListHelper,
0026                            std::shared_ptr<ProcessBlockHelper> const& processBlockHelper,
0027                            std::shared_ptr<ThinnedAssociationsHelper> thinnedAssociationsHelper,
0028                            std::shared_ptr<ActivityRegistry> areg,
0029                            int maxEvents,
0030                            int maxLumis,
0031                            int maxSecondsUntilRampdown,
0032                            PreallocationConfiguration const& allocations)
0033         : moduleDescription_(md),
0034           branchIDListHelper_(branchIDListHelper),
0035           processBlockHelper_(processBlockHelper),
0036           thinnedAssociationsHelper_(thinnedAssociationsHelper),
0037           actReg_(areg),
0038           maxEvents_(maxEvents),
0039           maxLumis_(maxLumis),
0040           maxSecondsUntilRampdown_(maxSecondsUntilRampdown),
0041           allocations_(&allocations) {}
0042 
0043     ModuleDescription moduleDescription_;
0044     std::shared_ptr<BranchIDListHelper> branchIDListHelper_;
0045     std::shared_ptr<ProcessBlockHelper> processBlockHelper_;
0046     std::shared_ptr<ThinnedAssociationsHelper> thinnedAssociationsHelper_;
0047     std::shared_ptr<ActivityRegistry> actReg_;  // We do not use propagate_const because the registry itself is mutable.
0048     int maxEvents_;
0049     int maxLumis_;
0050     int maxSecondsUntilRampdown_;
0051     PreallocationConfiguration const* allocations_;
0052   };
0053 }  // namespace edm
0054 
0055 #endif