Project
Loading...
Searching...
No Matches
Variant.h File Reference
#include "Framework/RuntimeError.h"
#include "Framework/Array2D.h"
#include <type_traits>
#include <cstring>
#include <cstdint>
#include <cstdlib>
#include <iosfwd>
#include <initializer_list>
#include <string_view>
#include <vector>
#include <string>

Go to the source code of this file.

Classes

struct  o2::framework::variant_trait< T >
 
struct  o2::framework::variant_array_symbol< T >
 
struct  o2::framework::variant_array_symbol< int >
 
struct  o2::framework::variant_array_symbol< float >
 
struct  o2::framework::variant_array_symbol< double >
 
struct  o2::framework::variant_array_symbol< bool >
 
struct  o2::framework::variant_array_symbol< std::string >
 
struct  o2::framework::variant_type< type >
 
struct  o2::framework::variant_array_element_type< type >
 
struct  o2::framework::variant_helper< T >
 
struct  o2::framework::variant_helper< std::vector< std::string > >
 
struct  o2::framework::variant_helper< const char * >
 
struct  o2::framework::variant_helper< std::string_view >
 
struct  o2::framework::variant_helper< std::string >
 
class  o2::framework::Variant
 Variant for configuration parameter storage. Owns stored data. More...
 

Namespaces

namespace  o2
 a couple of static helper functions to create timestamp values for CCDB queries or override obsolete objects
 
namespace  o2::framework
 Defining PrimaryVertex explicitly as messageable.
 

Macros

#define DECLARE_VARIANT_TRAIT(_Type1_, _Type2_)
 
#define DECLARE_VARIANT_TYPE(_Type1_, _Type2_)
 
#define DECLARE_VARIANT_ARRAY_ELEMENT_TYPE(_Type1_, _Type2_)
 

Typedefs

template<VariantType V>
using o2::framework::variant_array_element_type_t = typename variant_array_element_type< V >::type
 

Enumerations

enum class  o2::framework::VariantType : int {
  o2::framework::Int = 0 , o2::framework::Int64 , o2::framework::Float , o2::framework::Double ,
  o2::framework::String , o2::framework::Bool , o2::framework::ArrayInt , o2::framework::ArrayFloat ,
  o2::framework::ArrayDouble , o2::framework::ArrayBool , o2::framework::ArrayString , o2::framework::Array2DInt ,
  o2::framework::Array2DFloat , o2::framework::Array2DDouble , o2::framework::LabeledArrayInt , o2::framework::LabeledArrayFloat ,
  o2::framework::LabeledArrayDouble , o2::framework::UInt8 , o2::framework::UInt16 , o2::framework::UInt32 ,
  o2::framework::UInt64 , o2::framework::Int8 , o2::framework::Int16 , o2::framework::LabeledArrayString ,
  o2::framework::Empty , o2::framework::Dict , o2::framework::Unknown
}
 

Functions

template<VariantType V>
constexpr auto o2::framework::isArray ()
 
template<VariantType V>
constexpr auto o2::framework::isArray2D ()
 
template<VariantType V>
constexpr auto o2::framework::isLabeledArrayString ()
 
template<VariantType V>
constexpr auto o2::framework::isLabeledArray ()
 
template<VariantType V>
constexpr auto o2::framework::isSimpleVariant ()
 
 o2::framework::DECLARE_VARIANT_TRAIT (int, Int)
 
 o2::framework::DECLARE_VARIANT_TRAIT (int8_t, Int8)
 
 o2::framework::DECLARE_VARIANT_TRAIT (int16_t, Int16)
 
 o2::framework::DECLARE_VARIANT_TRAIT (long int, Int64)
 
 o2::framework::DECLARE_VARIANT_TRAIT (long long int, Int64)
 
 o2::framework::DECLARE_VARIANT_TRAIT (uint8_t, UInt8)
 
 o2::framework::DECLARE_VARIANT_TRAIT (uint16_t, UInt16)
 
 o2::framework::DECLARE_VARIANT_TRAIT (uint32_t, UInt32)
 
 o2::framework::DECLARE_VARIANT_TRAIT (unsigned long int, UInt64)
 
 o2::framework::DECLARE_VARIANT_TRAIT (unsigned long long int, UInt64)
 
 o2::framework::DECLARE_VARIANT_TRAIT (float, Float)
 
 o2::framework::DECLARE_VARIANT_TRAIT (double, Double)
 
 o2::framework::DECLARE_VARIANT_TRAIT (bool, Bool)
 
 o2::framework::DECLARE_VARIANT_TRAIT (const char *, String)
 
 o2::framework::DECLARE_VARIANT_TRAIT (char *, String)
 
 o2::framework::DECLARE_VARIANT_TRAIT (std::string_view, String)
 
 o2::framework::DECLARE_VARIANT_TRAIT (std::string, String)
 
 o2::framework::DECLARE_VARIANT_TRAIT (int *, ArrayInt)
 
 o2::framework::DECLARE_VARIANT_TRAIT (float *, ArrayFloat)
 
 o2::framework::DECLARE_VARIANT_TRAIT (double *, ArrayDouble)
 
 o2::framework::DECLARE_VARIANT_TRAIT (bool *, ArrayBool)
 
 o2::framework::DECLARE_VARIANT_TRAIT (std::string *, ArrayString)
 
 o2::framework::DECLARE_VARIANT_TRAIT (std::vector< int >, ArrayInt)
 
 o2::framework::DECLARE_VARIANT_TRAIT (std::vector< float >, ArrayFloat)
 
 o2::framework::DECLARE_VARIANT_TRAIT (std::vector< double >, ArrayDouble)
 
 o2::framework::DECLARE_VARIANT_TRAIT (std::vector< bool >, ArrayBool)
 
 o2::framework::DECLARE_VARIANT_TRAIT (std::vector< std::string >, ArrayString)
 
 o2::framework::DECLARE_VARIANT_TRAIT (Array2D< int >, Array2DInt)
 
 o2::framework::DECLARE_VARIANT_TRAIT (Array2D< float >, Array2DFloat)
 
 o2::framework::DECLARE_VARIANT_TRAIT (Array2D< double >, Array2DDouble)
 
 o2::framework::DECLARE_VARIANT_TRAIT (LabeledArray< int >, LabeledArrayInt)
 
 o2::framework::DECLARE_VARIANT_TRAIT (LabeledArray< float >, LabeledArrayFloat)
 
 o2::framework::DECLARE_VARIANT_TRAIT (LabeledArray< double >, LabeledArrayDouble)
 
 o2::framework::DECLARE_VARIANT_TRAIT (LabeledArray< std::string >, LabeledArrayString)
 
 o2::framework::DECLARE_VARIANT_TYPE (int, Int)
 
 o2::framework::DECLARE_VARIANT_TYPE (int8_t, Int8)
 
 o2::framework::DECLARE_VARIANT_TYPE (int16_t, Int16)
 
 o2::framework::DECLARE_VARIANT_TYPE (int64_t, Int64)
 
 o2::framework::DECLARE_VARIANT_TYPE (uint8_t, UInt8)
 
 o2::framework::DECLARE_VARIANT_TYPE (uint16_t, UInt16)
 
 o2::framework::DECLARE_VARIANT_TYPE (uint32_t, UInt32)
 
 o2::framework::DECLARE_VARIANT_TYPE (uint64_t, UInt64)
 
 o2::framework::DECLARE_VARIANT_TYPE (float, Float)
 
 o2::framework::DECLARE_VARIANT_TYPE (double, Double)
 
 o2::framework::DECLARE_VARIANT_TYPE (const char *, String)
 
 o2::framework::DECLARE_VARIANT_TYPE (bool, Bool)
 
 o2::framework::DECLARE_VARIANT_TYPE (int *, ArrayInt)
 
 o2::framework::DECLARE_VARIANT_TYPE (float *, ArrayFloat)
 
 o2::framework::DECLARE_VARIANT_TYPE (double *, ArrayDouble)
 
 o2::framework::DECLARE_VARIANT_TYPE (bool *, ArrayBool)
 
 o2::framework::DECLARE_VARIANT_TYPE (std::string *, ArrayString)
 
 o2::framework::DECLARE_VARIANT_TYPE (Array2D< int >, Array2DInt)
 
 o2::framework::DECLARE_VARIANT_TYPE (Array2D< float >, Array2DFloat)
 
 o2::framework::DECLARE_VARIANT_TYPE (Array2D< double >, Array2DDouble)
 
 o2::framework::DECLARE_VARIANT_TYPE (LabeledArray< int >, LabeledArrayInt)
 
 o2::framework::DECLARE_VARIANT_TYPE (LabeledArray< float >, LabeledArrayFloat)
 
 o2::framework::DECLARE_VARIANT_TYPE (LabeledArray< double >, LabeledArrayDouble)
 
 o2::framework::DECLARE_VARIANT_TYPE (LabeledArray< std::string >, LabeledArrayString)
 
 o2::framework::DECLARE_VARIANT_ARRAY_ELEMENT_TYPE (int, ArrayInt)
 
 o2::framework::DECLARE_VARIANT_ARRAY_ELEMENT_TYPE (int, Array2DInt)
 
 o2::framework::DECLARE_VARIANT_ARRAY_ELEMENT_TYPE (float, ArrayFloat)
 
 o2::framework::DECLARE_VARIANT_ARRAY_ELEMENT_TYPE (float, Array2DFloat)
 
 o2::framework::DECLARE_VARIANT_ARRAY_ELEMENT_TYPE (double, ArrayDouble)
 
 o2::framework::DECLARE_VARIANT_ARRAY_ELEMENT_TYPE (double, Array2DDouble)
 
 o2::framework::DECLARE_VARIANT_ARRAY_ELEMENT_TYPE (bool, ArrayBool)
 
 o2::framework::DECLARE_VARIANT_ARRAY_ELEMENT_TYPE (std::string, ArrayString)
 
 o2::framework::DECLARE_VARIANT_ARRAY_ELEMENT_TYPE (int, LabeledArrayInt)
 
 o2::framework::DECLARE_VARIANT_ARRAY_ELEMENT_TYPE (float, LabeledArrayFloat)
 
 o2::framework::DECLARE_VARIANT_ARRAY_ELEMENT_TYPE (double, LabeledArrayDouble)
 
 o2::framework::DECLARE_VARIANT_ARRAY_ELEMENT_TYPE (std::string, LabeledArrayString)
 
Variant o2::framework::emptyDict ()
 

Variables

template<typename T >
constexpr VariantType o2::framework::variant_trait_v = variant_trait<T>::value
 

Macro Definition Documentation

◆ DECLARE_VARIANT_ARRAY_ELEMENT_TYPE

#define DECLARE_VARIANT_ARRAY_ELEMENT_TYPE (   _Type1_,
  _Type2_ 
)
Value:
template <> \
struct variant_array_element_type<VariantType::_Type2_> { \
using type = _Type1_; \
};
GLint GLint GLsizei GLint GLenum GLenum type
Definition glcorearb.h:275

Definition at line 234 of file Variant.h.

◆ DECLARE_VARIANT_TRAIT

#define DECLARE_VARIANT_TRAIT (   _Type1_,
  _Type2_ 
)
Value:
template <> \
struct variant_trait<_Type1_> : std::integral_constant<VariantType, VariantType::_Type2_> { \
};

Definition at line 111 of file Variant.h.

◆ DECLARE_VARIANT_TYPE

#define DECLARE_VARIANT_TYPE (   _Type1_,
  _Type2_ 
)
Value:
template <> \
struct variant_type<VariantType::_Type2_> { \
using type = _Type1_; \
};

Definition at line 196 of file Variant.h.