LArSoft
v06_85_00
Liquid Argon Software toolkit - http://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 58 of file WithProxyAsAuxStructBase.h.
|
private |
Type of auxiliary proxy.
Definition at line 71 of file WithProxyAsAuxStructBase.h.
|
private |
Type of main data product element from a proxy of type CollProxy
.
Definition at line 68 of file WithProxyAsAuxStructBase.h.
|
private |
Class to create the data proxy associated to a CollProxy
.
Definition at line 79 of file WithProxyAsAuxStructBase.h.
|
private |
Tag for the associated data (same as the data type itself).
Definition at line 74 of file WithProxyAsAuxStructBase.h.
|
inline |
Constructor: steals the arguments, to be used by createAuxProxyMaker()
.
Definition at line 85 of file WithProxyAsAuxStructBase.h.
References proxy::details::WithProxyAsAuxStructBase< AuxProxy, ArgTuple, AuxTag >::createAuxProxyMaker().
|
inlineprotected |
Definition at line 112 of file WithProxyAsAuxStructBase.h.
References proxy::ProxyAsAuxProxyMakerBase< Main, AuxProxy, Tag >::make().
|
inline |
Creates the associated data proxy by means of ProxyAsAuxProxyMaker
.
Definition at line 91 of file WithProxyAsAuxStructBase.h.
Referenced by proxy::details::WithProxyAsAuxStructBase< AuxProxy, ArgTuple, AuxTag >::WithProxyAsAuxStructBase().
|
protected |
Argument construction storage as tuple.
Definition at line 102 of file WithProxyAsAuxStructBase.h.
|
staticprotected |
Number of arguments stored.
Definition at line 105 of file WithProxyAsAuxStructBase.h.