ATLAS Offline Software
Loading...
Searching...
No Matches
Monitored::ObjectsRefCollection< T, R > Class Template Reference

Monitoring of object collection references (internal) More...

#include <MonitoredCollection.h>

Inheritance diagram for Monitored::ObjectsRefCollection< T, R >:
Collaboration diagram for Monitored::ObjectsRefCollection< T, R >:

Public Types

using value_type = typename detail::get_value_type<T>::value_type
 Type of the collection elements.
using const_value_type = typename detail::make_pointer_const<value_type>::type

Public Member Functions

 ObjectsRefCollection (ObjectsRefCollection &&)=default
virtual double get (size_t i) const override
virtual std::string getString (size_t i) const override
virtual bool hasStringRepresentation () const override
 indcates that the stored content can be converted to strings
virtual size_t size () const override
 gives size of vector representation
const std::string & name () const

Public Attributes

friend MonitoredGroup

Private Member Functions

 ObjectsRefCollection (std::string name, const std::reference_wrapper< T > &collection, std::function< R(const const_value_type &)> converterToR)
 ObjectsRefCollection (ObjectsRefCollection const &)=delete
ObjectsRefCollectionoperator= (ObjectsRefCollection const &)=delete

Private Attributes

const std::reference_wrapper< T > & m_collection
std::function< R(const const_value_type &)> m_converterToR
const std::string m_name

Friends

template<class U>
ObjectsRefCollection< U, double > Collection (std::string name, const std::reference_wrapper< U > &collection, std::function< double(const typename ObjectsRefCollection< U, double >::const_value_type &)> accessor)
template<class U>
ObjectsRefCollection< U, std::string > Collection (std::string name, const std::reference_wrapper< U > &collection, std::function< std::string(const typename ObjectsRefCollection< U, std::string >::const_value_type &)> converterToString)

Detailed Description

template<class T, class R>
class Monitored::ObjectsRefCollection< T, R >

Monitoring of object collection references (internal)

Template types are: T - collection, R - result type of the converter function (convertible to double or string) This class is not supposed to be used by the end user.

Definition at line 346 of file MonitoredCollection.h.

Member Typedef Documentation

◆ const_value_type

template<class T, class R>
using Monitored::ObjectsRefCollection< T, R >::const_value_type = typename detail::make_pointer_const<value_type>::type

Definition at line 350 of file MonitoredCollection.h.

◆ value_type

template<class T, class R>
using Monitored::ObjectsRefCollection< T, R >::value_type = typename detail::get_value_type<T>::value_type

Type of the collection elements.

Definition at line 349 of file MonitoredCollection.h.

Constructor & Destructor Documentation

◆ ObjectsRefCollection() [1/3]

template<class T, class R>
Monitored::ObjectsRefCollection< T, R >::ObjectsRefCollection ( ObjectsRefCollection< T, R > && )
default

◆ ObjectsRefCollection() [2/3]

template<class T, class R>
Monitored::ObjectsRefCollection< T, R >::ObjectsRefCollection ( std::string name,
const std::reference_wrapper< T > & collection,
std::function< R(const const_value_type &)> converterToR )
inlineprivate

Definition at line 390 of file MonitoredCollection.h.

const std::string & name() const
Monitoring of object collection references (internal)
std::function< R(const const_value_type &)> m_converterToR
const std::reference_wrapper< T > & m_collection

◆ ObjectsRefCollection() [3/3]

template<class T, class R>
Monitored::ObjectsRefCollection< T, R >::ObjectsRefCollection ( ObjectsRefCollection< T, R > const & )
privatedelete

Member Function Documentation

◆ get()

template<class T, class R>
virtual double Monitored::ObjectsRefCollection< T, R >::get ( size_t i) const
inlineoverridevirtual

Implements Monitored::IMonitoredVariable.

Definition at line 365 of file MonitoredCollection.h.

365 {
367 return m_converterToR(m_collection.get()[i]);
368 else
369 return -1;
370 }

◆ getString()

template<class T, class R>
virtual std::string Monitored::ObjectsRefCollection< T, R >::getString ( size_t i) const
inlineoverridevirtual

Implements Monitored::IMonitoredVariable.

Definition at line 372 of file MonitoredCollection.h.

372 {
374 return m_converterToR(m_collection.get()[i]);
375 else
376 return {};
377 }

◆ hasStringRepresentation()

template<class T, class R>
virtual bool Monitored::ObjectsRefCollection< T, R >::hasStringRepresentation ( ) const
inlineoverridevirtual

indcates that the stored content can be converted to strings

Implements Monitored::IMonitoredVariable.

Definition at line 379 of file MonitoredCollection.h.

◆ name()

const std::string & Monitored::IMonitoredVariable::name ( ) const
inlineinherited

Definition at line 19 of file IMonitoredVariable.h.

19{ return m_name; }

◆ operator=()

template<class T, class R>
ObjectsRefCollection & Monitored::ObjectsRefCollection< T, R >::operator= ( ObjectsRefCollection< T, R > const & )
privatedelete

◆ size()

template<class T, class R>
virtual size_t Monitored::ObjectsRefCollection< T, R >::size ( ) const
inlineoverridevirtual

gives size of vector representation

Implements Monitored::IMonitoredVariable.

Definition at line 382 of file MonitoredCollection.h.

382 {
383 return std::size(m_collection.get());
384 }

◆ Collection [1/2]

template<class T, class R>
template<class U>
ObjectsRefCollection< U, double > Collection ( std::string name,
const std::reference_wrapper< U > & collection,
std::function< double(const typename ObjectsRefCollection< U, double >::const_value_type &)> accessor )
friend

◆ Collection [2/2]

template<class T, class R>
template<class U>
ObjectsRefCollection< U, std::string > Collection ( std::string name,
const std::reference_wrapper< U > & collection,
std::function< std::string(const typename ObjectsRefCollection< U, std::string >::const_value_type &)> converterToString )
friend

Member Data Documentation

◆ m_collection

template<class T, class R>
const std::reference_wrapper<T>& Monitored::ObjectsRefCollection< T, R >::m_collection
private

Definition at line 387 of file MonitoredCollection.h.

◆ m_converterToR

template<class T, class R>
std::function<R(const const_value_type&)> Monitored::ObjectsRefCollection< T, R >::m_converterToR
private

Definition at line 388 of file MonitoredCollection.h.

◆ m_name

const std::string Monitored::IMonitoredVariable::m_name
privateinherited

Definition at line 31 of file IMonitoredVariable.h.

◆ MonitoredGroup

friend Monitored::IMonitoredVariable::MonitoredGroup
inherited

Definition at line 16 of file IMonitoredVariable.h.


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