Project
Loading...
Searching...
No Matches
o2::framework::Variant Class Reference

Variant for configuration parameter storage. Owns stored data. More...

#include <Variant.h>

Public Member Functions

 Variant (VariantType type=VariantType::Unknown)
 
template<typename T >
requires (!is_specialization_v<T, std::vector>)
 Variant (T value)
 
template<typename T >
 Variant (T values, size_t size)
 
template<typename T >
 Variant (std::vector< T > const &values)
 
 Variant (std::vector< std::string > const &values)
 
template<typename T >
 Variant (std::vector< T > &&)=delete
 
template<typename T >
 Variant (std::initializer_list< T >)
 
 Variant (const Variant &other)
 
 Variant (Variant &&other) noexcept
 
 ~Variant ()
 
Variant & operator= (const Variant &other)
 
Variant & operator= (Variant &&other) noexcept
 
template<typename T >
Variant & operator= (std::vector< T > &&other)
 
template<typename T >
T get () const
 
template<typename T >
requires (std::same_as<std::string*, T>)
std::string const * get () const
 
template<typename T >
void set (T value)
 
template<typename T >
void set (T value, size_t size)
 
template<typename T >
requires (std::is_pod_v<T> || std::is_same_v<T, std::string>)
void set (std::vector< T > &values)
 
VariantType type () const
 
size_t size () const
 
std::string asString () const
 

Friends

std::ostream & operator<< (std::ostream &oss, Variant const &val)
 

Detailed Description

Variant for configuration parameter storage. Owns stored data.

Definition at line 318 of file Variant.h.

Constructor & Destructor Documentation

◆ Variant() [1/9]

o2::framework::Variant::Variant ( VariantType  type = VariantType::Unknown)

Definition at line 151 of file Variant.cxx.

◆ Variant() [2/9]

template<typename T >
requires (!is_specialization_v<T, std::vector>)
o2::framework::Variant::Variant ( T  value)
inline

Definition at line 325 of file Variant.h.

◆ Variant() [3/9]

template<typename T >
o2::framework::Variant::Variant ( T  values,
size_t  size 
)
inline

Definition at line 331 of file Variant.h.

◆ Variant() [4/9]

template<typename T >
o2::framework::Variant::Variant ( std::vector< T > const &  values)
inline

Definition at line 338 of file Variant.h.

◆ Variant() [5/9]

o2::framework::Variant::Variant ( std::vector< std::string > const &  values)
inline

Definition at line 343 of file Variant.h.

◆ Variant() [6/9]

template<typename T >
o2::framework::Variant::Variant ( std::vector< T > &&  )
delete

◆ Variant() [7/9]

template<typename T >
o2::framework::Variant::Variant ( std::initializer_list< T >  )
inline

Definition at line 353 of file Variant.h.

◆ Variant() [8/9]

o2::framework::Variant::Variant ( const Variant &  other)

Definition at line 227 of file Variant.cxx.

◆ Variant() [9/9]

o2::framework::Variant::Variant ( Variant &&  other)
noexcept

Definition at line 232 of file Variant.cxx.

◆ ~Variant()

o2::framework::Variant::~Variant ( )

Definition at line 237 of file Variant.cxx.

Member Function Documentation

◆ asString()

std::string o2::framework::Variant::asString ( ) const

Definition at line 83 of file Variant.cxx.

◆ get() [1/2]

template<typename T >
T o2::framework::Variant::get ( ) const
inline

Definition at line 375 of file Variant.h.

◆ get() [2/2]

template<typename T >
requires (std::same_as<std::string*, T>)
std::string const * o2::framework::Variant::get ( ) const
inline

Definition at line 384 of file Variant.h.

◆ operator=() [1/3]

Variant & o2::framework::Variant::operator= ( const Variant &  other)

Definition at line 242 of file Variant.cxx.

◆ operator=() [2/3]

template<typename T >
Variant & o2::framework::Variant::operator= ( std::vector< T > &&  other)
inline

Definition at line 368 of file Variant.h.

◆ operator=() [3/3]

Variant & o2::framework::Variant::operator= ( Variant &&  other)
noexcept

Definition at line 252 of file Variant.cxx.

◆ set() [1/3]

template<typename T >
requires (std::is_pod_v<T> || std::is_same_v<T, std::string>)
void o2::framework::Variant::set ( std::vector< T > &  values)
inline

Definition at line 407 of file Variant.h.

◆ set() [2/3]

template<typename T >
void o2::framework::Variant::set ( T  value)
inline

Definition at line 395 of file Variant.h.

◆ set() [3/3]

template<typename T >
void o2::framework::Variant::set ( T  value,
size_t  size 
)
inline

Definition at line 401 of file Variant.h.

◆ size()

size_t o2::framework::Variant::size ( ) const
inline

Definition at line 414 of file Variant.h.

◆ type()

VariantType o2::framework::Variant::type ( ) const
inline

Definition at line 413 of file Variant.h.

Friends And Related Symbol Documentation

◆ operator<<

std::ostream & operator<< ( std::ostream &  oss,
Variant const &  val 
)
friend

Definition at line 22 of file Variant.cxx.


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