ATLAS Offline Software
Loading...
Searching...
No Matches
ExpressionParsing::TestProxyLoader Class Reference

#include <TestProxyLoader.h>

Inheritance diagram for ExpressionParsing::TestProxyLoader:
Collaboration diagram for ExpressionParsing::TestProxyLoader:

Public Types

using VariableType = IAccessor::VariableType

Public Member Functions

 TestProxyLoader ()
virtual ~TestProxyLoader ()
virtual void reset () override
virtual IAccessor::VariableType variableTypeFromString (const std::string &varname) const override
virtual int loadInt (const EventContext &ctx, const std::string &varname) const override
virtual double loadDouble (const EventContext &ctx, const std::string &varname) const override
virtual std::vector< int > loadVecInt (const EventContext &ctx, const std::string &varname) const override
virtual std::vector< double > loadVec (const EventContext &ctx, const std::string &varname) const override
virtual std::pair< IAccessor::VariableType, const IAccessor & > getAccessorFromString (const EventContext &ctx, const std::string &varname) const override
virtual VariableType variableType (const std::string &var_name) const override

Private Attributes

std::atomic< unsigned int > m_intAccessCount

Detailed Description

Definition at line 20 of file TestProxyLoader.h.

Member Typedef Documentation

◆ VariableType

Constructor & Destructor Documentation

◆ TestProxyLoader()

ExpressionParsing::TestProxyLoader::TestProxyLoader ( )
inline

Definition at line 22 of file TestProxyLoader.h.

22: m_intAccessCount(0) { }
std::atomic< unsigned int > m_intAccessCount

◆ ~TestProxyLoader()

ExpressionParsing::TestProxyLoader::~TestProxyLoader ( )
virtual

Definition at line 17 of file TestProxyLoader.cxx.

18 {
19 }

Member Function Documentation

◆ getAccessorFromString()

virtual std::pair< IAccessor::VariableType, const IAccessor & > ExpressionParsing::RelayProxyLoader::getAccessorFromString ( const EventContext & ctx,
const std::string & varname ) const
inlineoverridevirtualinherited

Implements ExpressionParsing::IProxyLoader.

Definition at line 12 of file RelayProxyLoader.h.

12 {
13 return {variableTypeFromString(varname), *this};
14 }
virtual IAccessor::VariableType variableTypeFromString(const std::string &varname) const =0

◆ loadDouble()

double ExpressionParsing::TestProxyLoader::loadDouble ( const EventContext & ctx,
const std::string & varname ) const
overridevirtual

Implements ExpressionParsing::IAccessor.

Definition at line 43 of file TestProxyLoader.cxx.

44 {
45 if (varname == "doubleTEST") return 42.42;
46 else throw std::runtime_error("Unknown proxy: " + varname);
47 }

◆ loadInt()

int ExpressionParsing::TestProxyLoader::loadInt ( const EventContext & ctx,
const std::string & varname ) const
overridevirtual

Implements ExpressionParsing::IAccessor.

Definition at line 36 of file TestProxyLoader.cxx.

37 {
38 if (varname == "intTEST") { ++m_intAccessCount; return (42+(m_intAccessCount-1)); }
39 else if (varname == "int_TEST") { return 24; }
40 else throw std::runtime_error("Unknown proxy: " + varname);
41 }

◆ loadVec()

std::vector< double > ExpressionParsing::TestProxyLoader::loadVec ( const EventContext & ctx,
const std::string & varname ) const
overridevirtual

Implements ExpressionParsing::IAccessor.

Definition at line 55 of file TestProxyLoader.cxx.

56 {
57 if (varname == "vectorDoubleTEST") return std::vector<double>(2, 42.42);
58 else throw std::runtime_error("Unknown proxy: " + varname);
59 }

◆ loadVecInt()

std::vector< int > ExpressionParsing::TestProxyLoader::loadVecInt ( const EventContext & ctx,
const std::string & varname ) const
overridevirtual

Implements ExpressionParsing::IAccessor.

Definition at line 49 of file TestProxyLoader.cxx.

50 {
51 if (varname == "vectorIntTEST") return std::vector<int>(2, 42);
52 else throw std::runtime_error("Unknown proxy: " + varname);
53 }

◆ reset()

void ExpressionParsing::TestProxyLoader::reset ( )
overridevirtual

Implements ExpressionParsing::IProxyLoader.

Definition at line 21 of file TestProxyLoader.cxx.

22 {
24 }

◆ variableType()

virtual VariableType ExpressionParsing::RelayProxyLoader::variableType ( const std::string & var_name) const
inlineoverridevirtualinherited

Implements ExpressionParsing::IAccessor.

Definition at line 15 of file RelayProxyLoader.h.

◆ variableTypeFromString()

IAccessor::VariableType ExpressionParsing::TestProxyLoader::variableTypeFromString ( const std::string & varname) const
overridevirtual

Implements ExpressionParsing::RelayProxyLoader.

Definition at line 26 of file TestProxyLoader.cxx.

27 {
28 if (varname == "intTEST") return VT_INT;
29 else if (varname == "int_TEST") return VT_INT;
30 else if (varname == "doubleTEST") return VT_DOUBLE;
31 else if (varname == "vectorIntTEST") return VT_VECINT;
32 else if (varname == "vectorDoubleTEST") return VT_VECDOUBLE;
33 else return VT_UNK;
34 }

Member Data Documentation

◆ m_intAccessCount

std::atomic<unsigned int> ExpressionParsing::TestProxyLoader::m_intAccessCount
mutableprivate

Definition at line 35 of file TestProxyLoader.h.


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