Gaudi Framework, version v23r4

Home   Generated: Mon Sep 17 2012

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 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: // the general functional methods 
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: // get the data from TES 
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: // inspection: get all counters:
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: // inspection: get the counter
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: // inspection: get all tools 
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 } //                                               end of namespace GaudiPython
00157 // ============================================================================
00158 // The END 
00159 // ============================================================================
00160 #endif // GAUDIPYTHON_ALGDECORATORS_H
00161 // ============================================================================
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines

Generated at Mon Sep 17 2012 13:49:35 for Gaudi Framework, version v23r4 by Doxygen version 1.7.2 written by Dimitri van Heesch, © 1997-2004