ATLAS Offline Software
Loading...
Searching...
No Matches
MultipleProxyLoader.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3*/
4
6// MultipleProxyLoader.h, (c) ATLAS Detector software
8// Author: Thomas Gillam (thomas.gillam@cern.ch)
9// ExpressionParsing library
11
12#ifndef MULTIPLE_PROXY_LOADER_H
13#define MULTIPLE_PROXY_LOADER_H
14
19
20#include <vector>
21#include <map>
22
23namespace ExpressionParsing {
25 public:
27 virtual ~MultipleProxyLoader();
28
29 IProxyLoader* push_back(std::unique_ptr<IProxyLoader> proxyLoader);
30
31 virtual void reset();
32
33 virtual IProxyLoader::VariableType variableTypeFromString(const std::string &varname) const;
34
35 virtual int loadIntVariableFromString(const std::string &varname) const;
36 virtual double loadDoubleVariableFromString(const std::string &varname) const;
37 virtual std::vector<int> loadVecIntVariableFromString(const std::string &varname) const;
38 virtual std::vector<double> loadVecDoubleVariableFromString(const std::string &varname) const;
39
40 private:
41 std::vector<std::unique_ptr<IProxyLoader> > m_proxyLoaders;
42
44 mutable proxyCache_t m_varnameToProxyLoader ATLAS_THREAD_SAFE;
45 };
46}
47
48#endif // MULTIPLE_PROXY_LOADER_H
Hash map from strings allowing concurrent, lockless reads.
Simple (non-deleting) Updater implementation.
Define macros for attributes used to control the static checker.
Hash map from strings allowing concurrent, lockless reads.
virtual int loadIntVariableFromString(const std::string &varname) const
proxyCache_t m_varnameToProxyLoader ATLAS_THREAD_SAFE
IProxyLoader * push_back(std::unique_ptr< IProxyLoader > proxyLoader)
virtual IProxyLoader::VariableType variableTypeFromString(const std::string &varname) const
std::vector< std::unique_ptr< IProxyLoader > > m_proxyLoaders
virtual std::vector< int > loadVecIntVariableFromString(const std::string &varname) const
virtual double loadDoubleVariableFromString(const std::string &varname) const
virtual std::vector< double > loadVecDoubleVariableFromString(const std::string &varname) const
CxxUtils::ConcurrentStrMap< IProxyLoader *, CxxUtils::SimpleUpdater > proxyCache_t
Namespace holding all the expression evaluation code.