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 QDBUSDATALIST_H
00025 #define QDBUSDATALIST_H
00026 
00027 #include "dbus/qdbusdata.h"
00028 
00029 template <typename T> class QValueList;
00030 class QDBusObjectPath;
00031 class QDBusVariant;
00032 class QString;
00033 class QStringList;
00034 
00070 class QDBUS_EXPORT QDBusDataList
00071 {
00072 public:
00078     QDBusDataList();
00079 
00091     explicit QDBusDataList(QDBusData::Type simpleItemType);
00092 
00103     explicit QDBusDataList(const QDBusData& containerItemType);
00104 
00113     QDBusDataList(const QDBusDataList& other);
00114 
00131     QDBusDataList(const QValueList<QDBusData>& other);
00132 
00145     QDBusDataList(const QValueList<bool>& other);
00146 
00159     QDBusDataList(const QValueList<Q_UINT8>& other);
00160 
00173     QDBusDataList(const QValueList<Q_INT16>& other);
00174 
00187     QDBusDataList(const QValueList<Q_UINT16>& other);
00188 
00201     QDBusDataList(const QValueList<Q_INT32>& other);
00202 
00215     QDBusDataList(const QValueList<Q_UINT32>& other);
00216 
00229     QDBusDataList(const QValueList<Q_INT64>& other);
00230 
00243     QDBusDataList(const QValueList<Q_UINT64>& other);
00244 
00257     QDBusDataList(const QValueList<double>& other);
00258 
00271     QDBusDataList(const QValueList<QDBusVariant>& other);
00272 
00285     QDBusDataList(const QStringList& other);
00286 
00299     QDBusDataList(const QValueList<QDBusObjectPath>& other);
00300 
00304     ~QDBusDataList();
00305 
00316     QDBusDataList& operator=(const QDBusDataList& other);
00317 
00332     QDBusDataList& operator=(const QValueList<QDBusData>& other);
00333 
00348     QDBusDataList& operator=(const QStringList& other);
00349 
00358     QDBusData::Type type() const;
00359 
00373     bool hasContainerItemType() const;
00374 
00390     QDBusData containerItemType() const;
00391 
00399     inline bool isValid() const { return type() != QDBusData::Invalid; }
00400 
00408     bool isEmpty() const;
00409 
00417     uint count() const;
00418 
00432     bool operator==(const QDBusDataList& other) const;
00433 
00447     bool operator!=(const QDBusDataList& other) const;
00448 
00454     void clear();
00455 
00473     QDBusDataList& operator<<(const QDBusData& data);
00474 
00480     QValueList<QDBusData> toQValueList() const;
00481 
00499     QStringList toQStringList(bool* ok = 0) const;
00500 
00517     QValueList<bool> toBoolList(bool* ok = 0) const;
00518 
00535     QValueList<Q_UINT8> toByteList(bool* ok = 0) const;
00536 
00554     QValueList<Q_INT16> toInt16List(bool* ok = 0) const;
00555 
00573     QValueList<Q_UINT16> toUInt16List(bool* ok = 0) const;
00574 
00592     QValueList<Q_INT32> toInt32List(bool* ok = 0) const;
00593 
00611     QValueList<Q_UINT32> toUInt32List(bool* ok = 0) const;
00612 
00630     QValueList<Q_INT64> toInt64List(bool* ok = 0) const;
00631 
00649     QValueList<Q_UINT64> toUInt64List(bool* ok = 0) const;
00650 
00667     QValueList<double> toDoubleList(bool* ok = 0) const;
00668 
00685     QValueList<QString> toStringList(bool* ok = 0) const;
00686 
00700     QValueList<QDBusObjectPath> toObjectPathList(bool* ok = 0) const;
00701 
00718     QValueList<QDBusVariant> toVariantList(bool* ok = 0) const;
00719 
00720 private:
00721     class Private;
00722     Private* d;
00723 };
00724 
00725 #endif