File indexing completed on 2025-04-24 01:28:01
0001 #ifndef FWCore_ServiceRegistry_PathsAndConsumesOfModulesBase_h
0002 #define FWCore_ServiceRegistry_PathsAndConsumesOfModulesBase_h
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022 #include "FWCore/ServiceRegistry/interface/ServiceRegistryfwd.h"
0023 #include "FWCore/Utilities/interface/BranchType.h"
0024 #include "FWCore/Utilities/interface/Transition.h"
0025
0026 #include <string>
0027 #include <vector>
0028
0029 namespace edm {
0030
0031 class ModuleDescription;
0032
0033 namespace eventsetup {
0034 struct ComponentDescription;
0035 }
0036
0037 class PathsAndConsumesOfModulesBase {
0038 public:
0039 virtual ~PathsAndConsumesOfModulesBase();
0040
0041 std::vector<std::string> const& paths() const { return doPaths(); }
0042 std::vector<std::string> const& endPaths() const { return doEndPaths(); }
0043
0044 std::vector<ModuleDescription const*> const& allModules() const { return doAllModules(); }
0045
0046 ModuleDescription const* moduleDescription(unsigned int moduleID) const { return doModuleDescription(moduleID); }
0047
0048 std::vector<ModuleDescription const*> const& modulesOnPath(unsigned int pathIndex) const {
0049 return doModulesOnPath(pathIndex);
0050 }
0051
0052 std::vector<ModuleDescription const*> const& modulesOnEndPath(unsigned int endPathIndex) const {
0053 return doModulesOnEndPath(endPathIndex);
0054 }
0055
0056
0057
0058
0059
0060
0061
0062
0063
0064
0065
0066 std::vector<ModuleDescription const*> const& modulesWhoseProductsAreConsumedBy(
0067 unsigned int moduleID, BranchType branchType = InEvent) const {
0068 return doModulesWhoseProductsAreConsumedBy(moduleID, branchType);
0069 }
0070
0071
0072
0073
0074
0075
0076
0077
0078
0079 std::vector<eventsetup::ComponentDescription const*> const& esModulesWhoseProductsAreConsumedBy(
0080 unsigned int moduleID, Transition transition) const {
0081 return doESModulesWhoseProductsAreConsumedBy(moduleID, transition);
0082 }
0083
0084
0085
0086
0087
0088
0089
0090
0091
0092
0093
0094
0095
0096 std::vector<ModuleConsumesInfo> moduleConsumesInfos(unsigned int moduleID) const;
0097
0098 std::vector<ModuleConsumesESInfo> moduleConsumesESInfos(unsigned int moduleID) const;
0099
0100 unsigned int largestModuleID() const { return doLargestModuleID(); }
0101
0102
0103 std::vector<eventsetup::ComponentDescription const*> const& allESModules() const { return doAllESModules(); }
0104
0105 eventsetup::ComponentDescription const* componentDescription(unsigned int esModuleID) const {
0106 return doComponentDescription(esModuleID);
0107 }
0108
0109
0110
0111
0112
0113
0114
0115
0116
0117 std::vector<std::vector<eventsetup::ComponentDescription const*>> const&
0118 esModulesWhoseProductsAreConsumedByESModule() const {
0119 return doESModulesWhoseProductsAreConsumedByESModule();
0120 }
0121
0122
0123
0124
0125
0126
0127
0128
0129
0130
0131
0132
0133
0134 std::vector<std::vector<ESModuleConsumesInfo>> esModuleConsumesInfos(unsigned int esModuleID) const;
0135
0136 private:
0137 virtual std::vector<std::string> const& doPaths() const = 0;
0138 virtual std::vector<std::string> const& doEndPaths() const = 0;
0139 virtual std::vector<ModuleDescription const*> const& doAllModules() const = 0;
0140 virtual ModuleDescription const* doModuleDescription(unsigned int moduleID) const = 0;
0141 virtual std::vector<ModuleDescription const*> const& doModulesOnPath(unsigned int pathIndex) const = 0;
0142 virtual std::vector<ModuleDescription const*> const& doModulesOnEndPath(unsigned int endPathIndex) const = 0;
0143 virtual std::vector<ModuleDescription const*> const& doModulesWhoseProductsAreConsumedBy(
0144 unsigned int moduleID, BranchType branchType) const = 0;
0145 virtual std::vector<eventsetup::ComponentDescription const*> const& doESModulesWhoseProductsAreConsumedBy(
0146 unsigned int moduleID, Transition) const = 0;
0147 virtual std::vector<ModuleConsumesInfo> doModuleConsumesInfos(unsigned int moduleID) const = 0;
0148 virtual std::vector<ModuleConsumesESInfo> doModuleConsumesESInfos(unsigned int moduleID) const = 0;
0149 virtual unsigned int doLargestModuleID() const = 0;
0150 virtual std::vector<eventsetup::ComponentDescription const*> const& doAllESModules() const = 0;
0151 virtual eventsetup::ComponentDescription const* doComponentDescription(unsigned int esModuleID) const = 0;
0152 virtual std::vector<std::vector<eventsetup::ComponentDescription const*>> const&
0153 doESModulesWhoseProductsAreConsumedByESModule() const = 0;
0154 virtual std::vector<std::vector<ESModuleConsumesInfo>> doESModuleConsumesInfos(unsigned int esModuleID) const = 0;
0155 };
0156 }
0157 #endif