CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_0/src/FWCore/Framework/src/SignallingProductRegistry.h

Go to the documentation of this file.
00001 #ifndef FWCore_Framework_SignallingProductRegistry_h
00002 #define FWCore_Framework_SignallingProductRegistry_h
00003 // -*- C++ -*-
00004 //
00005 // Package:     Framework
00006 // Class  :     SignallingProductRegistry
00007 //
00016 //
00017 // Original Author:  Chris Jones
00018 //         Created:  Fri Sep 23 16:47:10 CEST 2005
00019 //
00020 
00021 // system include files
00022 #include <map>
00023 #include <string>
00024 
00025 #include "boost/utility.hpp"
00026 #include "sigc++/signal.h"
00027 
00028 // user include files
00029 #include "DataFormats/Provenance/interface/ProductRegistry.h"
00030 
00031 // forward declarations
00032 namespace edm {
00033    class SignallingProductRegistry : public ProductRegistry, private boost::noncopyable {
00034 
00035    public:
00036       SignallingProductRegistry() : ProductRegistry(), productAddedSignal_(), typeAddedStack_() {}
00037       explicit SignallingProductRegistry(ProductRegistry const& preg) : ProductRegistry(preg.productList(), false), productAddedSignal_(), typeAddedStack_() {}
00038       sigc::signal<void, BranchDescription const&> productAddedSignal_;
00039 
00040    private:
00041       virtual void addCalled(BranchDescription const&, bool);
00042       // ---------- member data --------------------------------
00043       std::map<std::string, unsigned int> typeAddedStack_;
00044    };
00045 }
00046 
00047 #endif