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);
79 declareProperty (
const std::
string&
name, T& loc,
99 PropertyMgr *getPropertyMgr () noexcept;
100 const PropertyMgr* getPropertyMgr()
const noexcept;
122 friend class AsgTool;
133 PropertyMgr *m_properties {
nullptr};
138 std::vector<std::shared_ptr<void> > m_cleanup;