File indexing completed on 2024-05-11 03:34:09
0001 #ifndef FWCore_Framework_global_OutputModule_h
0002 #define FWCore_Framework_global_OutputModule_h
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022 #include "FWCore/Framework/interface/global/outputmoduleAbilityToImplementor.h"
0023
0024
0025 namespace edm {
0026 namespace global {
0027 template <typename... T>
0028 class OutputModule : public virtual OutputModuleBase, public outputmodule::AbilityToImplementor<T>::Type... {
0029 public:
0030 OutputModule(edm::ParameterSet const& iPSet)
0031 : OutputModuleBase(iPSet), outputmodule::AbilityToImplementor<T>::Type(iPSet)... {}
0032 OutputModule(const OutputModule&) = delete;
0033 const OutputModule& operator=(const OutputModule&) = delete;
0034
0035
0036
0037
0038
0039 #ifdef __INTEL_COMPILER
0040 virtual ~OutputModule() = default;
0041 #endif
0042
0043
0044 bool wantsProcessBlocks() const noexcept final { return WantsProcessBlockTransitions<T...>::value; }
0045 bool wantsInputProcessBlocks() const noexcept final { return WantsInputProcessBlockTransitions<T...>::value; }
0046 bool wantsStreamRuns() const noexcept final { return WantsStreamRunTransitions<T...>::value; }
0047 bool wantsStreamLuminosityBlocks() const noexcept final {
0048 return WantsStreamLuminosityBlockTransitions<T...>::value;
0049 }
0050
0051
0052
0053
0054
0055 private:
0056
0057 };
0058 }
0059 }
0060
0061 #endif