Object for one-to-zero/or/one associated data interface. More...
#include <OneTo01Data.h>
Public Types | |
using | aux_t = Aux |
Type of associated datum. More... | |
using | metadata_t = Metadata |
Type of associated metadata. More... | |
using | tag = Tag |
Type of tag. More... | |
using | main_t = Main |
Type of main datum. More... | |
using | aux_ptr_t = art::Ptr< aux_t > |
Type of art pointer to associated datum. More... | |
using | auxiliary_data_t = util::add_tag_t< aux_ptr_t, tag > |
Type of auxiliary data associated with a main item. More... | |
using | aux_coll_t = std::vector< aux_ptr_t > |
Type of collection of auxiliary data for all main elements. More... | |
using | assns_t = art::Assns< main_t, aux_t > |
Type of the source association. More... | |
Public Member Functions | |
OneTo01Data (aux_coll_t &&data) | |
bool | has (std::size_t i) const |
Returns whether the element i is associated with auxiliary datum. More... | |
auxiliary_data_t | get (std::size_t i) const |
Returns a copy of the pointer to data associated with element i . More... | |
auto | operator[] (std::size_t index) const -> decltype(auto) |
Returns the range with the specified index (no check performed). More... | |
Private Types | |
using | This_t = OneTo01Data< Main, Aux, Metadata, Tag > |
This type. More... | |
Private Attributes | |
aux_coll_t | auxData |
Data associated to the main collection. More... | |
Object for one-to-zero/or/one associated data interface.
Main | type of the main associated object (one) |
Aux | type of the additional associated objects (zero or one) |
Metadata | type of associated metadata |
Tag | tag this data is labeled with |
Allows:
Construction is not part of the interface.
The OneTo01Data
object acquires a vector of art pointers, one for each element in the main collection. It is an implementation detail for associations fulfilling the one-to-(zero-or-one) sequential association requirement.
The OneTo01Data
object also provides a container-like view of this information, where each element in the container is associated to a single Main
and it is an art pointer to the Right
element.
Association metadata is not accessible from this object.
proxy::details::OneTo01Data
is not supported yet. Definition at line 71 of file OneTo01Data.h.
using proxy::details::OneTo01Data< Main, Aux, Metadata, Tag >::assns_t = art::Assns<main_t, aux_t> |
Type of the source association.
Definition at line 97 of file OneTo01Data.h.
using proxy::details::OneTo01Data< Main, Aux, Metadata, Tag >::aux_coll_t = std::vector<aux_ptr_t> |
Type of collection of auxiliary data for all main elements.
Definition at line 94 of file OneTo01Data.h.
using proxy::details::OneTo01Data< Main, Aux, Metadata, Tag >::aux_ptr_t = art::Ptr<aux_t> |
Type of art pointer to associated datum.
Definition at line 88 of file OneTo01Data.h.
using proxy::details::OneTo01Data< Main, Aux, Metadata, Tag >::aux_t = Aux |
Type of associated datum.
Definition at line 76 of file OneTo01Data.h.
using proxy::details::OneTo01Data< Main, Aux, Metadata, Tag >::auxiliary_data_t = util::add_tag_t<aux_ptr_t, tag> |
Type of auxiliary data associated with a main item.
Definition at line 91 of file OneTo01Data.h.
using proxy::details::OneTo01Data< Main, Aux, Metadata, Tag >::main_t = Main |
Type of main datum.
Definition at line 85 of file OneTo01Data.h.
using proxy::details::OneTo01Data< Main, Aux, Metadata, Tag >::metadata_t = Metadata |
Type of associated metadata.
Definition at line 79 of file OneTo01Data.h.
using proxy::details::OneTo01Data< Main, Aux, Metadata, Tag >::tag = Tag |
Type of tag.
Definition at line 82 of file OneTo01Data.h.
|
private |
This type.
Definition at line 72 of file OneTo01Data.h.
|
inline |
Definition at line 100 of file OneTo01Data.h.
|
inline |
Returns a copy of the pointer to data associated with element i
.
Definition at line 107 of file OneTo01Data.h.
|
inline |
Returns whether the element i
is associated with auxiliary datum.
Definition at line 103 of file OneTo01Data.h.
|
inline |
Returns the range with the specified index (no check performed).
Definition at line 112 of file OneTo01Data.h.
|
private |
Data associated to the main collection.
Definition at line 122 of file OneTo01Data.h.