1 #ifndef GAUDIKERNEL_ALGTOOL_H
2 #define GAUDIKERNEL_ALGTOOL_H
37 typedef Gaudi::PluginService::Factory3<
IAlgTool*,
46 virtual const std::string&
name()
const;
49 virtual const std::string&
type()
const;
137 template <
class TYPE>
150 const std::string& name,
177 (
const std::string& name, T*& svc,
bool createIf =
true )
const {
178 return service_i(name, createIf, T::interfaceID(), (
void**)&svc);
185 return service_i(type, name, T::interfaceID(), (
void**)&svc);
197 tool->declInterface( I::interfaceID(), (I*)tool);
232 (
const std::string& name ,
234 const std::string& doc =
"none" )
const
236 return m_propertyMgr -> declareProperty ( name , property , doc ) ;
240 (
const std::string& name ,
242 const std::string& rname =
"" )
const
244 return m_propertyMgr-> declareRemoteProperty ( name , rsvc , rname ) ;
262 if ( !m_pMonitorSvc ){
263 service_i( m_monitorSvcName,
false,
266 return m_pMonitorSvc;
275 void declareInfo(
const std::string& name,
277 const std::string& desc )
const
290 void declareInfo(
const std::string& name,
291 const std::string&
format,
294 const std::string& desc )
const
297 if ( mS ) mS->
declareInfo(name, format, var, size, desc,
this);
309 void initOutputLevel(
Property& prop);
334 StatusCode service_i(
const std::string& algName,
338 StatusCode service_i(
const std::string& svcType,
339 const std::string& svcName,
358 #ifndef GAUDI_NEW_PLUGIN_SERVICE
362 template <
typename S>
363 static typename S::ReturnType
create(
typename S::Arg1Type a1,
364 typename S::Arg2Type a2,
365 typename S::Arg3Type a3) {
366 return new T(a1, a2, a3);
371 #define DECLARE_TOOL_FACTORY(x) \
372 DECLARE_FACTORY_WITH_CREATOR(x, ToolFactory< x >, AlgTool::Factory)
373 #define DECLARE_NAMESPACE_TOOL_FACTORY(n, x) \
374 DECLARE_TOOL_FACTORY(n::x)
379 #define DECLARE_TOOL_FACTORY(x) DECLARE_COMPONENT(x)
380 #define DECLARE_NAMESPACE_TOOL_FACTORY(n,x) DECLARE_COMPONENT(n::x)
385 #endif // GAUDIKERNEL_ALGTOOL_H