|
ATLAS Offline Software
|
Go to the documentation of this file.
16 #include "TInterpreter.h"
28 m_mode (
ROOT::kExactMatch),
39 : m_cls (
other.m_cls),
40 m_fname (
other.m_fname),
41 m_args (
other.m_args),
42 m_mode (
other.m_mode),
91 const std::string&
fname,
92 const std::string&
args,
93 ROOT::EFunctionMatchMode
mode )
112 if (
m_cls == 0)
return nullptr;
116 std::lock_guard<std::mutex> lock (
m_mutex);
122 ::Warning (
"RootUtils::Type",
123 "Can't get method for type `%s': %s (%s).",
130 if (!
m_meth->IsValid())
return nullptr;
Helper for thread-safe TMethodCall. Extracted from Type.
std::unique_ptr< TMethodCall > m_meth
Object to call the method on the payload type.
TSMethodCall & operator=(const TSMethodCall &other)
Assignment.
std::string m_fname
Name of the function we're calling.
Helper for making a thread-safe function call.
TSMethodCall()
Constructor.
std::mutex m_mutex
Control access to m_assign for initialization.
ROOT::EFunctionMatchMode m_mode
Matching mode.
TMethodCall * call()
Return a pointer to the thread-specific TMethodCall.
void setProto(TClass *cls, const std::string &fname, const std::string &args, ROOT::EFunctionMatchMode mode=ROOT::kExactMatch)
Set the function that we're to call.
TClass * m_cls
Class that we're calling.
std::atomic< bool > m_initialized
Flag whether or not m_meth has been initialized.
#define ATLAS_THREAD_SAFE
std::string m_args
Argument list.
Define macros for attributes used to control the static checker.
boost::thread_specific_ptr< TMethodCall > m_tsMeth
Objects used to call the method on the payload object.
~TSMethodCall()
Destructor.