CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
ConstProductRegistry.h
Go to the documentation of this file.
1 #ifndef Framework_ConstProductRegistry_h
2 #define Framework_ConstProductRegistry_h
3 // -*- C++ -*-
4 //
5 // Package: Framework
6 // Class : ConstProductRegistry
7 //
16 //
17 // Original Author: Chris Jones
18 // Created: Thu Sep 22 18:01:21 CEST 2005
19 // $Id: ConstProductRegistry.h,v 1.8 2010/10/08 17:55:04 wmtan Exp $
20 //
21 
22 // system include files
23 #include <vector>
24 #include <string>
25 
26 // user include files
29 
30 // forward declarations
31 namespace edm {
33  {
34 
35  public:
37 
39 
40  // ---------- const member functions ---------------------
41  ProductRegistry const& productRegistry() const {return *reg_;}
42 
43  ProductList const& productList() const {return reg_->productList();}
44 
45  // Return all the branch names currently known to *this. This
46  // does a return-by-value of the vector so that it may be used in
47  // a colon-initialization list.
48  std::vector<std::string> allBranchNames() const {return reg_->allBranchNames();}
49 
50  // Return pointers to (const) BranchDescriptions for all the
51  // BranchDescriptions known to *this. This does a
52  // return-by-value of the vector so that it may be used in a
53  // colon-initialization list.
54  std::vector<BranchDescription const*> allBranchDescriptions() const {return reg_->allBranchDescriptions();}
55 
56  bool anyProductProduced() const {return reg_->anyProductProduced();}
57 
58  template< class T>
59  void watchProductAdditions(const T& iFunc)
60  {
62  iFunc);
63  }
64  template< class T, class TMethod>
65  void watchProductAdditions(T& iObj, TMethod iMethod)
66  {
68  boost::bind(iMethod, iObj,_1));
69  }
70 
71  private:
72  // stop default
74 
75  // stop default
77 
78  // ---------- member data --------------------------------
80  };
81 }
82 
83 #endif
std::vector< std::string > allBranchNames() const
std::map< BranchKey, BranchDescription > ProductList
ProductRegistry const & productRegistry() const
ProductList const & productList() const
ProductRegistry::ProductList ProductList
void watchProductAdditions(const T &iFunc)
std::vector< BranchDescription const * > allBranchDescriptions() const
void watchProductAdditions(T &iObj, TMethod iMethod)
ConstProductRegistry(SignallingProductRegistry &iReg)
bool anyProductProduced() const
std::vector< std::string > allBranchNames() const
author Stefano ARGIRO author Bill Tanenbaum
sigc::signal< void, BranchDescription const & > productAddedSignal_
SignallingProductRegistry * reg_
std::vector< BranchDescription const * > allBranchDescriptions() const
long double T
ProductList const & productList() const
void connect_but_block_self(Signal &oSignal, const Func &iFunc)
const ConstProductRegistry & operator=(const ConstProductRegistry &)