LArSoft  v06_85_00
Liquid Argon Software toolkit - http://larsoft.org/
proxy::details::AssnsNode< ArtAssnsIterValue > Class Template Reference

This type extends the interface of the art pointer to Assns right side. More...

#include "AssociatedData.h"

Inheritance diagram for proxy::details::AssnsNode< ArtAssnsIterValue >:

Public Types

using main_t = typename assns_node_traits_t::left_t
 Type of the main (left) object in the association. More...
 
using value_t = typename assns_node_traits_t::right_t
 Type of the associated (right) object. More...
 
using data_t = typename assns_node_traits_t::data_t
 Type of the associated additional data (void if none). More...
 
using mainptr_t = typename assns_node_traits_t::leftptr_t
 Type of art pointer to the main (left) object in the association. More...
 
using valueptr_t = typename assns_node_traits_t::rightptr_t
 Type of art pointer to the associated (right) object. More...
 
using dataptr_t = typename assns_node_traits_t::dataptr_t
 Type of the pointer to associated additional data. More...
 

Public Member Functions

Access to the associated (right) value
valueptr_t const & valuePtr () const
 Returns the art pointer to the associated value. More...
 
value_t const & value () const
 Returns a reference to the associated value. More...
 
Access to the key (left) value
mainptr_t const & mainPtr () const
 Returns the art pointer to the main value, key of the association. More...
 
main_t const & main () const
 Returns the main value, key of the association. More...
 
Interface to the art pointer to the associated (right) value
 operator valueptr_t const & () const &
 Implicit conversion to art pointer of the associated object. More...
 
 operator valueptr_t () const &&
 Implicit conversion to art pointer of the associated object. More...
 
value_t const & operator* () const
 Returns a reference to the associated value (alias of value()). More...
 
valueptr_t operator-> () const
 Returns the associated value (alias of valuePtr()). More...
 
auto key () const -> decltype(auto)
 Returns the key of the art pointer to the value. More...
 
auto id () const -> decltype(auto)
 Returns the product ID of the art pointer to the value. More...
 

Static Public Member Functions

static this_t const & makeFrom (node_t const &from)
 Reinterprets the specified association node as a AssnsNode. More...
 

Private Types

using base_t = ArtAssnsIterValue
 Base class type. More...
 
using this_t = AssnsNode< ArtAssnsIterValue >
 This class. More...
 
using node_t = ArtAssnsIterValue
 Type of the wrapped node. More...
 
using assns_node_traits_t = lar::util::assns_traits< node_t >
 Set of traits of the node. More...
 

Metadata access

The complete interface is available only if the association has metadata. Otherwise, only the static member hasMetadata() is available.

template<typename Node = node_t>
std::enable_if_t< hasMetadata< Node >), dataptr_tdataPtr () const
 Returns the pointer to the metadata on this association node. More...
 
template<typename Node = node_t>
std::enable_if_t< hasMetadata< Node >), typename lar::util::assns_traits< Node >::data_t const & > data () const
 Returns a reference to the metadata on this association node. More...
 
template<typename Node = node_t>
static constexpr bool hasMetadata ()
 Returns whether this node type supports metadata. More...
 

Detailed Description

template<typename ArtAssnsIterValue>
class proxy::details::AssnsNode< ArtAssnsIterValue >

This type extends the interface of the art pointer to Assns right side.

Definition at line 216 of file AssociatedData.h.

Member Typedef Documentation

template<typename ArtAssnsIterValue>
using proxy::details::AssnsNode< ArtAssnsIterValue >::assns_node_traits_t = lar::util::assns_traits<node_t>
private

Set of traits of the node.

Definition at line 223 of file AssociatedData.h.

template<typename ArtAssnsIterValue>
using proxy::details::AssnsNode< ArtAssnsIterValue >::base_t = ArtAssnsIterValue
private

Base class type.

Definition at line 218 of file AssociatedData.h.

template<typename ArtAssnsIterValue>
using proxy::details::AssnsNode< ArtAssnsIterValue >::data_t = typename assns_node_traits_t::data_t

Type of the associated additional data (void if none).

Definition at line 234 of file AssociatedData.h.

template<typename ArtAssnsIterValue>
using proxy::details::AssnsNode< ArtAssnsIterValue >::dataptr_t = typename assns_node_traits_t::dataptr_t

Type of the pointer to associated additional data.

Definition at line 243 of file AssociatedData.h.

template<typename ArtAssnsIterValue>
using proxy::details::AssnsNode< ArtAssnsIterValue >::main_t = typename assns_node_traits_t::left_t

Type of the main (left) object in the association.

Definition at line 228 of file AssociatedData.h.

template<typename ArtAssnsIterValue>
using proxy::details::AssnsNode< ArtAssnsIterValue >::mainptr_t = typename assns_node_traits_t::leftptr_t

Type of art pointer to the main (left) object in the association.

Definition at line 237 of file AssociatedData.h.

template<typename ArtAssnsIterValue>
using proxy::details::AssnsNode< ArtAssnsIterValue >::node_t = ArtAssnsIterValue
private

Type of the wrapped node.

Definition at line 220 of file AssociatedData.h.

template<typename ArtAssnsIterValue>
using proxy::details::AssnsNode< ArtAssnsIterValue >::this_t = AssnsNode<ArtAssnsIterValue>
private

This class.

Definition at line 219 of file AssociatedData.h.

template<typename ArtAssnsIterValue>
using proxy::details::AssnsNode< ArtAssnsIterValue >::value_t = typename assns_node_traits_t::right_t

Type of the associated (right) object.

Definition at line 231 of file AssociatedData.h.

template<typename ArtAssnsIterValue>
using proxy::details::AssnsNode< ArtAssnsIterValue >::valueptr_t = typename assns_node_traits_t::rightptr_t

Type of art pointer to the associated (right) object.

Definition at line 240 of file AssociatedData.h.

Member Function Documentation

template<typename ArtAssnsIterValue>
template<typename Node = node_t>
std::enable_if_t< hasMetadata<Node>), typename lar::util::assns_traits<Node>::data_t const& > proxy::details::AssnsNode< ArtAssnsIterValue >::data ( ) const
inline

Returns a reference to the metadata on this association node.

Definition at line 297 of file AssociatedData.h.

297 { return *dataPtr(); }
std::enable_if_t< hasMetadata< Node >), dataptr_t > dataPtr() const
Returns the pointer to the metadata on this association node.
template<typename ArtAssnsIterValue>
template<typename Node = node_t>
std::enable_if_t<hasMetadata<Node>), dataptr_t> proxy::details::AssnsNode< ArtAssnsIterValue >::dataPtr ( ) const
inline

Returns the pointer to the metadata on this association node.

Definition at line 284 of file AssociatedData.h.

285  { return base_t::data; }
template<typename ArtAssnsIterValue>
template<typename Node = node_t>
static constexpr bool proxy::details::AssnsNode< ArtAssnsIterValue >::hasMetadata ( )
inlinestatic

Returns whether this node type supports metadata.

Definition at line 279 of file AssociatedData.h.

280  { return lar::util::assns_has_metadata_v<Node>; }
template<typename ArtAssnsIterValue>
auto proxy::details::AssnsNode< ArtAssnsIterValue >::id ( ) const -> decltype(auto)
inline

Returns the product ID of the art pointer to the value.

Definition at line 321 of file AssociatedData.h.

321 { return valuePtr().id(); }
valueptr_t const & valuePtr() const
Returns the art pointer to the associated value.
template<typename ArtAssnsIterValue>
auto proxy::details::AssnsNode< ArtAssnsIterValue >::key ( ) const -> decltype(auto)
inline

Returns the key of the art pointer to the value.

Definition at line 318 of file AssociatedData.h.

318 { return valuePtr().key(); }
valueptr_t const & valuePtr() const
Returns the art pointer to the associated value.
template<typename ArtAssnsIterValue>
main_t const& proxy::details::AssnsNode< ArtAssnsIterValue >::main ( ) const
inline

Returns the main value, key of the association.

Definition at line 263 of file AssociatedData.h.

263 { return *mainPtr(); }
mainptr_t const & mainPtr() const
Returns the art pointer to the main value, key of the association.
template<typename ArtAssnsIterValue>
mainptr_t const& proxy::details::AssnsNode< ArtAssnsIterValue >::mainPtr ( ) const
inline

Returns the art pointer to the main value, key of the association.

Definition at line 260 of file AssociatedData.h.

260 { return base_t::first; }
template<typename ArtAssnsIterValue>
static this_t const& proxy::details::AssnsNode< ArtAssnsIterValue >::makeFrom ( node_t const &  from)
inlinestatic

Reinterprets the specified association node as a AssnsNode.

Definition at line 326 of file AssociatedData.h.

Referenced by proxy::details::makeAssnsNode().

327  { return static_cast<this_t const&>(from); }
AssnsNode< ArtAssnsIterValue > this_t
This class.
template<typename ArtAssnsIterValue>
proxy::details::AssnsNode< ArtAssnsIterValue >::operator valueptr_t ( ) const
inline

Implicit conversion to art pointer of the associated object.

Definition at line 309 of file AssociatedData.h.

309 { return valuePtr(); }
valueptr_t const & valuePtr() const
Returns the art pointer to the associated value.
template<typename ArtAssnsIterValue>
proxy::details::AssnsNode< ArtAssnsIterValue >::operator valueptr_t const & ( ) const
inline

Implicit conversion to art pointer of the associated object.

Definition at line 306 of file AssociatedData.h.

306 { return valuePtr(); }
valueptr_t const & valuePtr() const
Returns the art pointer to the associated value.
template<typename ArtAssnsIterValue>
value_t const& proxy::details::AssnsNode< ArtAssnsIterValue >::operator* ( ) const
inline

Returns a reference to the associated value (alias of value()).

Definition at line 312 of file AssociatedData.h.

References proxy::details::IteratorWrapperBase< Iter, DataIter, ValueType >::ValuePtr< Value >::value.

312 { return value(); }
value_t const & value() const
Returns a reference to the associated value.
template<typename ArtAssnsIterValue>
valueptr_t proxy::details::AssnsNode< ArtAssnsIterValue >::operator-> ( ) const
inline

Returns the associated value (alias of valuePtr()).

Definition at line 315 of file AssociatedData.h.

315 { return valuePtr(); }
valueptr_t const & valuePtr() const
Returns the art pointer to the associated value.
template<typename ArtAssnsIterValue>
value_t const& proxy::details::AssnsNode< ArtAssnsIterValue >::value ( ) const
inline

Returns a reference to the associated value.

Definition at line 252 of file AssociatedData.h.

252 { return *valuePtr(); }
valueptr_t const & valuePtr() const
Returns the art pointer to the associated value.
template<typename ArtAssnsIterValue>
valueptr_t const& proxy::details::AssnsNode< ArtAssnsIterValue >::valuePtr ( ) const
inline

Returns the art pointer to the associated value.

Definition at line 249 of file AssociatedData.h.

Referenced by proxy::details::operator!=(), and proxy::details::operator==().

249 { return base_t::second; }

The documentation for this class was generated from the following file: