1 #ifndef GAUDIKERNEL_ALGORITHM_H
2 #define GAUDIKERNEL_ALGORITHM_H
32 #ifndef PACKAGE_VERSION
33 #define PACKAGE_VERSION "unknown"
63 typedef Gaudi::PluginService::Factory2<
IAlgorithm*,
145 virtual const std::string& name()
const;
147 virtual const std::string& version()
const;
169 virtual bool isExecuted( )
const;
172 virtual void setExecuted(
bool state );
177 virtual void resetExecuted( );
194 virtual bool isEnabled( )
const;
197 virtual bool filterPassed( )
const;
200 virtual void setFilterPassed(
bool state );
205 (
const std::string& name, T*& psvc,
bool createIf =
true )
const {
206 return service_i(name, createIf, T::interfaceID(), (
void**)&psvc);
211 StatusCode service(
const std::string& svcType,
const std::string& svcName,
213 return service_i(svcType, svcName, T::interfaceID(), (
void**)&psvc);
217 SmartIF<IService> service(
const std::string& name,
const bool createIf =
true,
const bool quiet =
false)
const;
220 void setOutputLevel(
int level );
335 const std::string& name,
Algorithm*& pSubAlg );
338 std::vector<Algorithm*>* subAlgorithms()
const;
353 virtual const std::vector<Property*>& getProperties( )
const;
395 (
const std::string& name ,
397 const std::string& doc =
"none" )
const
399 return m_propertyMgr->declareProperty(name, property, doc);
404 (
const std::string& name ,
406 const std::string& rname =
"" )
const
408 return m_propertyMgr -> declareRemoteProperty ( name , rsvc , rname );
423 if ( !m_pMonitorSvc.isValid() ){
424 m_pMonitorSvc = service(m_monitorSvcName,
false,
true);
426 return m_pMonitorSvc;
435 void declareInfo(
const std::string& name,
437 const std::string& desc )
const
450 void declareInfo(
const std::string& name,
451 const std::string&
format,
454 const std::string& desc )
const
457 if ( mS ) mS->
declareInfo(name, format, var, size, desc,
this);
504 template <
class TYPE>
506 (
const std::string& name ,
525 void initOutputLevel(
Property& prop);
574 StatusCode service_i(
const std::string& svcName,
578 StatusCode service_i(
const std::string& svcType,
579 const std::string& svcName,
590 #ifndef GAUDI_NEW_PLUGIN_SERVICE
594 template <
typename S>
595 static typename S::ReturnType
create(
typename S::Arg1Type a1,
596 typename S::Arg2Type a2) {
597 return new T(a1, a2);
602 #define DECLARE_ALGORITHM_FACTORY(x) \
603 DECLARE_FACTORY_WITH_CREATOR(x, AlgFactory< x >, Algorithm::Factory)
604 #define DECLARE_NAMED_ALGORITHM_FACTORY(x, n) \
605 DECLARE_FACTORY_WITH_CREATOR_AND_ID(x, AlgFactory< x >, \
606 #n, Algorithm::Factory)
607 #define DECLARE_NAMESPACE_ALGORITHM_FACTORY(n, x) \
608 DECLARE_ALGORITHM_FACTORY(n::x)
613 #define DECLARE_ALGORITHM_FACTORY(x) DECLARE_COMPONENT(x)
614 #define DECLARE_NAMED_ALGORITHM_FACTORY(x, n) DECLARE_COMPONENT_WITH_ID(x, #n)
615 #define DECLARE_NAMESPACE_ALGORITHM_FACTORY(n, x) DECLARE_COMPONENT(n::x)
619 #endif //GAUDIKERNEL_ALGORITHM_H