Helper to create associated data proxy. More...
#include <WithAssociatedStructBase.h>
Public Types | |
template<typename CollProxy > | |
using | aux_collection_proxy_t = typename proxy_maker_t< CollProxy >::aux_collection_proxy_t |
Type of association proxy created for the specified CollProxy . More... | |
Public Member Functions | |
WithAssociatedStructBase (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 ProxyMaker . More... | |
Protected Member Functions | |
template<typename CollProxy , typename Event , typename Handle , typename MainArgs , std::size_t... I> | |
auto | createAssnProxyMaker (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_t = Aux |
Type of associated data. More... | |
using | metadata_t = Metadata |
Type of associated metadata. More... | |
using | tag = AuxTag |
Tag for the associated data (same as the data type itself). More... | |
template<typename CollProxy > | |
using | proxy_maker_t = ProxyMaker< CollProxy > |
Class to create the data proxy associated to a CollProxy . More... | |
Helper to create associated data proxy.
Aux | type of data associated to the main one |
Metadata | type of metadata of the association |
ArgTuple | type of arguments required for the creation of proxy |
ProxyMaker | template type of the proxy maker class |
AuxTag | tag for the associated data (default: as Aux ) |
This class stores user arguments for the construction of a proxy to associated data of type Aux
. It can use that information plus some additional one to create the associated data itself. This additional information is provided by getCollection()
.
The association will be identified by type AuxTag
.
This is not a customization point: to have a custom associated data produced, choose and then specialize the ProxyMaker
class.
Definition at line 71 of file WithAssociatedStructBase.h.
using proxy::details::WithAssociatedStructBase< Aux, Metadata, ArgTuple, ProxyMaker, AuxTag >::aux_collection_proxy_t = typename proxy_maker_t<CollProxy>::aux_collection_proxy_t |
Type of association proxy created for the specified CollProxy
.
Definition at line 95 of file WithAssociatedStructBase.h.
|
private |
Type of associated data.
Definition at line 78 of file WithAssociatedStructBase.h.
|
private |
Type of main data product element from a proxy of type CollProxy
.
Definition at line 75 of file WithAssociatedStructBase.h.
|
private |
Type of associated metadata.
Definition at line 81 of file WithAssociatedStructBase.h.
|
private |
Class to create the data proxy associated to a CollProxy
.
Definition at line 88 of file WithAssociatedStructBase.h.
|
private |
Tag for the associated data (same as the data type itself).
Definition at line 84 of file WithAssociatedStructBase.h.
|
inline |
Constructor: steals the arguments, to be used by createAuxProxyMaker()
.
Definition at line 99 of file WithAssociatedStructBase.h.
|
inlineprotected |
Definition at line 126 of file WithAssociatedStructBase.h.
|
inline |
Creates the associated data proxy by means of ProxyMaker
.
Definition at line 105 of file WithAssociatedStructBase.h.
|
protected |
Argument construction storage as tuple.
Definition at line 116 of file WithAssociatedStructBase.h.
|
staticprotected |
Number of arguments stored.
Definition at line 119 of file WithAssociatedStructBase.h.