CMS 3D CMS Logo

CMSSW_4_4_3_patch1/src/Fireworks/Core/interface/FWParameterizable.h

Go to the documentation of this file.
00001 #ifndef Fireworks_Core_FWParameterizable_h
00002 #define Fireworks_Core_FWParameterizable_h
00003 // -*- C++ -*-
00004 //
00005 // Package:     Core
00006 // Class  :     FWParameterizable
00007 //
00016 //
00017 // Original Author:  Chris Jones
00018 //         Created:  Sat Feb 23 13:35:23 EST 2008
00019 // $Id: FWParameterizable.h,v 1.3 2009/01/23 21:35:41 amraktad Exp $
00020 //
00021 
00022 // system include files
00023 #include <vector>
00024 
00025 // user include files
00026 
00027 // forward declarations
00028 class FWParameterBase;
00029 
00030 class FWParameterizable
00031 {
00032 
00033 public:
00034    FWParameterizable();
00035    virtual ~FWParameterizable();
00036 
00037    typedef std::vector<FWParameterBase* >::const_iterator const_iterator;
00038    // ---------- const member functions ---------------------
00039    const_iterator begin() const {
00040       return m_parameters.begin();
00041    }
00042 
00043    const_iterator end() const {
00044       return m_parameters.end();
00045    }
00046 
00047    // ---------- static member functions --------------------
00048 
00049    // ---------- member functions ---------------------------
00050    //base class implementation does not take ownership of added parameters
00051    void add(FWParameterBase*);
00052 
00053 private:
00054    FWParameterizable(const FWParameterizable&);    // stop default
00055 
00056    const FWParameterizable& operator=(const FWParameterizable&);    // stop default
00057 
00058    // ---------- member data --------------------------------
00059    std::vector<FWParameterBase* > m_parameters;
00060 };
00061 
00062 
00063 #endif