00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef ATTRIBUTEMAP_H
00020 #define ATTRIBUTEMAP_H
00021
00022 #include <QString>
00023 #include <QStringList>
00024 #include <QVariant>
00025 #include <QObject>
00026 #include <typeinfo>
00027 #include "kockpituser.h"
00028
00029 Q_DECLARE_METATYPE(QString*);
00030
00032
00035 typedef enum {
00036 IO,
00037 I,
00038 O,
00039 KEY,
00040 PW,
00041 CLASS
00042 } attrmode;
00043
00045
00049 class AttributeMap {
00050
00051 public:
00053
00057 AttributeMap(){ }
00058
00060
00069 AttributeMap(const QString &meta, const QString &dsrcattr,
00070 QString* attr, attrmode mode);
00071
00073
00082 AttributeMap(const QString &meta, const QString &dsrcattr,
00083 int* attr, attrmode mode);
00084
00086
00095 AttributeMap(const QString &meta, const QString &dsrcattr,
00096 QStringList* attr, attrmode mode);
00097
00099
00103 AttributeMap(const AttributeMap& amap);
00104
00106
00109 virtual ~AttributeMap() { }
00110
00112
00116 void setMeta(const QString &meta);
00117
00119
00123 void setDsrcAttr(const QString &dsrcattr);
00124
00126
00132 void setAttrVal(const QString &value);
00133
00135 void setAttrVal(QString *value);
00136
00138
00144 void setAttrVal(const QStringList &value);
00145
00147 void setAttrVal(QStringList *value);
00148
00150
00156 void setAttrVal(const QVariant &value);
00157
00159
00163 void setMode(attrmode mode);
00164
00166
00169 QString getMeta(void) const;
00170
00172
00175 QString getDsrcAttr(void) const;
00176
00178
00181 QVariant getAttrs(void) const;
00182
00184
00187 attrmode getMode(void) const;
00188
00190
00193 QString getType(void) const;
00194
00196
00199 bool isMulti(void) const;
00200
00202
00207 void operator=(const AttributeMap& amap);
00208
00210
00215 friend std::ostream& operator <<(std::ostream& output, const AttributeMap& amap);
00216
00217 private:
00219 QString meta;
00221 QString dsrcattr;
00223 QString type;
00225 void *attr;
00227 attrmode mode;
00228 };
00229
00230
00231 #endif // ATTRIBUTEMAP_H