Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:11:32

0001 #ifndef Fireworks_Core_FWParameterizable_h
0002 #define Fireworks_Core_FWParameterizable_h
0003 // -*- C++ -*-
0004 //
0005 // Package:     Core
0006 // Class  :     FWParameterizable
0007 //
0008 /**\class FWParameterizable FWParameterizable.h Fireworks/Core/interface/FWParameterizable.h
0009 
0010    Description: <one line class summary>
0011 
0012    Usage:
0013     <usage>
0014 
0015  */
0016 //
0017 // Original Author:  Chris Jones
0018 //         Created:  Sat Feb 23 13:35:23 EST 2008
0019 //
0020 
0021 // system include files
0022 #include <vector>
0023 
0024 // user include files
0025 
0026 // forward declarations
0027 class FWParameterBase;
0028 
0029 class FWParameterizable {
0030 public:
0031   FWParameterizable();
0032   virtual ~FWParameterizable();
0033 
0034   typedef std::vector<FWParameterBase*>::const_iterator const_iterator;
0035   // ---------- const member functions ---------------------
0036   const_iterator begin() const { return m_parameters.begin(); }
0037 
0038   const_iterator end() const { return m_parameters.end(); }
0039 
0040   // ---------- static member functions --------------------
0041 
0042   // ---------- member functions ---------------------------
0043   //base class implementation does not take ownership of added parameters
0044   void add(FWParameterBase*);
0045 
0046   FWParameterizable(const FWParameterizable&) = delete;  // stop default
0047 
0048   const FWParameterizable& operator=(const FWParameterizable&) = delete;  // stop default
0049 private:
0050   // ---------- member data --------------------------------
0051   std::vector<FWParameterBase*> m_parameters;
0052 };
0053 
0054 #endif