00001 #if !defined(PARAMETERS_H_INCLUDED_)
00002 #define PARAMETERS_H_INCLUDED_
00003
00004 #if _MSC_VER > 1000
00005 #pragma once
00006 #endif // _MSC_VER > 1000
00007
00008 #include <vector>
00009 using namespace std;
00010
00011 #include "Sti/Base/Named.h"
00012 #include "Sti/Base/Described.h"
00013
00014 class Parameter;
00015
00016 typedef vector<Parameter*> ParameterVector;
00017 typedef ParameterVector::iterator ParameterIterator;
00018 typedef ParameterVector::const_iterator ParameterConstIterator;
00019
00020 class Parameters : public Named, public Described
00021 {
00022 public:
00023 Parameters();
00024 Parameters(const string & name, const string & description);
00025 Parameters(const Parameters & parameter);
00026 virtual ~Parameters();
00027 const Parameters & operator=(const Parameters & parameter);
00028 Parameter* add(Parameter * parameter);
00029 Parameter * getParameter(const string name);
00030 ParameterIterator begin();
00031 ParameterIterator end();
00032 ParameterConstIterator begin() const;
00033 ParameterConstIterator end() const;
00034 virtual void initialize()=0;
00035 void clear();
00036 bool isEnabled();
00037 bool isEditable();
00038 void setEnabled(bool value);
00039 void setEditable(bool value);
00040 protected:
00041 ParameterVector parameterVector;
00042 bool _enabled;
00043 bool _editable;
00044 };
00045
00047 inline void Parameters::clear()
00048 {
00049 parameterVector.clear();
00050 }
00051
00056 inline bool Parameters::isEnabled()
00057 {
00058 return _enabled;
00059 }
00060
00065 inline bool Parameters::isEditable()
00066 {
00067 return _editable;
00068 }
00069
00074 inline void Parameters::setEnabled(bool value)
00075 {
00076 _enabled = value;
00077 }
00078
00083 inline void Parameters::setEditable(bool value)
00084 {
00085 _editable = value;
00086 }
00087
00088
00089
00090 #endif // !defined(PARAMETERS_H_INCLUDED_)