1 #ifndef FWCore_Framework_DependentRecordImplementation_h 2 #define FWCore_Framework_DependentRecordImplementation_h 22 #include "boost/mpl/begin_end.hpp" 23 #include "boost/mpl/find.hpp" 25 #include <type_traits> 40 namespace eventsetup {
42 template <
class RecordT,
class ListT>
50 template <
class DepRecordT>
57 "Trying to get a Record from another Record where the second Record is not dependent on the first Record.");
60 return eventSetupT.get<DepRecordT>();
62 std::ostringstream sstrm;
63 sstrm <<
"While getting dependent Record from Record " << this->
key().
type().
name();
69 template <
class DepRecordT>
76 "Trying to get a Record from another Record where the second Record is not dependent on the first Record.");
78 return eventSetupT.tryToGet<DepRecordT>();
83 template <
typename ProductT,
typename DepRecordT>
89 "Trying to get a product with an ESGetToken specifying a Record from another Record where the " 90 "second Record is not dependent on the first Record.");
91 return getRecord<DepRecordT>().
getHandle(iToken);
96 template <
typename ProductT,
typename DepRecordT>
102 "Trying to get a product with an ESGetToken specifying a Record from another Record where the " 103 "second Record is not dependent on the first Record.");
109 template <
typename ProductT,
typename DepRecordT>
115 "Trying to get a product with an ESGetToken specifying a Record from another Record where the " 116 "second Record is not dependent on the first Record.");
117 return getRecord<DepRecordT>().
get(iToken);
120 template <
typename ProductT,
typename DepRecordT>
std::optional< DepRecordT > tryToGetRecord() const
char const * name() const
ESHandle< ProductT > getHandle(ESGetToken< ProductT, DepRecordT > const &iToken) const
ESTransientHandle< ProductT > getTransientHandle(ESGetToken< ProductT, DepRecordT > const &iToken) const
const DepRecordT getRecord() const
unsigned int transitionID() const
EventSetupImpl const & eventSetup() const
void addContext(std::string const &context)
const TypeTag & type() const
DependentRecordImplementation()
ESProxyIndex const * getTokenIndices() const
EventSetupRecordKey key() const override