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

Internal class not to be used by end user. More...

#include <MonitoredCollection.h>

Inheritance diagram for Monitored::ValuesRefCollection< T >:
Collaboration diagram for Monitored::ValuesRefCollection< T >:

Public Types

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

Public Member Functions

 ValuesRefCollection (ValuesRefCollection &&)=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

 ValuesRefCollection (std::string vname, const std::reference_wrapper< T > &collection)
 ValuesRefCollection (ValuesRefCollection const &)=delete
ValuesRefCollectionoperator= (ValuesRefCollection const &)=delete

Private Attributes

const std::reference_wrapper< T > & m_collection
const std::string m_name

Friends

ValuesRefCollection< T > Collection (std::string name, const std::reference_wrapper< T > &collection)
 Declare a monitored (double-convertible) collection reference.
ValuesRefCollection< T > Collection (std::string name, const std::reference_wrapper< T > &&collection)

Detailed Description

template<class T>
class Monitored::ValuesRefCollection< T >

Internal class not to be used by end user.

Definition at line 229 of file MonitoredCollection.h.

Member Typedef Documentation

◆ value_type

Type of the collection elements.

Definition at line 232 of file MonitoredCollection.h.

Constructor & Destructor Documentation

◆ ValuesRefCollection() [1/3]

template<class T>
Monitored::ValuesRefCollection< T >::ValuesRefCollection ( ValuesRefCollection< T > && )
default

◆ ValuesRefCollection() [2/3]

template<class T>
Monitored::ValuesRefCollection< T >::ValuesRefCollection ( std::string vname,
const std::reference_wrapper< T > & collection )
inlineprivate

Definition at line 268 of file MonitoredCollection.h.

270 }
Internal class not to be used by end user.
const std::reference_wrapper< T > & m_collection

◆ ValuesRefCollection() [3/3]

template<class T>
Monitored::ValuesRefCollection< T >::ValuesRefCollection ( ValuesRefCollection< T > const & )
privatedelete

Member Function Documentation

◆ get()

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

Implements Monitored::IMonitoredVariable.

Definition at line 242 of file MonitoredCollection.h.

242 {
244 return m_collection.get()[i];
245 else
246 return -1;
247 }

◆ getString()

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

Implements Monitored::IMonitoredVariable.

Definition at line 249 of file MonitoredCollection.h.

249 {
251 return m_collection.get()[i];
252 else
253 return {};
254 }

◆ hasStringRepresentation()

template<class T>
virtual bool Monitored::ValuesRefCollection< T >::hasStringRepresentation ( ) const
inlineoverridevirtual

indcates that the stored content can be converted to strings

Implements Monitored::IMonitoredVariable.

Definition at line 256 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>
ValuesRefCollection & Monitored::ValuesRefCollection< T >::operator= ( ValuesRefCollection< T > const & )
privatedelete

◆ size()

template<class T>
virtual size_t Monitored::ValuesRefCollection< T >::size ( ) const
inlineoverridevirtual

gives size of vector representation

Implements Monitored::IMonitoredVariable.

Definition at line 260 of file MonitoredCollection.h.

260 {
261 return std::size(m_collection.get());
262 }

◆ Collection [1/2]

template<class T>
ValuesRefCollection< T > Collection ( std::string name,
const std::reference_wrapper< T > && collection )
friend

◆ Collection [2/2]

template<class T>
ValuesRefCollection< T > Collection ( std::string name,
const std::reference_wrapper< T > & collection )
friend

Declare a monitored (double-convertible) collection reference.

Template Parameters
TType of collection
Parameters
nameName of monitored quantity
collectionstd::reference_wrapper to collection to be monitored (e.g. STL container or array)

Examples:

Various types of collections can be monitored. STL containers:

std::vector<float> eta( {0.2, 0.1} );
std::vector<double> phi( {-1, 1} ) ;
auto vectorT = Monitored::Collection( "Eta", eta );
auto setT = Monitored::Collection( "Phi", phi );
auto group = Monitored::Group( monTool, vectorT, setT );

or more generally, any iterable container:

See also
Monitored::Scalar
Monitored::Group

Definition at line 61 of file MonitoredCollection.h.

61 {
63 }
const std::string & name() const
ValuesRefCollection(ValuesRefCollection &&)=default

Member Data Documentation

◆ m_collection

template<class T>
const std::reference_wrapper<T>& Monitored::ValuesRefCollection< T >::m_collection
private

Definition at line 265 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: