LArSoft
v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
|
Helper to create a proxy as auxiliary data for another proxy. More...
#include "WithProxyAsAuxStructBase.h"
Public Member Functions | |
WithProxyAsAuxStructBase (ArgTuple &&args) | |
template<typename CollProxy , typename Event , typename Handle , typename MainArgs > | |
auto | createAuxProxyMaker (Event const &event, Handle &&mainHandle, MainArgs const &mainArgs) |
Creates the associated data proxy by means of ProxyAsAuxProxyMaker . More... | |
Protected Member Functions | |
template<typename CollProxy , typename Event , typename Handle , typename MainArgs , std::size_t... I> | |
auto | createAuxProxyImpl (Event const &event, Handle &&mainHandle, MainArgs const &mainArgs, std::index_sequence< I... >) |
Protected Attributes | |
ArgTuple | args |
Argument construction storage as tuple. More... | |
Static Protected Attributes | |
static constexpr std::size_t | NArgs = std::tuple_size<ArgTuple>() |
Number of arguments stored. More... | |
Private Types | |
template<typename CollProxy > | |
using | main_t = typename CollProxy::main_element_t |
Type of main data product element from a proxy of type CollProxy . More... | |
using | aux_proxy_t = AuxProxy |
Type of auxiliary proxy. More... | |
using | tag = AuxTag |
Tag for the associated data (same as the data type itself). More... | |
template<typename CollProxy > | |
using | proxy_maker_t = ProxyAsAuxProxyMaker< main_t< CollProxy >, aux_proxy_t, CollProxy, tag > |
Class to create the data proxy associated to a CollProxy . More... | |
Helper to create a proxy as auxiliary data for another proxy.
AuxProxy | type of collection proxy associated to the main one |
ArgTuple | type of arguments required for the creation of proxy |
AuxTag | tag for the associated data (default: as Aux ) |
This class stores user arguments for the construction of a collection proxy to be used as auxiliary data for another proxy. It can use those arguments plus some additional one to create the collection proxy data itself. This additional information is provided by getCollection()
.
The auxiliary data will be identified by type AuxTag
.
This is not a customization point: to have a custom associated data produced, choose and then specialize the ProxyAsAuxProxyMaker
class.
Definition at line 53 of file WithProxyAsAuxStructBase.h.
|
private |
Type of auxiliary proxy.
Definition at line 64 of file WithProxyAsAuxStructBase.h.
|
private |
Type of main data product element from a proxy of type CollProxy
.
Definition at line 61 of file WithProxyAsAuxStructBase.h.
|
private |
Class to create the data proxy associated to a CollProxy
.
Definition at line 71 of file WithProxyAsAuxStructBase.h.
|
private |
Tag for the associated data (same as the data type itself).
Definition at line 67 of file WithProxyAsAuxStructBase.h.
|
inline |
Constructor: steals the arguments, to be used by createAuxProxyMaker()
.
Definition at line 76 of file WithProxyAsAuxStructBase.h.
|
inlineprotected |
Definition at line 98 of file WithProxyAsAuxStructBase.h.
References proxy::ProxyAsAuxProxyMakerBase< Main, AuxProxy, Tag >::make().
|
inline |
Creates the associated data proxy by means of ProxyAsAuxProxyMaker
.
Definition at line 80 of file WithProxyAsAuxStructBase.h.
|
protected |
Argument construction storage as tuple.
Definition at line 87 of file WithProxyAsAuxStructBase.h.
|
staticprotected |
Number of arguments stored.
Definition at line 90 of file WithProxyAsAuxStructBase.h.