Go to the documentation of this file.00001 #ifndef _RQT_MRTA_ARCHITECTURE_CONFIG_PARAM_INTERFACE_H_
00002 #define _RQT_MRTA_ARCHITECTURE_CONFIG_PARAM_INTERFACE_H_
00003
00004 #include "utilities/abstract_config.h"
00005
00006 namespace rqt_mrta
00007 {
00008 namespace config
00009 {
00010 class Params;
00011
00012 class ParamInterface : public utilities::AbstractConfig
00013 {
00014 Q_OBJECT
00015 public:
00016 virtual ~ParamInterface();
00017 QString getGroupName() const;
00018 QString getName() const;
00019 QString getFullName() const;
00020 virtual ParamInterface* getParentParam() const;
00021 virtual void setName(const QString& name);
00022 virtual ParamInterface* getParam(const QString& full_name) const;
00023 virtual void addParam(ParamInterface* param);
00024 virtual void removeParam(const QString& full_name);
00025 virtual void clearParams();
00026 virtual bool contains(const QString& name) const;
00027 virtual size_t count() const;
00028 virtual bool isEmpty() const;
00029 virtual QString validate() const;
00030 virtual bool isParam() const;
00031 virtual bool isParams() const;
00032 virtual bool isArray() const;
00033 virtual void save(QSettings& settings) const;
00034 virtual void load(QSettings& settings);
00035 virtual void reset();
00036 virtual void write(QDataStream& stream) const;
00037 virtual void read(QDataStream& stream);
00038 virtual ParamInterface& operator=(const ParamInterface& config);
00039 virtual ParamInterface* clone() const = 0;
00040 virtual QString toYaml(const QString& prefix = "") const;
00041
00042 signals:
00043 void nameChanged(const QString &previous_full_name, const QString &name);
00044 void typeChanged(const QString &full_name, const QMetaType::Type& type);
00045 void valueChanged(const QString& full_name, const QVariant& value);
00046 void defaultValueChanged(const QString &full_name, const QVariant& type);
00047 void toolTipChanged(const QString &full_name, const QString& type);
00048 void added(const QString& full_name);
00049 void removed(const QString& full_name);
00050 void cleared(const QString& full_name);
00051
00052 protected:
00053 ParamInterface(const QString &group_name, Params* parent);
00054 QString name_;
00055 const QString group_name_;
00056
00057 protected slots:
00058 void paramTypeChanged(const QString &full_name, const QMetaType::Type& type);
00059 void paramValueChanged(const QString& full_name, const QVariant& value);
00060 void paramDefaultValueChanged(const QString &full_name, const QVariant& default_value);
00061 void paramToolTipChanged(const QString &full_name, const QString& tool_tip);
00062 };
00063 }
00064 }
00065
00066 #endif // _RQT_MRTA_ARCHITECTURE_CONFIG_PARAM_INTERFACE_H_