|
DBus-1-TQt
1.0
|
00001 /* qdbusdata.h DBUS data transport type 00002 * 00003 * Copyright (C) 2007 Kevin Krammer <kevin.krammer@gmx.at> 00004 * 00005 * Licensed under the Academic Free License version 2.1 00006 * 00007 * This program is free software; you can redistribute it and/or modify 00008 * it under the terms of the GNU General Public License as published by 00009 * the Free Software Foundation; either version 2 of the License, or 00010 * (at your option) any later version. 00011 * 00012 * This program is distributed in the hope that it will be useful, 00013 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00014 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00015 * GNU General Public License for more details. 00016 * 00017 * You should have received a copy of the GNU General Public License 00018 * along with this program; if not, write to the Free Software 00019 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 00020 * USA. 00021 * 00022 */ 00023 00024 #ifndef TQDBUSDATA_H 00025 #define TQDBUSDATA_H 00026 00027 #include "tqdbusmacros.h" 00028 #include <tqglobal.h> 00029 00030 class TQCString; 00031 class TQT_DBusDataList; 00032 class TQT_DBusVariant; 00033 class TQT_DBusObjectPath; 00034 class TQT_DBusUnixFd; 00035 class TQString; 00036 00037 template<typename T> class TQValueList; 00038 template<typename T> class TQT_DBusDataMap; 00039 00058 class TQDBUS_EXPORT TQT_DBusData 00059 { 00060 public: 00073 enum Type 00074 { 00084 Invalid = 0, 00085 00091 Bool, 00092 00098 Byte, 00099 00105 Int16, 00106 00112 UInt16, 00113 00119 Int32, 00120 00126 UInt32, 00127 00133 Int64, 00134 00140 UInt64, 00141 00147 Double, 00148 00156 String, 00157 00173 ObjectPath, 00174 00180 UnixFd, 00181 00196 List, 00197 00236 Struct, 00237 00245 Variant, 00246 00280 Map 00281 }; 00282 00286 TQT_DBusData(); 00287 00296 TQT_DBusData(const TQT_DBusData& other); 00297 00304 ~TQT_DBusData(); 00305 00316 TQT_DBusData& operator=(const TQT_DBusData& other); 00317 00329 bool operator==(const TQT_DBusData& other) const; 00330 00340 bool operator!=(const TQT_DBusData& other) const; 00341 00349 inline bool isValid() const { return type() != TQT_DBusData::Invalid; } 00350 00359 Type type() const; 00360 00375 Type keyType() const; 00376 00385 inline const char* typeName() const { return typeName(type()); } 00386 00397 static const char* typeName(Type type); 00398 00408 static TQT_DBusData fromBool(bool value); 00409 00424 bool toBool(bool* ok = 0) const; 00425 00435 static TQT_DBusData fromByte(TQ_UINT8 value); 00436 00451 TQ_UINT8 toByte(bool* ok = 0) const; 00452 00462 static TQT_DBusData fromInt16(TQ_INT16 value); 00463 00478 TQ_INT16 toInt16(bool* ok = 0) const; 00479 00489 static TQT_DBusData fromUInt16(TQ_UINT16 value); 00490 00505 TQ_UINT16 toUInt16(bool* ok = 0) const; 00506 00516 static TQT_DBusData fromInt32(TQ_INT32 value); 00517 00532 TQ_INT32 toInt32(bool* ok = 0) const; 00533 00543 static TQT_DBusData fromUInt32(TQ_UINT32 value); 00544 00559 TQ_UINT32 toUInt32(bool* ok = 0) const; 00560 00570 static TQT_DBusData fromInt64(TQ_INT64 value); 00571 00586 TQ_INT64 toInt64(bool* ok = 0) const; 00587 00597 static TQT_DBusData fromUInt64(TQ_UINT64 value); 00598 00613 TQ_UINT64 toUInt64(bool* ok = 0) const; 00614 00624 static TQT_DBusData fromDouble(double value); 00625 00640 double toDouble(bool* ok = 0) const; 00641 00651 static TQT_DBusData fromString(const TQString& value); 00652 00667 TQString toString(bool* ok = 0) const; 00668 00678 static TQT_DBusData fromObjectPath(const TQT_DBusObjectPath& value); 00679 00695 TQT_DBusObjectPath toObjectPath(bool* ok = 0) const; 00696 00706 static TQT_DBusData fromUnixFd(const TQT_DBusUnixFd& value); 00707 00723 TQT_DBusUnixFd toUnixFd(bool* ok = 0) const; 00724 00743 static TQT_DBusData fromList(const TQT_DBusDataList& list); 00744 00759 TQT_DBusDataList toList(bool* ok = 0) const; 00760 00779 static TQT_DBusData fromTQValueList(const TQValueList<TQT_DBusData>& list); 00780 00794 TQValueList<TQT_DBusData> toTQValueList(bool* ok = 0) const; 00795 00807 static TQT_DBusData fromStruct(const TQValueList<TQT_DBusData>& memberList); 00808 00825 TQValueList<TQT_DBusData> toStruct(bool* ok = 0) const; 00826 00836 static TQT_DBusData fromVariant(const TQT_DBusVariant& value); 00837 00852 TQT_DBusVariant toVariant(bool* ok = 0) const; 00853 00859 TQT_DBusData getAsVariantData(); 00860 00876 static TQT_DBusData fromByteKeyMap(const TQT_DBusDataMap<TQ_UINT8>& map); 00877 00894 TQT_DBusDataMap<TQ_UINT8> toByteKeyMap(bool* ok = 0) const; 00895 00911 static TQT_DBusData fromInt16KeyMap(const TQT_DBusDataMap<TQ_INT16>& map); 00912 00929 TQT_DBusDataMap<TQ_INT16> toInt16KeyMap(bool* ok = 0) const; 00930 00946 static TQT_DBusData fromUInt16KeyMap(const TQT_DBusDataMap<TQ_UINT16>& map); 00947 00964 TQT_DBusDataMap<TQ_UINT16> toUInt16KeyMap(bool* ok = 0) const; 00965 00981 static TQT_DBusData fromInt32KeyMap(const TQT_DBusDataMap<TQ_INT32>& map); 00982 00999 TQT_DBusDataMap<TQ_INT32> toInt32KeyMap(bool* ok = 0) const; 01000 01016 static TQT_DBusData fromUInt32KeyMap(const TQT_DBusDataMap<TQ_UINT32>& map); 01017 01034 TQT_DBusDataMap<TQ_UINT32> toUInt32KeyMap(bool* ok = 0) const; 01035 01051 static TQT_DBusData fromInt64KeyMap(const TQT_DBusDataMap<TQ_INT64>& map); 01052 01069 TQT_DBusDataMap<TQ_INT64> toInt64KeyMap(bool* ok = 0) const; 01070 01086 static TQT_DBusData fromUInt64KeyMap(const TQT_DBusDataMap<TQ_UINT64>& map); 01087 01104 TQT_DBusDataMap<TQ_UINT64> toUInt64KeyMap(bool* ok = 0) const; 01105 01121 static TQT_DBusData fromStringKeyMap(const TQT_DBusDataMap<TQString>& map); 01122 01139 TQT_DBusDataMap<TQString> toStringKeyMap(bool* ok = 0) const; 01140 01156 static TQT_DBusData fromObjectPathKeyMap(const TQT_DBusDataMap<TQT_DBusObjectPath>& map); 01157 01174 TQT_DBusDataMap<TQT_DBusObjectPath> toObjectPathKeyMap(bool* ok = 0) const; 01175 01191 static TQT_DBusData fromUnixFdKeyMap(const TQT_DBusDataMap<TQT_DBusUnixFd>& map); 01192 01209 TQT_DBusDataMap<TQT_DBusUnixFd> toUnixFdKeyMap(bool* ok = 0) const; 01210 01223 TQCString buildDBusSignature() const; 01224 01225 private: 01226 class Private; 01227 Private* d; 01228 }; 01229 01230 #endif