00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef QDBUSDATA_H
00025 #define QDBUSDATA_H
00026
00027 #include "dbus/qdbusmacros.h"
00028 #include <qglobal.h>
00029
00030 class QCString;
00031 class QDBusDataList;
00032 class QDBusVariant;
00033 class QDBusObjectPath;
00034 class QString;
00035
00036 template<typename T> class QValueList;
00037 template<typename T> class QDBusDataMap;
00038
00057 class QDBUS_EXPORT QDBusData
00058 {
00059 public:
00072 enum Type
00073 {
00083 Invalid = 0,
00084
00090 Bool,
00091
00097 Byte,
00098
00104 Int16,
00105
00111 UInt16,
00112
00118 Int32,
00119
00125 UInt32,
00126
00132 Int64,
00133
00139 UInt64,
00140
00146 Double,
00147
00155 String,
00156
00172 ObjectPath,
00173
00188 List,
00189
00228 Struct,
00229
00237 Variant,
00238
00270 Map
00271 };
00272
00276 QDBusData();
00277
00286 QDBusData(const QDBusData& other);
00287
00294 ~QDBusData();
00295
00306 QDBusData& operator=(const QDBusData& other);
00307
00319 bool operator==(const QDBusData& other) const;
00320
00330 bool operator!=(const QDBusData& other) const;
00331
00339 inline bool isValid() const { return type() != QDBusData::Invalid; }
00340
00349 Type type() const;
00350
00365 Type keyType() const;
00366
00375 inline const char* typeName() const { return typeName(type()); }
00376
00387 static const char* typeName(Type type);
00388
00398 static QDBusData fromBool(bool value);
00399
00414 bool toBool(bool* ok = 0) const;
00415
00425 static QDBusData fromByte(Q_UINT8 value);
00426
00441 Q_UINT8 toByte(bool* ok = 0) const;
00442
00452 static QDBusData fromInt16(Q_INT16 value);
00453
00468 Q_INT16 toInt16(bool* ok = 0) const;
00469
00479 static QDBusData fromUInt16(Q_UINT16 value);
00480
00495 Q_UINT16 toUInt16(bool* ok = 0) const;
00496
00506 static QDBusData fromInt32(Q_INT32 value);
00507
00522 Q_INT32 toInt32(bool* ok = 0) const;
00523
00533 static QDBusData fromUInt32(Q_UINT32 value);
00534
00549 Q_UINT32 toUInt32(bool* ok = 0) const;
00550
00560 static QDBusData fromInt64(Q_INT64 value);
00561
00576 Q_INT64 toInt64(bool* ok = 0) const;
00577
00587 static QDBusData fromUInt64(Q_UINT64 value);
00588
00603 Q_UINT64 toUInt64(bool* ok = 0) const;
00604
00614 static QDBusData fromDouble(double value);
00615
00630 double toDouble(bool* ok = 0) const;
00631
00641 static QDBusData fromString(const QString& value);
00642
00657 QString toString(bool* ok = 0) const;
00658
00668 static QDBusData fromObjectPath(const QDBusObjectPath& value);
00669
00685 QDBusObjectPath toObjectPath(bool* ok = 0) const;
00686
00705 static QDBusData fromList(const QDBusDataList& list);
00706
00721 QDBusDataList toList(bool* ok = 0) const;
00722
00741 static QDBusData fromQValueList(const QValueList<QDBusData>& list);
00742
00756 QValueList<QDBusData> toQValueList(bool* ok = 0) const;
00757
00769 static QDBusData fromStruct(const QValueList<QDBusData>& memberList);
00770
00787 QValueList<QDBusData> toStruct(bool* ok = 0) const;
00788
00798 static QDBusData fromVariant(const QDBusVariant& value);
00799
00814 QDBusVariant toVariant(bool* ok = 0) const;
00815
00831 static QDBusData fromByteKeyMap(const QDBusDataMap<Q_UINT8>& map);
00832
00849 QDBusDataMap<Q_UINT8> toByteKeyMap(bool* ok = 0) const;
00850
00866 static QDBusData fromInt16KeyMap(const QDBusDataMap<Q_INT16>& map);
00867
00884 QDBusDataMap<Q_INT16> toInt16KeyMap(bool* ok = 0) const;
00885
00901 static QDBusData fromUInt16KeyMap(const QDBusDataMap<Q_UINT16>& map);
00902
00919 QDBusDataMap<Q_UINT16> toUInt16KeyMap(bool* ok = 0) const;
00920
00936 static QDBusData fromInt32KeyMap(const QDBusDataMap<Q_INT32>& map);
00937
00954 QDBusDataMap<Q_INT32> toInt32KeyMap(bool* ok = 0) const;
00955
00971 static QDBusData fromUInt32KeyMap(const QDBusDataMap<Q_UINT32>& map);
00972
00989 QDBusDataMap<Q_UINT32> toUInt32KeyMap(bool* ok = 0) const;
00990
01006 static QDBusData fromInt64KeyMap(const QDBusDataMap<Q_INT64>& map);
01007
01024 QDBusDataMap<Q_INT64> toInt64KeyMap(bool* ok = 0) const;
01025
01041 static QDBusData fromUInt64KeyMap(const QDBusDataMap<Q_UINT64>& map);
01042
01059 QDBusDataMap<Q_UINT64> toUInt64KeyMap(bool* ok = 0) const;
01060
01076 static QDBusData fromStringKeyMap(const QDBusDataMap<QString>& map);
01077
01094 QDBusDataMap<QString> toStringKeyMap(bool* ok = 0) const;
01095
01111 static QDBusData fromObjectPathKeyMap(const QDBusDataMap<QDBusObjectPath>& map);
01112
01129 QDBusDataMap<QDBusObjectPath> toObjectPathKeyMap(bool* ok = 0) const;
01130
01143 QCString buildDBusSignature() const;
01144
01145 private:
01146 class Private;
01147 Private* d;
01148 };
01149
01150 #endif