5 #ifndef ASGTOOLS_TOOLHANDLE_H
6 #define ASGTOOLS_TOOLHANDLE_H
9 #ifndef XAOD_STANDALONE
10 # include "GaudiKernel/ToolHandle.h"
11 #else // not XAOD_STANDALONE
20 class INamedInterface;
33 class ToolHandleBase {
37 ToolHandleBase(
const std::string& typeAndName =
"", INamedInterface*
parent = 0 );
40 const std::string& typeAndName()
const;
42 const std::string&
type()
const;
44 const std::string&
name()
const;
51 void setTypeAndName(
const std::
string& typeAndName);
57 std::
string m_typeAndName;
63 INamedInterface *m_parent;
79 class ToolHandle : public ToolHandleBase {
86 ToolHandle(
T* ptool = 0 );
89 ToolHandle(
const std::string&
toolname, INamedInterface*
parent = 0 );
93 ToolHandle (T2 *
parent,
const std::string& propertyName,
94 const std::string& toolName,
95 const std::string& propertyTitle =
"");
104 const T* operator->()
const;
112 void disable () noexcept;
122 mutable
T* m_ptool {
nullptr};
129 const ToolHandle< T >& handle );
134 #endif // not XAOD_STANDALONE
135 #endif // ASGTOOLS_TOOLHANDLE_H