1 #ifndef GAUDIKERNEL_TOOLHANDLE_H 2 #define GAUDIKERNEL_TOOLHANDLE_H 14 #include <type_traits> 50 return parent ?
"PrivateTool" :
"PublicTool";
56 return ( !parent ?
"ToolSvc" : ( pNamed ? pNamed->name() :
"" ) );
87 return i_retrieve(tool);
90 const IAlgTool *
get()
const {
return getAsIAlgTool(); }
98 virtual const IAlgTool * getAsIAlgTool()
const = 0;
100 virtual IAlgTool * getAsIAlgTool() = 0;
136 template<
typename CT = T,
170 #if defined(TOOLHANDLE_DEPR_WARN) 172 #pragma message("Untracked ToolHandle: Migrate explicit DataHandle constructor to declareTool Algorithm Property") 217 algTool = i_retrieve(iface) ?
dynamic_cast<T*
>(iface) :
nullptr;
224 return m_pToolSvc->releaseTool( this->nonConst(algTool) );
328 inline std::ostream& operator<<( std::ostream& os, const ToolHandle<T>& handle ) {
329 return operator<<(os, static_cast<const GaudiHandleInfo&>(handle) );
334 inline std::ostream& operator<<( std::ostream& os, const ToolHandleArray<T>& handle ) {
335 return operator<<(os, static_cast<const GaudiHandleInfo&>(handle) );
339 #endif // ! GAUDIKERNEL_TOOLHANDLE_H
Handle to be used in lieu of naked pointers to gaudis.
void setTypeAndName(std::string myTypeAndName)
The component "type/name" string.
void setComponentType(const std::string &componentType)
The component type.
const std::string & parentName() const
The name of the parent.
void setParentName(const std::string &parent)
The name of the parent.
StatusCode release() const
Release the component.
This class is used for returning status codes from appropriate routines.
Definition of the basic interface.
T * get()
Return the wrapped pointer, not calling retrieve() if null.
StatusCode retrieve() const
Retrieve the component.
Base class from which all concrete algorithm classes should be derived.
IInterface compliant class extending IInterface with the name() method.
Base class to handles to be used in lieu of naked pointers to various Gaudi components.
std::string typeAndName() const
The full type and name: "type/name".
Base class for all services.
static const InterfaceID & interfaceID()
Return an instance of InterfaceID identifying the interface.
T is the concrete handle type, e.g.