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

enum  VariableType {
  VT_UNK , VT_INT , VT_DOUBLE , VT_VECINT ,
  VT_VECDOUBLE , VT_VECEMPTY
}

Public Member Functions

 TestProxyLoader ()
virtual ~TestProxyLoader ()
virtual void reset ()
virtual IProxyLoader::VariableType variableTypeFromString (const std::string &varname) const
virtual int loadIntVariableFromString (const std::string &varname) const
virtual double loadDoubleVariableFromString (const std::string &varname) const
virtual std::vector< int > loadVecIntVariableFromString (const std::string &varname) const
virtual std::vector< double > loadVecDoubleVariableFromString (const std::string &varname) const

Private Attributes

std::atomic< unsigned int > m_intAccessCount

Detailed Description

Definition at line 20 of file TestProxyLoader.h.

Member Enumeration 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

◆ loadDoubleVariableFromString()

double ExpressionParsing::TestProxyLoader::loadDoubleVariableFromString ( const std::string & varname) const
virtual

Implements ExpressionParsing::IProxyLoader.

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 }

◆ loadIntVariableFromString()

int ExpressionParsing::TestProxyLoader::loadIntVariableFromString ( const std::string & varname) const
virtual

Implements ExpressionParsing::IProxyLoader.

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 }

◆ loadVecDoubleVariableFromString()

std::vector< double > ExpressionParsing::TestProxyLoader::loadVecDoubleVariableFromString ( const std::string & varname) const
virtual

Implements ExpressionParsing::IProxyLoader.

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 }

◆ loadVecIntVariableFromString()

std::vector< int > ExpressionParsing::TestProxyLoader::loadVecIntVariableFromString ( const std::string & varname) const
virtual

Implements ExpressionParsing::IProxyLoader.

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 ( )
virtual

Implements ExpressionParsing::IProxyLoader.

Definition at line 21 of file TestProxyLoader.cxx.

22 {
24 }

◆ variableTypeFromString()

IProxyLoader::VariableType ExpressionParsing::TestProxyLoader::variableTypeFromString ( const std::string & varname) const
virtual

Implements ExpressionParsing::IProxyLoader.

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: