11 #ifndef LARDATA_RECOBASEPROXY_PROXYBASE_WITHPARALLELDATA_H 12 #define LARDATA_RECOBASEPROXY_PROXYBASE_WITHPARALLELDATA_H 30 template <
typename Aux,
typename ArgTuple,
typename AuxTag = Aux>
35 ParallelDataProxyMakerWrapper<Aux, AuxTag>::template maker_t,
41 <
typename Aux,
typename ArgTuple,
typename AuxColl,
typename AuxTag = Aux>
95 template <
typename Aux,
typename AuxTag,
typename... Args>
97 using ArgTuple_t = std::tuple<Args&&...>;
98 ArgTuple_t argsTuple(std::forward<Args>(args)...);
100 (std::move(argsTuple));
181 template <
typename Aux,
typename... Args>
183 {
return withParallelDataAs<Aux, Aux>(std::forward<Args>(args)...); }
232 template <
typename AuxTag,
typename AuxColl>
234 std::tuple<AuxColl const&> args = { auxColl };
260 template <
typename AuxColl>
262 {
return wrapParallelDataAs<util::collection_value_t<AuxColl>>(auxColl); }
271 #endif // LARDATA_RECOBASEPROXY_PROXYBASE_WITHPARALLELDATA_H Helper to create associated data proxy.
auto wrapParallelDataAs(AuxColl const &auxColl)
Uses a collection as auxiliary data for a collection proxy.
auto withParallelData(Args &&...args)
Helper function to merge an auxiliary data product into the proxy.
Encloses LArSoft data product proxy objects and utilities.See this doxygen module for an introduction...
Infrastructure for the addition of parallel data to a proxy.
WithAssociatedStructBase< Aux, void, ArgTuple, ParallelDataProxyMakerWrapper< Aux, AuxTag >::template maker_t, AuxTag > WithParallelCollectionStruct
auto wrapParallelData(AuxColl const &auxColl)
Uses a collection as auxiliary data for a collection proxy.
auto withParallelDataAs(Args &&...args)
Helper function to merge an auxiliary data product into the proxy.
Template class to declare addition of associated data to a proxy.