7#ifndef ASGTOOLS_ASGCOMPONENT_H
8#define ASGTOOLS_ASGCOMPONENT_H
10#if !defined(XAOD_STANDALONE) && !defined(__CPPCHECK__)
11#error "This header should only be used in XAOD_STANDALONE"
39 class AsgComponent :
public virtual INamedInterface,
46 AsgComponent (
const AsgComponent&) =
delete;
47 AsgComponent& operator = (
const AsgComponent&) =
delete;
51 AsgComponent (
const std::string& val_name);
56 ~AsgComponent() noexcept;
64 void addCleanup (const std::shared_ptr<
void>& cleanup);
78 template<typename T> Property *
79 declareProperty (const std::
string& name, T& loc,
80 const std::
string& doc =
"");
91 template<typename T> ::StatusCode
92 setProperty (const std::
string& name, const T& value);
93 ::StatusCode
setProperty (const std::
string& name, const
char *value);
99 PropertyMgr *getPropertyMgr () noexcept;
100 const PropertyMgr* getPropertyMgr() const noexcept;
111 virtual const std::
string& name() const override;
122 friend class AsgTool;
133 PropertyMgr *m_properties {
nullptr};
138 std::vector<std::shared_ptr<void> > m_cleanup;
Definition of message levels and a helper function.
Support class for PropertyMgr.
Class mimicking the AthMessaging class from the offline software.
static StatusCode setProperty(IAsgTool *tool, const std::string &property, W &&value)
Helper method for calling setProperty on an interface class Usage: asg::setProperty( myTool ,...