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 class DataObject ;
00029
00037
00038 namespace GaudiPython
00039 {
00040
00047 class GAUDI_API AlgDecorator
00048 {
00049 public:
00050
00052 typedef std::vector<const StatEntity*> Counters ;
00053 typedef std::vector<IAlgTool*> Tools ;
00054 typedef std::vector<IService*> Services ;
00055
00056 public:
00057
00066 static IAlgTool* tool_
00067 ( const GaudiAlgorithm* alg ,
00068 const std::string& type ,
00069 const std::string& name ,
00070 const IInterface* parent = 0 ,
00071 const bool create = true ) ;
00079 static IAlgTool* tool_
00080 ( const GaudiAlgorithm* alg ,
00081 const std::string& typeAndName ,
00082 const IInterface* parent = 0 ,
00083 const bool create = true ) ;
00090 static IInterface* svc_
00091 ( const GaudiAlgorithm* alg ,
00092 const std::string& name ,
00093 const bool create = false ) ;
00094
00095 public:
00096
00103 static DataObject* get_
00104 ( const GaudiAlgorithm* alg ,
00105 const std::string& location ,
00106 const bool useRootInTes ) ;
00107
00108 public:
00109
00116 static bool exist
00117 ( const GaudiAlgorithm* alg ,
00118 const std::string& location ,
00119 const bool useRootInTes ) ;
00120
00121 public:
00122
00123 static size_t _counters_a_
00124 ( const GaudiAlgorithm* alg ,
00125 std::vector<std::string>& names , Counters& out ) ;
00126 static size_t _counters_t_
00127 ( const GaudiTool* alg ,
00128 std::vector<std::string>& names , Counters& out ) ;
00129 static size_t _counters_a_
00130 ( const IAlgorithm* alg ,
00131 std::vector<std::string>& names , Counters& out ) ;
00132 static size_t _counters_t_
00133 ( const IAlgTool* alg ,
00134 std::vector<std::string>& names , Counters& out ) ;
00135
00136 public:
00137
00138 static const StatEntity* _counter_a_
00139 ( const GaudiAlgorithm* alg , const std::string& name ) ;
00140 static const StatEntity* _counter_t_
00141 ( const GaudiTool* alg , const std::string& name ) ;
00142 static const StatEntity* _counter_a_
00143 ( const IAlgorithm* alg , const std::string& name ) ;
00144 static const StatEntity* _counter_t_
00145 ( const IAlgTool* alg , const std::string& name ) ;
00146
00147 public:
00148
00149 static size_t _tools_a_ ( const GaudiAlgorithm* , Tools& tools ) ;
00150 static size_t _tools_t_ ( const GaudiTool* , Tools& tools ) ;
00151 static size_t _tools_a_ ( const IAlgorithm* , Tools& tools ) ;
00152 static size_t _tools_t_ ( const IAlgTool* , Tools& tools ) ;
00153
00154 };
00155
00156 }
00157
00158
00159
00160 #endif // GAUDIPYTHON_ALGDECORATORS_H
00161