AlgDecorators.h
Go to the documentation of this file.00001
00002
00003 #ifndef GAUDIPYTHON_ALGDECORATORS_H
00004 #define GAUDIPYTHON_ALGDECORATORS_H 1
00005
00006
00007
00008
00009
00010 #include <string>
00011
00012
00013
00014 #include "GaudiAlg/GaudiAlgorithm.h"
00015
00016
00017
00018 #include "GaudiPython/GaudiPython.h"
00019
00020
00021
00022 class IInterface ;
00023 class IProperty ;
00024 class IAlgTool ;
00025 class IAlgorithm ;
00026 class GaudiAlgorithm ;
00027 class GaudiTool ;
00028
00036
00037 namespace GaudiPython
00038 {
00039
00046 class GAUDI_API AlgDecorator
00047 {
00048 public:
00049
00051 typedef std::vector<const StatEntity*> Counters ;
00052 typedef std::vector<IAlgTool*> Tools ;
00053 typedef std::vector<IService*> Services ;
00054
00055 public:
00056
00065 static IAlgTool* tool_
00066 ( const GaudiAlgorithm* alg ,
00067 const std::string& type ,
00068 const std::string& name ,
00069 const IInterface* parent = 0 ,
00070 const bool create = true ) ;
00078 static IAlgTool* tool_
00079 ( const GaudiAlgorithm* alg ,
00080 const std::string& typeAndName ,
00081 const IInterface* parent = 0 ,
00082 const bool create = true ) ;
00089 static IInterface* svc_
00090 ( const GaudiAlgorithm* alg ,
00091 const std::string& name ,
00092 const bool create = false ) ;
00093
00094 public:
00095
00096 static size_t _counters_a_
00097 ( const GaudiAlgorithm* alg ,
00098 std::vector<std::string>& names , Counters& out ) ;
00099 static size_t _counters_t_
00100 ( const GaudiTool* alg ,
00101 std::vector<std::string>& names , Counters& out ) ;
00102 static size_t _counters_a_
00103 ( const IAlgorithm* alg ,
00104 std::vector<std::string>& names , Counters& out ) ;
00105 static size_t _counters_t_
00106 ( const IAlgTool* alg ,
00107 std::vector<std::string>& names , Counters& out ) ;
00108
00109 public:
00110
00111 static const StatEntity* _counter_a_
00112 ( const GaudiAlgorithm* alg , const std::string& name ) ;
00113 static const StatEntity* _counter_t_
00114 ( const GaudiTool* alg , const std::string& name ) ;
00115 static const StatEntity* _counter_a_
00116 ( const IAlgorithm* alg , const std::string& name ) ;
00117 static const StatEntity* _counter_t_
00118 ( const IAlgTool* alg , const std::string& name ) ;
00119
00120 public:
00121
00122 static size_t _tools_a_ ( const GaudiAlgorithm* , Tools& tools ) ;
00123 static size_t _tools_t_ ( const GaudiTool* , Tools& tools ) ;
00124 static size_t _tools_a_ ( const IAlgorithm* , Tools& tools ) ;
00125 static size_t _tools_t_ ( const IAlgTool* , Tools& tools ) ;
00126
00127 };
00128
00129 }
00130
00131
00132
00133 #endif // GAUDIPYTHON_ALGDECORATORS_H
00134