Gaudi Framework, version v21r9

Home   Generated: 3 May 2010

AlgDecorators.h

Go to the documentation of this file.
00001 // $Id: AlgDecorators.h,v 1.2 2005/11/08 16:31:03 mato Exp $
00002 // ============================================================================
00003 #ifndef GAUDIPYTHON_ALGDECORATORS_H
00004 #define GAUDIPYTHON_ALGDECORATORS_H 1
00005 // ============================================================================
00006 // Include files
00007 // ============================================================================
00008 // STD & STL
00009 // ============================================================================
00010 #include  <string>
00011 // ============================================================================
00012 // GaudiAlg
00013 // ============================================================================
00014 #include "GaudiAlg/GaudiAlgorithm.h"
00015 // ============================================================================
00016 // GaudiPython
00017 // ============================================================================
00018 #include "GaudiPython/GaudiPython.h"
00019 // ============================================================================
00020 // forward declarations
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: // the general functional methods 
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: // inspection: get all counters:
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: // inspection: get the counter
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: // inspection: get all tools 
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 } //                                               end of namespace GaudiPython
00130 // ============================================================================
00131 // The END 
00132 // ============================================================================
00133 #endif // GAUDIPYTHON_ALGDECORATORS_H
00134 // ============================================================================

Generated at Mon May 3 12:14:39 2010 for Gaudi Framework, version v21r9 by Doxygen version 1.5.6 written by Dimitri van Heesch, © 1997-2004