#include "tqdbusmarshall.h"#include "tqdbusdata.h"#include "tqdbusdatalist.h"#include "tqdbusdatamap.h"#include "tqdbusobjectpath.h"#include "tqdbusunixfd.h"#include "tqdbusvariant.h"#include <tqvariant.h>#include <tqvaluelist.h>#include <tqmap.h>#include <tqstringlist.h>#include <tqvaluevector.h>#include <dbus/dbus.h>Go to the source code of this file.
Functions | |
| template<typename T > | |
| T | qIterGet (DBusMessageIter *it) |
| static TQT_DBusData::Type | qSingleTypeForDBusSignature (char signature) |
| static TQValueList< TQT_DBusData > | parseSignature (TQCString &signature) |
| static TQT_DBusData | qFetchParameter (DBusMessageIter *it) |
| void | qFetchByteKeyMapEntry (TQT_DBusDataMap< TQ_UINT8 > &map, DBusMessageIter *it) |
| void | qFetchInt16KeyMapEntry (TQT_DBusDataMap< TQ_INT16 > &map, DBusMessageIter *it) |
| void | qFetchUInt16KeyMapEntry (TQT_DBusDataMap< TQ_UINT16 > &map, DBusMessageIter *it) |
| void | qFetchInt32KeyMapEntry (TQT_DBusDataMap< TQ_INT32 > &map, DBusMessageIter *it) |
| void | qFetchUInt32KeyMapEntry (TQT_DBusDataMap< TQ_UINT32 > &map, DBusMessageIter *it) |
| void | qFetchInt64KeyMapEntry (TQT_DBusDataMap< TQ_INT64 > &map, DBusMessageIter *it) |
| void | qFetchUInt64KeyMapEntry (TQT_DBusDataMap< TQ_UINT64 > &map, DBusMessageIter *it) |
| void | qFetchObjectPathKeyMapEntry (TQT_DBusDataMap< TQT_DBusObjectPath > &map, DBusMessageIter *it) |
| void | qFetchStringKeyMapEntry (TQT_DBusDataMap< TQString > &map, DBusMessageIter *it) |
| static TQT_DBusData | qFetchMap (DBusMessageIter *it, const TQT_DBusData &prototype) |
| static void | tqAppendToMessage (DBusMessageIter *it, const TQString &str) |
| static void | tqAppendToMessage (DBusMessageIter *it, const TQT_DBusObjectPath &path) |
| static void | tqAppendToMessage (DBusMessageIter *it, const TQT_DBusUnixFd &unixFd) |
| static const char * | qDBusTypeForTQT_DBusType (TQT_DBusData::Type type) |
| static void | qDBusDataToIterator (DBusMessageIter *it, const TQT_DBusData &var) |
| static void | qDBusByteKeyMapToIterator (DBusMessageIter *it, const TQT_DBusData &var) |
| static void | qDBusInt16KeyMapToIterator (DBusMessageIter *it, const TQT_DBusData &var) |
| static void | qDBusUInt16KeyMapToIterator (DBusMessageIter *it, const TQT_DBusData &var) |
| static void | qDBusInt32KeyMapToIterator (DBusMessageIter *it, const TQT_DBusData &var) |
| static void | qDBusUInt32KeyMapToIterator (DBusMessageIter *it, const TQT_DBusData &var) |
| static void | qDBusInt64KeyMapToIterator (DBusMessageIter *it, const TQT_DBusData &var) |
| static void | qDBusUInt64KeyMapToIterator (DBusMessageIter *it, const TQT_DBusData &var) |
| static void | qDBusStringKeyMapToIterator (DBusMessageIter *it, const TQT_DBusData &var) |
| static void | qDBusObjectPathKeyMapToIterator (DBusMessageIter *it, const TQT_DBusData &var) |
| static void | qDBusUnixFdKeyMapToIterator (DBusMessageIter *it, const TQT_DBusData &var) |
| void | qListToIterator (DBusMessageIter *it, const TQValueList< TQT_DBusData > &list) |
| static TQValueList<TQT_DBusData> parseSignature | ( | TQCString & | signature | ) | [static] |
Definition at line 75 of file tqdbusmarshall.cpp.
References TQT_DBusData::Bool, TQT_DBusData::Byte, TQT_DBusData::fromBool(), TQT_DBusData::fromByte(), TQT_DBusData::fromByteKeyMap(), TQT_DBusData::fromInt16(), TQT_DBusData::fromInt16KeyMap(), TQT_DBusData::fromInt32(), TQT_DBusData::fromInt32KeyMap(), TQT_DBusData::fromInt64(), TQT_DBusData::fromInt64KeyMap(), TQT_DBusData::fromList(), TQT_DBusData::fromObjectPath(), TQT_DBusData::fromObjectPathKeyMap(), TQT_DBusData::fromString(), TQT_DBusData::fromStringKeyMap(), TQT_DBusData::fromStruct(), TQT_DBusData::fromUInt16(), TQT_DBusData::fromUInt16KeyMap(), TQT_DBusData::fromUInt32(), TQT_DBusData::fromUInt32KeyMap(), TQT_DBusData::fromUInt64(), TQT_DBusData::fromUInt64KeyMap(), TQT_DBusData::fromUnixFd(), TQT_DBusData::fromUnixFdKeyMap(), TQT_DBusData::Int16, TQT_DBusData::Int32, TQT_DBusData::Int64, TQT_DBusData::Invalid, TQT_DBusData::ObjectPath, qSingleTypeForDBusSignature(), TQT_DBusData::String, TQT_DBusData::typeName(), TQT_DBusData::UInt16, TQT_DBusData::UInt32, TQT_DBusData::UInt64, and TQT_DBusData::UnixFd.
00076 { 00077 // tqDebug("parseSignature(%s)", signature.data()); 00078 TQValueList<TQT_DBusData> result; 00079 00080 while (!signature.isEmpty()) 00081 { 00082 switch (signature[0]) 00083 { 00084 case '(': { 00085 signature = signature.mid(1); 00086 TQValueList<TQT_DBusData> memberList = parseSignature(signature); 00087 result << TQT_DBusData::fromStruct(memberList); 00088 Q_ASSERT(!signature.isEmpty() && signature[0] == ')'); 00089 signature = signature.mid(1); 00090 break; 00091 } 00092 case ')': return result; 00093 case '{': { 00094 TQT_DBusData::Type keyType = 00095 qSingleTypeForDBusSignature(signature[1]); 00096 TQT_DBusData::Type valueType = 00097 qSingleTypeForDBusSignature(signature[2]); 00098 if (valueType != TQT_DBusData::Invalid) 00099 { 00100 switch (keyType) 00101 { 00102 case TQT_DBusData::Byte: 00103 result << TQT_DBusData::fromByteKeyMap( 00104 TQT_DBusDataMap<TQ_UINT8>(valueType)); 00105 break; 00106 case TQT_DBusData::Int16: 00107 result << TQT_DBusData::fromInt16KeyMap( 00108 TQT_DBusDataMap<TQ_INT16>(valueType)); 00109 break; 00110 case TQT_DBusData::UInt16: 00111 result << TQT_DBusData::fromUInt16KeyMap( 00112 TQT_DBusDataMap<TQ_UINT16>(valueType)); 00113 break; 00114 case TQT_DBusData::Int32: 00115 result << TQT_DBusData::fromInt32KeyMap( 00116 TQT_DBusDataMap<TQ_INT32>(valueType)); 00117 break; 00118 case TQT_DBusData::UInt32: 00119 result << TQT_DBusData::fromUInt32KeyMap( 00120 TQT_DBusDataMap<TQ_UINT32>(valueType)); 00121 break; 00122 case TQT_DBusData::Int64: 00123 result << TQT_DBusData::fromInt64KeyMap( 00124 TQT_DBusDataMap<TQ_INT64>(valueType)); 00125 break; 00126 case TQT_DBusData::UInt64: 00127 result << TQT_DBusData::fromUInt64KeyMap( 00128 TQT_DBusDataMap<TQ_UINT64>(valueType)); 00129 break; 00130 case TQT_DBusData::String: 00131 result << TQT_DBusData::fromStringKeyMap( 00132 TQT_DBusDataMap<TQString>(valueType)); 00133 break; 00134 case TQT_DBusData::ObjectPath: 00135 result << TQT_DBusData::fromObjectPathKeyMap( 00136 TQT_DBusDataMap<TQT_DBusObjectPath>(valueType)); 00137 break; 00138 case TQT_DBusData::UnixFd: 00139 result << TQT_DBusData::fromUnixFdKeyMap( 00140 TQT_DBusDataMap<TQT_DBusUnixFd>(valueType)); 00141 break; 00142 default: 00143 tqWarning("TQT_DBusMarshall: unsupported map key type %s " 00144 "at de-marshalling", 00145 TQT_DBusData::typeName(keyType)); 00146 break; 00147 } 00148 signature = signature.mid(3); 00149 } 00150 else 00151 { 00152 signature = signature.mid(2); 00153 TQValueList<TQT_DBusData> valueContainer = 00154 parseSignature(signature); 00155 Q_ASSERT(valueContainer.count() == 1); 00156 00157 switch (keyType) 00158 { 00159 case TQT_DBusData::Byte: 00160 result << TQT_DBusData::fromByteKeyMap( 00161 TQT_DBusDataMap<TQ_UINT8>(valueContainer[0])); 00162 break; 00163 case TQT_DBusData::Int16: 00164 result << TQT_DBusData::fromInt16KeyMap( 00165 TQT_DBusDataMap<TQ_INT16>(valueContainer[0])); 00166 break; 00167 case TQT_DBusData::UInt16: 00168 result << TQT_DBusData::fromUInt16KeyMap( 00169 TQT_DBusDataMap<TQ_UINT16>(valueContainer[0])); 00170 break; 00171 case TQT_DBusData::Int32: 00172 result << TQT_DBusData::fromInt32KeyMap( 00173 TQT_DBusDataMap<TQ_INT32>(valueContainer[0])); 00174 break; 00175 case TQT_DBusData::UInt32: 00176 result << TQT_DBusData::fromUInt32KeyMap( 00177 TQT_DBusDataMap<TQ_UINT32>(valueContainer[0])); 00178 break; 00179 case TQT_DBusData::Int64: 00180 result << TQT_DBusData::fromInt64KeyMap( 00181 TQT_DBusDataMap<TQ_INT64>(valueContainer[0])); 00182 break; 00183 case TQT_DBusData::UInt64: 00184 result << TQT_DBusData::fromUInt64KeyMap( 00185 TQT_DBusDataMap<TQ_UINT64>(valueContainer[0])); 00186 break; 00187 case TQT_DBusData::String: 00188 result << TQT_DBusData::fromStringKeyMap( 00189 TQT_DBusDataMap<TQString>(valueContainer[0])); 00190 break; 00191 case TQT_DBusData::ObjectPath: 00192 result << TQT_DBusData::fromObjectPathKeyMap( 00193 TQT_DBusDataMap<TQT_DBusObjectPath>(valueContainer[0])); 00194 break; 00195 case TQT_DBusData::UnixFd: 00196 result << TQT_DBusData::fromUnixFdKeyMap( 00197 TQT_DBusDataMap<TQT_DBusUnixFd>(valueContainer[0])); 00198 break; 00199 default: 00200 tqWarning("TQT_DBusMarshall: unsupported map key type %s " 00201 "at de-marshalling", 00202 TQT_DBusData::typeName(keyType)); 00203 break; 00204 } 00205 } 00206 Q_ASSERT(!signature.isEmpty() && signature[0] == '}'); 00207 signature = signature.mid(1); 00208 break; 00209 } 00210 case '}': return result; 00211 case 'a': { 00212 TQT_DBusData::Type elementType = 00213 qSingleTypeForDBusSignature(signature[1]); 00214 if (elementType != TQT_DBusData::Invalid) 00215 { 00216 TQT_DBusDataList list(elementType); 00217 result << TQT_DBusData::fromList(list); 00218 signature = signature.mid(2); 00219 } 00220 else 00221 { 00222 signature = signature.mid(1); 00223 bool array = signature[0] != '{'; 00224 00225 TQValueList<TQT_DBusData> elementContainer = 00226 parseSignature(signature); 00227 Q_ASSERT(elementContainer.count() == 1); 00228 00229 if (array) 00230 { 00231 TQT_DBusDataList list(elementContainer[0]); 00232 result << TQT_DBusData::fromList(list); 00233 } 00234 else 00235 result << elementContainer[0]; 00236 } 00237 break; 00238 } 00239 default: 00240 TQT_DBusData::Type elementType = 00241 qSingleTypeForDBusSignature(signature[0]); 00242 if (elementType != TQT_DBusData::Invalid) 00243 { 00244 switch (elementType) 00245 { 00246 case TQT_DBusData::Bool: 00247 result << TQT_DBusData::fromBool( 00248 (0)); 00249 break; 00250 case TQT_DBusData::Byte: 00251 result << TQT_DBusData::fromByte( 00252 (0)); 00253 break; 00254 case TQT_DBusData::Int16: 00255 result << TQT_DBusData::fromInt16( 00256 (0)); 00257 break; 00258 case TQT_DBusData::UInt16: 00259 result << TQT_DBusData::fromUInt16( 00260 (0)); 00261 break; 00262 case TQT_DBusData::Int32: 00263 result << TQT_DBusData::fromInt32( 00264 (0)); 00265 break; 00266 case TQT_DBusData::UInt32: 00267 result << TQT_DBusData::fromUInt32( 00268 (0)); 00269 break; 00270 case TQT_DBusData::Int64: 00271 result << TQT_DBusData::fromInt64( 00272 (0)); 00273 break; 00274 case TQT_DBusData::UInt64: 00275 result << TQT_DBusData::fromUInt64( 00276 (0)); 00277 break; 00278 case TQT_DBusData::String: 00279 result << TQT_DBusData::fromString( 00280 (TQString())); 00281 break; 00282 case TQT_DBusData::ObjectPath: 00283 result << TQT_DBusData::fromObjectPath( 00284 (TQT_DBusObjectPath())); 00285 break; 00286 case TQT_DBusData::UnixFd: 00287 result << TQT_DBusData::fromUnixFd( 00288 (TQT_DBusUnixFd())); 00289 break; 00290 default: 00291 result << TQT_DBusData(); 00292 tqWarning("TQT_DBusMarshall: unsupported element type %s " 00293 "at de-marshalling", 00294 TQT_DBusData::typeName(elementType)); 00295 break; 00296 } 00297 signature = signature.mid(1); 00298 } 00299 else { 00300 result << TQT_DBusData(); 00301 signature = signature.mid(1); 00302 } 00303 break; 00304 } 00305 } 00306 00307 return result; 00308 }
| static void qDBusByteKeyMapToIterator | ( | DBusMessageIter * | it, | |
| const TQT_DBusData & | var | |||
| ) | [static] |
Definition at line 725 of file tqdbusmarshall.cpp.
References TQT_DBusDataMap< T >::begin(), TQT_DBusData::buildDBusSignature(), TQT_DBusDataMap< T >::containerValueType(), TQT_DBusDataMap< T >::end(), TQT_DBusDataMap< T >::hasContainerValueType(), TQT_DBusDataMap< T >::keyType(), qDBusDataToIterator(), qDBusTypeForTQT_DBusType(), TQT_DBusData::toByteKeyMap(), and TQT_DBusDataMap< T >::valueType().
00726 { 00727 DBusMessageIter sub; 00728 TQCString sig; 00729 00730 TQT_DBusDataMap<TQ_UINT8> map = var.toByteKeyMap(); 00731 00732 sig += DBUS_DICT_ENTRY_BEGIN_CHAR; 00733 sig += qDBusTypeForTQT_DBusType(map.keyType()); 00734 00735 if (map.hasContainerValueType()) 00736 sig += map.containerValueType().buildDBusSignature(); 00737 else 00738 sig += qDBusTypeForTQT_DBusType(map.valueType()); 00739 sig += DBUS_DICT_ENTRY_END_CHAR; 00740 00741 dbus_message_iter_open_container(it, DBUS_TYPE_ARRAY, sig.data(), &sub); 00742 00743 TQT_DBusDataMap<TQ_UINT8>::const_iterator mit = map.begin(); 00744 for (; mit != map.end(); ++mit) 00745 { 00746 DBusMessageIter itemIterator; 00747 dbus_message_iter_open_container(&sub, DBUS_TYPE_DICT_ENTRY, 00748 0, &itemIterator); 00749 00750 dbus_message_iter_append_basic(it, DBUS_TYPE_BYTE, &(mit.key())); 00751 qDBusDataToIterator(&itemIterator, mit.data()); 00752 00753 dbus_message_iter_close_container(&sub, &itemIterator); 00754 } 00755 00756 dbus_message_iter_close_container(it, &sub); 00757 }
| static void qDBusDataToIterator | ( | DBusMessageIter * | it, | |
| const TQT_DBusData & | var | |||
| ) | [static] |
Definition at line 1066 of file tqdbusmarshall.cpp.
References TQT_DBusData::Bool, TQT_DBusData::buildDBusSignature(), TQT_DBusData::Byte, TQT_DBusDataList::containerItemType(), TQT_DBusData::Double, TQT_DBusDataList::hasContainerItemType(), TQT_DBusData::Int16, TQT_DBusData::Int32, TQT_DBusData::Int64, TQT_DBusData::isValid(), TQT_DBusData::keyType(), TQT_DBusData::List, TQT_DBusData::Map, TQT_DBusData::ObjectPath, qDBusByteKeyMapToIterator(), qDBusInt16KeyMapToIterator(), qDBusInt32KeyMapToIterator(), qDBusInt64KeyMapToIterator(), qDBusObjectPathKeyMapToIterator(), qDBusStringKeyMapToIterator(), qDBusTypeForTQT_DBusType(), qDBusUInt16KeyMapToIterator(), qDBusUInt32KeyMapToIterator(), qDBusUInt64KeyMapToIterator(), qDBusUnixFdKeyMapToIterator(), TQT_DBusVariant::signature, TQT_DBusData::String, TQT_DBusData::Struct, TQT_DBusData::toBool(), TQT_DBusData::toByte(), TQT_DBusData::toDouble(), TQT_DBusData::toInt16(), TQT_DBusData::toInt32(), TQT_DBusData::toInt64(), TQT_DBusData::toList(), TQT_DBusData::toObjectPath(), TQT_DBusData::toString(), TQT_DBusData::toStruct(), TQT_DBusData::toTQValueList(), TQT_DBusData::toUInt16(), TQT_DBusData::toUInt32(), TQT_DBusData::toUInt64(), TQT_DBusData::toUnixFd(), TQT_DBusData::toVariant(), tqAppendToMessage(), TQT_DBusDataList::type(), TQT_DBusData::type(), TQT_DBusData::typeName(), TQT_DBusData::UInt16, TQT_DBusData::UInt32, TQT_DBusData::UInt64, TQT_DBusData::UnixFd, TQT_DBusVariant::value, and TQT_DBusData::Variant.
01067 { 01068 switch (var.type()) 01069 { 01070 case TQT_DBusData::Bool: 01071 { 01072 dbus_bool_t value = var.toBool(); 01073 dbus_message_iter_append_basic(it, DBUS_TYPE_BOOLEAN, &value); 01074 break; 01075 } 01076 case TQT_DBusData::Byte: 01077 { 01078 TQ_UINT8 value = var.toByte(); 01079 dbus_message_iter_append_basic(it, DBUS_TYPE_BYTE, &value); 01080 break; 01081 } 01082 case TQT_DBusData::Int16: { 01083 TQ_INT16 value = var.toInt16(); 01084 dbus_message_iter_append_basic(it, DBUS_TYPE_INT16, &value); 01085 break; 01086 } 01087 case TQT_DBusData::UInt16: { 01088 TQ_UINT16 value = var.toUInt16(); 01089 dbus_message_iter_append_basic(it, DBUS_TYPE_UINT16, &value); 01090 break; 01091 } 01092 case TQT_DBusData::Int32: { 01093 TQ_INT32 value = var.toInt32(); 01094 dbus_message_iter_append_basic(it, DBUS_TYPE_INT32, &value); 01095 break; 01096 } 01097 case TQT_DBusData::UInt32: { 01098 TQ_UINT32 value = var.toUInt32(); 01099 dbus_message_iter_append_basic(it, DBUS_TYPE_UINT32, &value); 01100 break; 01101 } 01102 case TQT_DBusData::Int64: { 01103 TQ_INT64 value = var.toInt64(); 01104 dbus_message_iter_append_basic(it, DBUS_TYPE_INT64, &value); 01105 break; 01106 } 01107 case TQT_DBusData::UInt64: { 01108 TQ_UINT64 value = var.toUInt64(); 01109 dbus_message_iter_append_basic(it, DBUS_TYPE_UINT64, &value); 01110 break; 01111 } 01112 case TQT_DBusData::Double: { 01113 double value = var.toDouble(); 01114 dbus_message_iter_append_basic(it, DBUS_TYPE_DOUBLE, &value); 01115 break; 01116 } 01117 case TQT_DBusData::String: 01118 tqAppendToMessage(it, var.toString()); 01119 break; 01120 case TQT_DBusData::ObjectPath: 01121 tqAppendToMessage(it, var.toObjectPath()); 01122 break; 01123 case TQT_DBusData::UnixFd: { 01124 tqAppendToMessage(it, var.toUnixFd()); 01125 break; 01126 } 01127 case TQT_DBusData::List: { 01128 TQT_DBusDataList list = var.toList(); 01129 01130 TQCString signature = 0; 01131 if (list.hasContainerItemType()) 01132 signature = list.containerItemType().buildDBusSignature(); 01133 else 01134 signature = qDBusTypeForTQT_DBusType(list.type()); 01135 01136 DBusMessageIter sub; 01137 dbus_message_iter_open_container(it, DBUS_TYPE_ARRAY, 01138 signature.data(), &sub); 01139 01140 const TQValueList<TQT_DBusData> valueList = var.toTQValueList(); 01141 TQValueList<TQT_DBusData>::const_iterator listIt = valueList.begin(); 01142 TQValueList<TQT_DBusData>::const_iterator listEndIt = valueList.end(); 01143 for (; listIt != listEndIt; ++listIt) 01144 { 01145 qDBusDataToIterator(&sub, *listIt); 01146 } 01147 dbus_message_iter_close_container(it, &sub); 01148 break; 01149 } 01150 case TQT_DBusData::Map: { 01151 switch (var.keyType()) { 01152 case TQT_DBusData::Byte: 01153 qDBusByteKeyMapToIterator(it, var); 01154 break; 01155 case TQT_DBusData::Int16: 01156 qDBusInt16KeyMapToIterator(it, var); 01157 break; 01158 case TQT_DBusData::UInt16: 01159 qDBusUInt16KeyMapToIterator(it, var); 01160 break; 01161 case TQT_DBusData::Int32: 01162 qDBusInt32KeyMapToIterator(it, var); 01163 break; 01164 case TQT_DBusData::UInt32: 01165 qDBusUInt32KeyMapToIterator(it, var); 01166 break; 01167 case TQT_DBusData::Int64: 01168 qDBusInt64KeyMapToIterator(it, var); 01169 break; 01170 case TQT_DBusData::UInt64: 01171 qDBusUInt64KeyMapToIterator(it, var); 01172 break; 01173 case TQT_DBusData::String: 01174 qDBusStringKeyMapToIterator(it, var); 01175 break; 01176 case TQT_DBusData::ObjectPath: 01177 qDBusObjectPathKeyMapToIterator(it, var); 01178 break; 01179 case TQT_DBusData::UnixFd: 01180 qDBusUnixFdKeyMapToIterator(it, var); 01181 break; 01182 default: 01183 tqWarning("TQT_DBusMarshall: unhandled map key type %s " 01184 "at marshalling", 01185 TQT_DBusData::typeName(var.keyType())); 01186 break; 01187 } 01188 break; 01189 } 01190 case TQT_DBusData::Variant: { 01191 TQT_DBusVariant variant = var.toVariant(); 01192 if (variant.signature.isEmpty() || !variant.value.isValid()) break; 01193 01194 DBusMessageIter sub; 01195 dbus_message_iter_open_container(it, DBUS_TYPE_VARIANT, 01196 variant.signature.utf8(), &sub); 01197 01198 qDBusDataToIterator(&sub, variant.value); 01199 01200 dbus_message_iter_close_container(it, &sub); 01201 break; 01202 } 01203 case TQT_DBusData::Struct: { 01204 TQValueList<TQT_DBusData> memberList = var.toStruct(); 01205 if (memberList.isEmpty()) break; 01206 01207 DBusMessageIter sub; 01208 dbus_message_iter_open_container(it, DBUS_TYPE_STRUCT, NULL, &sub); 01209 01210 TQValueList<TQT_DBusData>::const_iterator memberIt = memberList.begin(); 01211 TQValueList<TQT_DBusData>::const_iterator memberEndIt = memberList.end(); 01212 for (; memberIt != memberEndIt; ++memberIt) 01213 { 01214 qDBusDataToIterator(&sub, *memberIt); 01215 } 01216 01217 dbus_message_iter_close_container(it, &sub); 01218 } 01219 #if 0 01220 case TQVariant::ByteArray: { 01221 const TQByteArray array = var.toByteArray(); 01222 const char* cdata = array.data(); 01223 DBusMessageIter sub; 01224 dbus_message_iter_open_container(it, DBUS_TYPE_ARRAY, DBUS_TYPE_BYTE_AS_STRING, &sub); 01225 dbus_message_iter_append_fixed_array(&sub, DBUS_TYPE_BYTE, &cdata, array.size()); 01226 dbus_message_iter_close_container(it, &sub); 01227 break; 01228 } 01229 #endif 01230 default: 01231 //tqWarning("Don't know how to handle type %s", var.typeName()); 01232 break; 01233 } 01234 }
| static void qDBusInt16KeyMapToIterator | ( | DBusMessageIter * | it, | |
| const TQT_DBusData & | var | |||
| ) | [static] |
Definition at line 759 of file tqdbusmarshall.cpp.
References TQT_DBusDataMap< T >::begin(), TQT_DBusData::buildDBusSignature(), TQT_DBusDataMap< T >::containerValueType(), TQT_DBusDataMap< T >::end(), TQT_DBusDataMap< T >::hasContainerValueType(), TQT_DBusDataMap< T >::keyType(), qDBusDataToIterator(), qDBusTypeForTQT_DBusType(), TQT_DBusData::toInt16KeyMap(), and TQT_DBusDataMap< T >::valueType().
00760 { 00761 DBusMessageIter sub; 00762 TQCString sig; 00763 00764 TQT_DBusDataMap<TQ_INT16> map = var.toInt16KeyMap(); 00765 00766 sig += DBUS_DICT_ENTRY_BEGIN_CHAR; 00767 sig += qDBusTypeForTQT_DBusType(map.keyType()); 00768 00769 if (map.hasContainerValueType()) 00770 sig += map.containerValueType().buildDBusSignature(); 00771 else 00772 sig += qDBusTypeForTQT_DBusType(map.valueType()); 00773 sig += DBUS_DICT_ENTRY_END_CHAR; 00774 00775 dbus_message_iter_open_container(it, DBUS_TYPE_ARRAY, sig.data(), &sub); 00776 00777 TQT_DBusDataMap<TQ_INT16>::const_iterator mit = map.begin(); 00778 for (; mit != map.end(); ++mit) 00779 { 00780 DBusMessageIter itemIterator; 00781 dbus_message_iter_open_container(&sub, DBUS_TYPE_DICT_ENTRY, 00782 0, &itemIterator); 00783 00784 dbus_message_iter_append_basic(it, DBUS_TYPE_INT16, &(mit.key())); 00785 qDBusDataToIterator(&itemIterator, mit.data()); 00786 00787 dbus_message_iter_close_container(&sub, &itemIterator); 00788 } 00789 00790 dbus_message_iter_close_container(it, &sub); 00791 }
| static void qDBusInt32KeyMapToIterator | ( | DBusMessageIter * | it, | |
| const TQT_DBusData & | var | |||
| ) | [static] |
Definition at line 827 of file tqdbusmarshall.cpp.
References TQT_DBusDataMap< T >::begin(), TQT_DBusData::buildDBusSignature(), TQT_DBusDataMap< T >::containerValueType(), TQT_DBusDataMap< T >::end(), TQT_DBusDataMap< T >::hasContainerValueType(), TQT_DBusDataMap< T >::keyType(), qDBusDataToIterator(), qDBusTypeForTQT_DBusType(), TQT_DBusData::toInt32KeyMap(), and TQT_DBusDataMap< T >::valueType().
00828 { 00829 DBusMessageIter sub; 00830 TQCString sig; 00831 00832 TQT_DBusDataMap<TQ_INT32> map = var.toInt32KeyMap(); 00833 00834 sig += DBUS_DICT_ENTRY_BEGIN_CHAR; 00835 sig += qDBusTypeForTQT_DBusType(map.keyType()); 00836 00837 if (map.hasContainerValueType()) 00838 sig += map.containerValueType().buildDBusSignature(); 00839 else 00840 sig += qDBusTypeForTQT_DBusType(map.valueType()); 00841 sig += DBUS_DICT_ENTRY_END_CHAR; 00842 00843 dbus_message_iter_open_container(it, DBUS_TYPE_ARRAY, sig.data(), &sub); 00844 00845 TQT_DBusDataMap<TQ_INT32>::const_iterator mit = map.begin(); 00846 for (; mit != map.end(); ++mit) 00847 { 00848 DBusMessageIter itemIterator; 00849 dbus_message_iter_open_container(&sub, DBUS_TYPE_DICT_ENTRY, 00850 0, &itemIterator); 00851 00852 dbus_message_iter_append_basic(it, DBUS_TYPE_INT32, &(mit.key())); 00853 qDBusDataToIterator(&itemIterator, mit.data()); 00854 00855 dbus_message_iter_close_container(&sub, &itemIterator); 00856 } 00857 00858 dbus_message_iter_close_container(it, &sub); 00859 }
| static void qDBusInt64KeyMapToIterator | ( | DBusMessageIter * | it, | |
| const TQT_DBusData & | var | |||
| ) | [static] |
Definition at line 895 of file tqdbusmarshall.cpp.
References TQT_DBusDataMap< T >::begin(), TQT_DBusData::buildDBusSignature(), TQT_DBusDataMap< T >::containerValueType(), TQT_DBusDataMap< T >::end(), TQT_DBusDataMap< T >::hasContainerValueType(), TQT_DBusDataMap< T >::keyType(), qDBusDataToIterator(), qDBusTypeForTQT_DBusType(), TQT_DBusData::toInt64KeyMap(), and TQT_DBusDataMap< T >::valueType().
00896 { 00897 DBusMessageIter sub; 00898 TQCString sig; 00899 00900 TQT_DBusDataMap<TQ_INT64> map = var.toInt64KeyMap(); 00901 00902 sig += DBUS_DICT_ENTRY_BEGIN_CHAR; 00903 sig += qDBusTypeForTQT_DBusType(map.keyType()); 00904 00905 if (map.hasContainerValueType()) 00906 sig += map.containerValueType().buildDBusSignature(); 00907 else 00908 sig += qDBusTypeForTQT_DBusType(map.valueType()); 00909 sig += DBUS_DICT_ENTRY_END_CHAR; 00910 00911 dbus_message_iter_open_container(it, DBUS_TYPE_ARRAY, sig.data(), &sub); 00912 00913 TQT_DBusDataMap<TQ_INT64>::const_iterator mit = map.begin(); 00914 for (; mit != map.end(); ++mit) 00915 { 00916 DBusMessageIter itemIterator; 00917 dbus_message_iter_open_container(&sub, DBUS_TYPE_DICT_ENTRY, 00918 0, &itemIterator); 00919 00920 dbus_message_iter_append_basic(it, DBUS_TYPE_INT64, &(mit.key())); 00921 qDBusDataToIterator(&itemIterator, mit.data()); 00922 00923 dbus_message_iter_close_container(&sub, &itemIterator); 00924 } 00925 00926 dbus_message_iter_close_container(it, &sub); 00927 }
| static void qDBusObjectPathKeyMapToIterator | ( | DBusMessageIter * | it, | |
| const TQT_DBusData & | var | |||
| ) | [static] |
Definition at line 997 of file tqdbusmarshall.cpp.
References TQT_DBusDataMap< T >::begin(), TQT_DBusData::buildDBusSignature(), TQT_DBusDataMap< T >::containerValueType(), TQT_DBusDataMap< T >::end(), TQT_DBusDataMap< T >::hasContainerValueType(), TQT_DBusDataMap< T >::keyType(), qDBusDataToIterator(), qDBusTypeForTQT_DBusType(), TQT_DBusData::toObjectPathKeyMap(), tqAppendToMessage(), and TQT_DBusDataMap< T >::valueType().
00999 { 01000 DBusMessageIter sub; 01001 TQCString sig; 01002 01003 TQT_DBusDataMap<TQT_DBusObjectPath> map = var.toObjectPathKeyMap(); 01004 01005 sig += DBUS_DICT_ENTRY_BEGIN_CHAR; 01006 sig += qDBusTypeForTQT_DBusType(map.keyType()); 01007 01008 if (map.hasContainerValueType()) 01009 sig += map.containerValueType().buildDBusSignature(); 01010 else 01011 sig += qDBusTypeForTQT_DBusType(map.valueType()); 01012 sig += DBUS_DICT_ENTRY_END_CHAR; 01013 01014 dbus_message_iter_open_container(it, DBUS_TYPE_ARRAY, sig.data(), &sub); 01015 01016 TQT_DBusDataMap<TQT_DBusObjectPath>::const_iterator mit = map.begin(); 01017 for (; mit != map.end(); ++mit) 01018 { 01019 DBusMessageIter itemIterator; 01020 dbus_message_iter_open_container(&sub, DBUS_TYPE_DICT_ENTRY, 01021 0, &itemIterator); 01022 01023 tqAppendToMessage(&itemIterator, mit.key()); 01024 qDBusDataToIterator(&itemIterator, mit.data()); 01025 01026 dbus_message_iter_close_container(&sub, &itemIterator); 01027 } 01028 01029 dbus_message_iter_close_container(it, &sub); 01030 }
| static void qDBusStringKeyMapToIterator | ( | DBusMessageIter * | it, | |
| const TQT_DBusData & | var | |||
| ) | [static] |
Definition at line 963 of file tqdbusmarshall.cpp.
References TQT_DBusDataMap< T >::begin(), TQT_DBusData::buildDBusSignature(), TQT_DBusDataMap< T >::containerValueType(), TQT_DBusDataMap< T >::end(), TQT_DBusDataMap< T >::hasContainerValueType(), TQT_DBusDataMap< T >::keyType(), qDBusDataToIterator(), qDBusTypeForTQT_DBusType(), TQT_DBusData::toStringKeyMap(), tqAppendToMessage(), and TQT_DBusDataMap< T >::valueType().
00964 { 00965 DBusMessageIter sub; 00966 TQCString sig; 00967 00968 TQT_DBusDataMap<TQString> map = var.toStringKeyMap(); 00969 00970 sig += DBUS_DICT_ENTRY_BEGIN_CHAR; 00971 sig += qDBusTypeForTQT_DBusType(map.keyType()); 00972 00973 if (map.hasContainerValueType()) 00974 sig += map.containerValueType().buildDBusSignature(); 00975 else 00976 sig += qDBusTypeForTQT_DBusType(map.valueType()); 00977 sig += DBUS_DICT_ENTRY_END_CHAR; 00978 00979 dbus_message_iter_open_container(it, DBUS_TYPE_ARRAY, sig.data(), &sub); 00980 00981 TQT_DBusDataMap<TQString>::const_iterator mit = map.begin(); 00982 for (; mit != map.end(); ++mit) 00983 { 00984 DBusMessageIter itemIterator; 00985 dbus_message_iter_open_container(&sub, DBUS_TYPE_DICT_ENTRY, 00986 0, &itemIterator); 00987 00988 tqAppendToMessage(&itemIterator, mit.key()); 00989 qDBusDataToIterator(&itemIterator, mit.data()); 00990 00991 dbus_message_iter_close_container(&sub, &itemIterator); 00992 } 00993 00994 dbus_message_iter_close_container(it, &sub); 00995 }
| static const char* qDBusTypeForTQT_DBusType | ( | TQT_DBusData::Type | type | ) | [static] |
Definition at line 665 of file tqdbusmarshall.cpp.
References TQT_DBusData::Bool, TQT_DBusData::Byte, DBUS_TYPE_UNIX_FD_AS_STRING, TQT_DBusData::Double, TQT_DBusData::Int16, TQT_DBusData::Int32, TQT_DBusData::Int64, TQT_DBusData::Invalid, TQT_DBusData::List, TQT_DBusData::Map, TQT_DBusData::ObjectPath, TQT_DBusData::String, TQT_DBusData::Struct, TQT_DBusData::UInt16, TQT_DBusData::UInt32, TQT_DBusData::UInt64, TQT_DBusData::UnixFd, and TQT_DBusData::Variant.
00666 { 00667 switch (type) 00668 { 00669 case TQT_DBusData::Invalid: 00670 return 0; 00671 00672 case TQT_DBusData::Bool: 00673 return DBUS_TYPE_BOOLEAN_AS_STRING; 00674 00675 case TQT_DBusData::Byte: 00676 return DBUS_TYPE_BYTE_AS_STRING; 00677 00678 case TQT_DBusData::Int16: 00679 return DBUS_TYPE_INT16_AS_STRING; 00680 00681 case TQT_DBusData::UInt16: 00682 return DBUS_TYPE_UINT16_AS_STRING; 00683 00684 case TQT_DBusData::Int32: 00685 return DBUS_TYPE_INT32_AS_STRING; 00686 00687 case TQT_DBusData::UInt32: 00688 return DBUS_TYPE_UINT32_AS_STRING; 00689 00690 case TQT_DBusData::Int64: 00691 return DBUS_TYPE_INT64_AS_STRING; 00692 00693 case TQT_DBusData::UInt64: 00694 return DBUS_TYPE_UINT64_AS_STRING; 00695 00696 case TQT_DBusData::Double: 00697 return DBUS_TYPE_DOUBLE_AS_STRING; 00698 00699 case TQT_DBusData::String: 00700 return DBUS_TYPE_STRING_AS_STRING; 00701 00702 case TQT_DBusData::ObjectPath: 00703 return DBUS_TYPE_OBJECT_PATH_AS_STRING; 00704 00705 case TQT_DBusData::List: 00706 return DBUS_TYPE_ARRAY_AS_STRING; 00707 00708 case TQT_DBusData::Struct: 00709 return DBUS_TYPE_STRUCT_AS_STRING; 00710 00711 case TQT_DBusData::Variant: 00712 return DBUS_TYPE_VARIANT_AS_STRING; 00713 00714 case TQT_DBusData::Map: 00715 return DBUS_TYPE_DICT_ENTRY_AS_STRING; 00716 00717 case TQT_DBusData::UnixFd: 00718 return DBUS_TYPE_UNIX_FD_AS_STRING; 00719 } 00720 return 0; 00721 }
| static void qDBusUInt16KeyMapToIterator | ( | DBusMessageIter * | it, | |
| const TQT_DBusData & | var | |||
| ) | [static] |
Definition at line 793 of file tqdbusmarshall.cpp.
References TQT_DBusDataMap< T >::begin(), TQT_DBusData::buildDBusSignature(), TQT_DBusDataMap< T >::containerValueType(), TQT_DBusDataMap< T >::end(), TQT_DBusDataMap< T >::hasContainerValueType(), TQT_DBusDataMap< T >::keyType(), qDBusDataToIterator(), qDBusTypeForTQT_DBusType(), TQT_DBusData::toUInt16KeyMap(), and TQT_DBusDataMap< T >::valueType().
00794 { 00795 DBusMessageIter sub; 00796 TQCString sig; 00797 00798 TQT_DBusDataMap<TQ_UINT16> map = var.toUInt16KeyMap(); 00799 00800 sig += DBUS_DICT_ENTRY_BEGIN_CHAR; 00801 sig += qDBusTypeForTQT_DBusType(map.keyType()); 00802 00803 if (map.hasContainerValueType()) 00804 sig += map.containerValueType().buildDBusSignature(); 00805 else 00806 sig += qDBusTypeForTQT_DBusType(map.valueType()); 00807 sig += DBUS_DICT_ENTRY_END_CHAR; 00808 00809 dbus_message_iter_open_container(it, DBUS_TYPE_ARRAY, sig.data(), &sub); 00810 00811 TQT_DBusDataMap<TQ_UINT16>::const_iterator mit = map.begin(); 00812 for (; mit != map.end(); ++mit) 00813 { 00814 DBusMessageIter itemIterator; 00815 dbus_message_iter_open_container(&sub, DBUS_TYPE_DICT_ENTRY, 00816 0, &itemIterator); 00817 00818 dbus_message_iter_append_basic(it, DBUS_TYPE_UINT16, &(mit.key())); 00819 qDBusDataToIterator(&itemIterator, mit.data()); 00820 00821 dbus_message_iter_close_container(&sub, &itemIterator); 00822 } 00823 00824 dbus_message_iter_close_container(it, &sub); 00825 }
| static void qDBusUInt32KeyMapToIterator | ( | DBusMessageIter * | it, | |
| const TQT_DBusData & | var | |||
| ) | [static] |
Definition at line 861 of file tqdbusmarshall.cpp.
References TQT_DBusDataMap< T >::begin(), TQT_DBusData::buildDBusSignature(), TQT_DBusDataMap< T >::containerValueType(), TQT_DBusDataMap< T >::end(), TQT_DBusDataMap< T >::hasContainerValueType(), TQT_DBusDataMap< T >::keyType(), qDBusDataToIterator(), qDBusTypeForTQT_DBusType(), TQT_DBusData::toUInt32KeyMap(), and TQT_DBusDataMap< T >::valueType().
00862 { 00863 DBusMessageIter sub; 00864 TQCString sig; 00865 00866 TQT_DBusDataMap<TQ_UINT32> map = var.toUInt32KeyMap(); 00867 00868 sig += DBUS_DICT_ENTRY_BEGIN_CHAR; 00869 sig += qDBusTypeForTQT_DBusType(map.keyType()); 00870 00871 if (map.hasContainerValueType()) 00872 sig += map.containerValueType().buildDBusSignature(); 00873 else 00874 sig += qDBusTypeForTQT_DBusType(map.valueType()); 00875 sig += DBUS_DICT_ENTRY_END_CHAR; 00876 00877 dbus_message_iter_open_container(it, DBUS_TYPE_ARRAY, sig.data(), &sub); 00878 00879 TQT_DBusDataMap<TQ_UINT32>::const_iterator mit = map.begin(); 00880 for (; mit != map.end(); ++mit) 00881 { 00882 DBusMessageIter itemIterator; 00883 dbus_message_iter_open_container(&sub, DBUS_TYPE_DICT_ENTRY, 00884 0, &itemIterator); 00885 00886 dbus_message_iter_append_basic(it, DBUS_TYPE_UINT32, &(mit.key())); 00887 qDBusDataToIterator(&itemIterator, mit.data()); 00888 00889 dbus_message_iter_close_container(&sub, &itemIterator); 00890 } 00891 00892 dbus_message_iter_close_container(it, &sub); 00893 }
| static void qDBusUInt64KeyMapToIterator | ( | DBusMessageIter * | it, | |
| const TQT_DBusData & | var | |||
| ) | [static] |
Definition at line 929 of file tqdbusmarshall.cpp.
References TQT_DBusDataMap< T >::begin(), TQT_DBusData::buildDBusSignature(), TQT_DBusDataMap< T >::containerValueType(), TQT_DBusDataMap< T >::end(), TQT_DBusDataMap< T >::hasContainerValueType(), TQT_DBusDataMap< T >::keyType(), qDBusDataToIterator(), qDBusTypeForTQT_DBusType(), TQT_DBusData::toUInt64KeyMap(), and TQT_DBusDataMap< T >::valueType().
00930 { 00931 DBusMessageIter sub; 00932 TQCString sig; 00933 00934 TQT_DBusDataMap<TQ_UINT64> map = var.toUInt64KeyMap(); 00935 00936 sig += DBUS_DICT_ENTRY_BEGIN_CHAR; 00937 sig += qDBusTypeForTQT_DBusType(map.keyType()); 00938 00939 if (map.hasContainerValueType()) 00940 sig += map.containerValueType().buildDBusSignature(); 00941 else 00942 sig += qDBusTypeForTQT_DBusType(map.valueType()); 00943 sig += DBUS_DICT_ENTRY_END_CHAR; 00944 00945 dbus_message_iter_open_container(it, DBUS_TYPE_ARRAY, sig.data(), &sub); 00946 00947 TQT_DBusDataMap<TQ_UINT64>::const_iterator mit = map.begin(); 00948 for (; mit != map.end(); ++mit) 00949 { 00950 DBusMessageIter itemIterator; 00951 dbus_message_iter_open_container(&sub, DBUS_TYPE_DICT_ENTRY, 00952 0, &itemIterator); 00953 00954 dbus_message_iter_append_basic(it, DBUS_TYPE_UINT64, &(mit.key())); 00955 qDBusDataToIterator(&itemIterator, mit.data()); 00956 00957 dbus_message_iter_close_container(&sub, &itemIterator); 00958 } 00959 00960 dbus_message_iter_close_container(it, &sub); 00961 }
| static void qDBusUnixFdKeyMapToIterator | ( | DBusMessageIter * | it, | |
| const TQT_DBusData & | var | |||
| ) | [static] |
Definition at line 1032 of file tqdbusmarshall.cpp.
References TQT_DBusDataMap< T >::begin(), TQT_DBusData::buildDBusSignature(), TQT_DBusDataMap< T >::containerValueType(), TQT_DBusDataMap< T >::end(), TQT_DBusDataMap< T >::hasContainerValueType(), TQT_DBusDataMap< T >::keyType(), qDBusDataToIterator(), qDBusTypeForTQT_DBusType(), TQT_DBusData::toUnixFdKeyMap(), and TQT_DBusDataMap< T >::valueType().
01033 { 01034 DBusMessageIter sub; 01035 TQCString sig; 01036 01037 TQT_DBusDataMap<TQT_DBusUnixFd> map = var.toUnixFdKeyMap(); 01038 01039 sig += DBUS_DICT_ENTRY_BEGIN_CHAR; 01040 sig += qDBusTypeForTQT_DBusType(map.keyType()); 01041 01042 if (map.hasContainerValueType()) 01043 sig += map.containerValueType().buildDBusSignature(); 01044 else 01045 sig += qDBusTypeForTQT_DBusType(map.valueType()); 01046 sig += DBUS_DICT_ENTRY_END_CHAR; 01047 01048 dbus_message_iter_open_container(it, DBUS_TYPE_ARRAY, sig.data(), &sub); 01049 01050 TQT_DBusDataMap<TQT_DBusUnixFd>::const_iterator mit = map.begin(); 01051 for (; mit != map.end(); ++mit) 01052 { 01053 DBusMessageIter itemIterator; 01054 dbus_message_iter_open_container(&sub, DBUS_TYPE_DICT_ENTRY, 01055 0, &itemIterator); 01056 01057 dbus_message_iter_append_basic(it, DBUS_TYPE_UNIX_FD, &(mit.key())); 01058 qDBusDataToIterator(&itemIterator, mit.data()); 01059 01060 dbus_message_iter_close_container(&sub, &itemIterator); 01061 } 01062 01063 dbus_message_iter_close_container(it, &sub); 01064 }
| void qFetchByteKeyMapEntry | ( | TQT_DBusDataMap< TQ_UINT8 > & | map, | |
| DBusMessageIter * | it | |||
| ) |
Definition at line 312 of file tqdbusmarshall.cpp.
References TQT_DBusDataMap< T >::insert(), qFetchParameter(), and TQT_DBusData::toByte().
00313 { 00314 DBusMessageIter itemIter; 00315 dbus_message_iter_recurse(it, &itemIter); 00316 Q_ASSERT(dbus_message_iter_has_next(&itemIter)); 00317 00318 TQ_UINT8 key = qFetchParameter(&itemIter).toByte(); 00319 00320 dbus_message_iter_next(&itemIter); 00321 00322 map.insert(key, qFetchParameter(&itemIter)); 00323 }
| void qFetchInt16KeyMapEntry | ( | TQT_DBusDataMap< TQ_INT16 > & | map, | |
| DBusMessageIter * | it | |||
| ) |
Definition at line 325 of file tqdbusmarshall.cpp.
References TQT_DBusDataMap< T >::insert(), qFetchParameter(), and TQT_DBusData::toInt16().
00326 { 00327 DBusMessageIter itemIter; 00328 dbus_message_iter_recurse(it, &itemIter); 00329 Q_ASSERT(dbus_message_iter_has_next(&itemIter)); 00330 00331 TQ_INT16 key = qFetchParameter(&itemIter).toInt16(); 00332 00333 dbus_message_iter_next(&itemIter); 00334 00335 map.insert(key, qFetchParameter(&itemIter)); 00336 }
| void qFetchInt32KeyMapEntry | ( | TQT_DBusDataMap< TQ_INT32 > & | map, | |
| DBusMessageIter * | it | |||
| ) |
Definition at line 351 of file tqdbusmarshall.cpp.
References TQT_DBusDataMap< T >::insert(), qFetchParameter(), and TQT_DBusData::toInt32().
00352 { 00353 DBusMessageIter itemIter; 00354 dbus_message_iter_recurse(it, &itemIter); 00355 Q_ASSERT(dbus_message_iter_has_next(&itemIter)); 00356 00357 TQ_INT32 key = qFetchParameter(&itemIter).toInt32(); 00358 00359 dbus_message_iter_next(&itemIter); 00360 00361 map.insert(key, qFetchParameter(&itemIter)); 00362 }
| void qFetchInt64KeyMapEntry | ( | TQT_DBusDataMap< TQ_INT64 > & | map, | |
| DBusMessageIter * | it | |||
| ) |
Definition at line 377 of file tqdbusmarshall.cpp.
References TQT_DBusDataMap< T >::insert(), qFetchParameter(), and TQT_DBusData::toInt64().
00378 { 00379 DBusMessageIter itemIter; 00380 dbus_message_iter_recurse(it, &itemIter); 00381 Q_ASSERT(dbus_message_iter_has_next(&itemIter)); 00382 00383 TQ_INT64 key = qFetchParameter(&itemIter).toInt64(); 00384 00385 dbus_message_iter_next(&itemIter); 00386 00387 map.insert(key, qFetchParameter(&itemIter)); 00388 }
| static TQT_DBusData qFetchMap | ( | DBusMessageIter * | it, | |
| const TQT_DBusData & | prototype | |||
| ) | [static] |
Definition at line 429 of file tqdbusmarshall.cpp.
References TQT_DBusData::fromByteKeyMap(), TQT_DBusData::fromInt16KeyMap(), TQT_DBusData::fromInt32KeyMap(), TQT_DBusData::fromInt64KeyMap(), TQT_DBusData::fromObjectPathKeyMap(), TQT_DBusData::fromStringKeyMap(), TQT_DBusData::fromUInt16KeyMap(), TQT_DBusData::fromUInt32KeyMap(), TQT_DBusData::fromUInt64KeyMap(), qFetchByteKeyMapEntry(), qFetchInt16KeyMapEntry(), qFetchInt32KeyMapEntry(), qFetchInt64KeyMapEntry(), qFetchObjectPathKeyMapEntry(), qFetchStringKeyMapEntry(), qFetchUInt16KeyMapEntry(), qFetchUInt32KeyMapEntry(), qFetchUInt64KeyMapEntry(), TQT_DBusData::toByteKeyMap(), TQT_DBusData::toInt16KeyMap(), TQT_DBusData::toInt32KeyMap(), TQT_DBusData::toInt64KeyMap(), TQT_DBusData::toObjectPathKeyMap(), TQT_DBusData::toStringKeyMap(), TQT_DBusData::toUInt16KeyMap(), TQT_DBusData::toUInt32KeyMap(), and TQT_DBusData::toUInt64KeyMap().
00430 { 00431 if (dbus_message_iter_get_arg_type(it) == DBUS_TYPE_INVALID) 00432 return prototype; 00433 00434 DBusMessageIter itemIter; 00435 dbus_message_iter_recurse(it, &itemIter); 00436 if (dbus_message_iter_get_arg_type(&itemIter) == DBUS_TYPE_INVALID) 00437 return prototype; 00438 00439 switch (dbus_message_iter_get_arg_type(&itemIter)) { 00440 case DBUS_TYPE_BYTE: { 00441 TQT_DBusDataMap<TQ_UINT8> map = prototype.toByteKeyMap(); 00442 do { 00443 qFetchByteKeyMapEntry(map, it); 00444 } while (dbus_message_iter_next(it)); 00445 00446 return TQT_DBusData::fromByteKeyMap(map); 00447 } 00448 00449 case DBUS_TYPE_INT16: { 00450 TQT_DBusDataMap<TQ_INT16> map = prototype.toInt16KeyMap(); 00451 do { 00452 qFetchInt16KeyMapEntry(map, it); 00453 } while (dbus_message_iter_next(it)); 00454 00455 return TQT_DBusData::fromInt16KeyMap(map); 00456 } 00457 00458 case DBUS_TYPE_UINT16: { 00459 TQT_DBusDataMap<TQ_UINT16> map = prototype.toUInt16KeyMap(); 00460 do { 00461 qFetchUInt16KeyMapEntry(map, it); 00462 } while (dbus_message_iter_next(it)); 00463 00464 return TQT_DBusData::fromUInt16KeyMap(map); 00465 } 00466 00467 case DBUS_TYPE_INT32: { 00468 TQT_DBusDataMap<TQ_INT32> map = prototype.toInt32KeyMap(); 00469 do { 00470 qFetchInt32KeyMapEntry(map, it); 00471 } while (dbus_message_iter_next(it)); 00472 00473 return TQT_DBusData::fromInt32KeyMap(map); 00474 } 00475 00476 case DBUS_TYPE_UINT32: { 00477 TQT_DBusDataMap<TQ_UINT32> map = prototype.toUInt32KeyMap(); 00478 do { 00479 qFetchUInt32KeyMapEntry(map, it); 00480 } while (dbus_message_iter_next(it)); 00481 00482 return TQT_DBusData::fromUInt32KeyMap(map); 00483 } 00484 00485 case DBUS_TYPE_INT64: { 00486 TQT_DBusDataMap<TQ_INT64> map = prototype.toInt64KeyMap(); 00487 do { 00488 qFetchInt64KeyMapEntry(map, it); 00489 } while (dbus_message_iter_next(it)); 00490 00491 return TQT_DBusData::fromInt64KeyMap(map); 00492 } 00493 00494 case DBUS_TYPE_UINT64: { 00495 TQT_DBusDataMap<TQ_UINT64> map = prototype.toUInt64KeyMap(); 00496 do { 00497 qFetchUInt64KeyMapEntry(map, it); 00498 } while (dbus_message_iter_next(it)); 00499 00500 return TQT_DBusData::fromUInt64KeyMap(map); 00501 } 00502 00503 case DBUS_TYPE_OBJECT_PATH: { 00504 TQT_DBusDataMap<TQT_DBusObjectPath> map = prototype.toObjectPathKeyMap(); 00505 do { 00506 qFetchObjectPathKeyMapEntry(map, it); 00507 } while (dbus_message_iter_next(it)); 00508 00509 return TQT_DBusData::fromObjectPathKeyMap(map); 00510 } 00511 case DBUS_TYPE_STRING: // fall through 00512 case DBUS_TYPE_SIGNATURE: { 00513 TQT_DBusDataMap<TQString> map = prototype.toStringKeyMap(); 00514 do { 00515 qFetchStringKeyMapEntry(map, it); 00516 } while (dbus_message_iter_next(it)); 00517 00518 return TQT_DBusData::fromStringKeyMap(map); 00519 } 00520 00521 default: 00522 break; 00523 } 00524 00525 return prototype; 00526 }
| void qFetchObjectPathKeyMapEntry | ( | TQT_DBusDataMap< TQT_DBusObjectPath > & | map, | |
| DBusMessageIter * | it | |||
| ) |
Definition at line 403 of file tqdbusmarshall.cpp.
References TQT_DBusDataMap< T >::insert(), qFetchParameter(), and TQT_DBusData::toObjectPath().
00404 { 00405 DBusMessageIter itemIter; 00406 dbus_message_iter_recurse(it, &itemIter); 00407 Q_ASSERT(dbus_message_iter_has_next(&itemIter)); 00408 00409 TQT_DBusObjectPath key = qFetchParameter(&itemIter).toObjectPath(); 00410 00411 dbus_message_iter_next(&itemIter); 00412 00413 map.insert(key, qFetchParameter(&itemIter)); 00414 }
| static TQT_DBusData qFetchParameter | ( | DBusMessageIter * | it | ) | [static] |
Definition at line 528 of file tqdbusmarshall.cpp.
References TQT_DBusData::fromBool(), TQT_DBusData::fromByte(), TQT_DBusData::fromDouble(), TQT_DBusData::fromInt16(), TQT_DBusData::fromInt32(), TQT_DBusData::fromInt64(), TQT_DBusData::fromList(), TQT_DBusData::fromObjectPath(), TQT_DBusData::fromString(), TQT_DBusData::fromStruct(), TQT_DBusData::fromUInt16(), TQT_DBusData::fromUInt32(), TQT_DBusData::fromUInt64(), TQT_DBusData::fromUnixFd(), TQT_DBusData::fromVariant(), TQT_DBusUnixFd::giveFileDescriptor(), parseSignature(), qFetchMap(), TQT_DBusVariant::signature, and TQT_DBusVariant::value.
00529 { 00530 switch (dbus_message_iter_get_arg_type(it)) { 00531 case DBUS_TYPE_BOOLEAN: 00532 return TQT_DBusData::fromBool(qIterGet<dbus_bool_t>(it)); 00533 case DBUS_TYPE_BYTE: 00534 return TQT_DBusData::fromByte(qIterGet<unsigned char>(it)); 00535 case DBUS_TYPE_INT16: 00536 return TQT_DBusData::fromInt16(qIterGet<dbus_int16_t>(it)); 00537 case DBUS_TYPE_UINT16: 00538 return TQT_DBusData::fromUInt16(qIterGet<dbus_uint16_t>(it)); 00539 case DBUS_TYPE_INT32: 00540 return TQT_DBusData::fromInt32(qIterGet<dbus_int32_t>(it)); 00541 case DBUS_TYPE_UINT32: 00542 return TQT_DBusData::fromUInt32(qIterGet<dbus_uint32_t>(it)); 00543 case DBUS_TYPE_INT64: 00544 return TQT_DBusData::fromInt64(qIterGet<dbus_int64_t>(it)); 00545 case DBUS_TYPE_UINT64: 00546 return TQT_DBusData::fromUInt64(qIterGet<dbus_uint64_t>(it)); 00547 case DBUS_TYPE_DOUBLE: 00548 return TQT_DBusData::fromDouble(qIterGet<double>(it)); 00549 case DBUS_TYPE_STRING: 00550 case DBUS_TYPE_SIGNATURE: 00551 return TQT_DBusData::fromString(TQString::fromUtf8(qIterGet<char *>(it))); 00552 case DBUS_TYPE_OBJECT_PATH: 00553 return TQT_DBusData::fromObjectPath(TQT_DBusObjectPath(qIterGet<char *>(it))); 00554 case DBUS_TYPE_ARRAY: { 00555 int arrayType = dbus_message_iter_get_element_type(it); 00556 00557 char* sig = dbus_message_iter_get_signature(it); 00558 TQCString signature = sig; 00559 dbus_free(sig); 00560 00561 TQValueList<TQT_DBusData> prototypeList = parseSignature(signature); 00562 00563 if (arrayType == DBUS_TYPE_DICT_ENTRY) { 00564 DBusMessageIter sub; 00565 dbus_message_iter_recurse(it, &sub); 00566 00567 return qFetchMap(&sub, prototypeList[0]); 00568 } else { 00569 TQT_DBusDataList list = prototypeList[0].toList(); 00570 00571 DBusMessageIter arrayIt; 00572 dbus_message_iter_recurse(it, &arrayIt); 00573 00574 while (dbus_message_iter_get_arg_type(&arrayIt) != DBUS_TYPE_INVALID) { 00575 list << qFetchParameter(&arrayIt); 00576 00577 dbus_message_iter_next(&arrayIt); 00578 } 00579 00580 return TQT_DBusData::fromList(list); 00581 } 00582 } 00583 case DBUS_TYPE_VARIANT: { 00584 TQT_DBusVariant dvariant; 00585 DBusMessageIter sub; 00586 dbus_message_iter_recurse(it, &sub); 00587 00588 char* signature = dbus_message_iter_get_signature(&sub); 00589 dvariant.signature = TQString::fromUtf8(signature); 00590 dbus_free(signature); 00591 00592 dvariant.value = qFetchParameter(&sub); 00593 00594 return TQT_DBusData::fromVariant(dvariant); 00595 } 00596 case DBUS_TYPE_STRUCT: { 00597 TQValueList<TQT_DBusData> memberList; 00598 00599 DBusMessageIter subIt; 00600 dbus_message_iter_recurse(it, &subIt); 00601 00602 uint index = 0; 00603 while (dbus_message_iter_get_arg_type(&subIt) != DBUS_TYPE_INVALID) { 00604 memberList << qFetchParameter(&subIt); 00605 00606 dbus_message_iter_next(&subIt); 00607 ++index; 00608 } 00609 00610 return TQT_DBusData::fromStruct(memberList); 00611 } 00612 case DBUS_TYPE_UNIX_FD: { 00613 TQT_DBusUnixFd unixFd; 00614 unixFd.giveFileDescriptor(qIterGet<dbus_uint32_t>(it)); 00615 return TQT_DBusData::fromUnixFd(unixFd); 00616 } 00617 #if 0 00618 case DBUS_TYPE_INVALID: 00619 // TODO: check if there is better way to detect empty arrays 00620 return TQT_DBusData(); 00621 break; 00622 #endif 00623 default: 00624 tqWarning("TQT_DBusMarshall: Don't know how to de-marshall type %d '%c'", 00625 dbus_message_iter_get_arg_type(it), 00626 dbus_message_iter_get_arg_type(it)); 00627 return TQT_DBusData(); 00628 break; 00629 } 00630 }
| void qFetchStringKeyMapEntry | ( | TQT_DBusDataMap< TQString > & | map, | |
| DBusMessageIter * | it | |||
| ) |
Definition at line 416 of file tqdbusmarshall.cpp.
References TQT_DBusDataMap< T >::insert(), qFetchParameter(), and TQT_DBusData::toString().
00417 { 00418 DBusMessageIter itemIter; 00419 dbus_message_iter_recurse(it, &itemIter); 00420 Q_ASSERT(dbus_message_iter_has_next(&itemIter)); 00421 00422 TQString key = qFetchParameter(&itemIter).toString(); 00423 00424 dbus_message_iter_next(&itemIter); 00425 00426 map.insert(key, qFetchParameter(&itemIter)); 00427 }
| void qFetchUInt16KeyMapEntry | ( | TQT_DBusDataMap< TQ_UINT16 > & | map, | |
| DBusMessageIter * | it | |||
| ) |
Definition at line 338 of file tqdbusmarshall.cpp.
References TQT_DBusDataMap< T >::insert(), qFetchParameter(), and TQT_DBusData::toUInt16().
00339 { 00340 DBusMessageIter itemIter; 00341 dbus_message_iter_recurse(it, &itemIter); 00342 Q_ASSERT(dbus_message_iter_has_next(&itemIter)); 00343 00344 TQ_UINT16 key = qFetchParameter(&itemIter).toUInt16(); 00345 00346 dbus_message_iter_next(&itemIter); 00347 00348 map.insert(key, qFetchParameter(&itemIter)); 00349 }
| void qFetchUInt32KeyMapEntry | ( | TQT_DBusDataMap< TQ_UINT32 > & | map, | |
| DBusMessageIter * | it | |||
| ) |
Definition at line 364 of file tqdbusmarshall.cpp.
References TQT_DBusDataMap< T >::insert(), qFetchParameter(), and TQT_DBusData::toUInt32().
00365 { 00366 DBusMessageIter itemIter; 00367 dbus_message_iter_recurse(it, &itemIter); 00368 Q_ASSERT(dbus_message_iter_has_next(&itemIter)); 00369 00370 TQ_UINT32 key = qFetchParameter(&itemIter).toUInt32(); 00371 00372 dbus_message_iter_next(&itemIter); 00373 00374 map.insert(key, qFetchParameter(&itemIter)); 00375 }
| void qFetchUInt64KeyMapEntry | ( | TQT_DBusDataMap< TQ_UINT64 > & | map, | |
| DBusMessageIter * | it | |||
| ) |
Definition at line 390 of file tqdbusmarshall.cpp.
References TQT_DBusDataMap< T >::insert(), qFetchParameter(), and TQT_DBusData::toUInt64().
00391 { 00392 DBusMessageIter itemIter; 00393 dbus_message_iter_recurse(it, &itemIter); 00394 Q_ASSERT(dbus_message_iter_has_next(&itemIter)); 00395 00396 TQ_UINT64 key = qFetchParameter(&itemIter).toUInt64(); 00397 00398 dbus_message_iter_next(&itemIter); 00399 00400 map.insert(key, qFetchParameter(&itemIter)); 00401 }
| T qIterGet | ( | DBusMessageIter * | it | ) | [inline] |
Definition at line 42 of file tqdbusmarshall.cpp.
| void qListToIterator | ( | DBusMessageIter * | it, | |
| const TQValueList< TQT_DBusData > & | list | |||
| ) |
Definition at line 1236 of file tqdbusmarshall.cpp.
References qDBusDataToIterator().
01237 { 01238 if (list.isEmpty()) return; 01239 01240 TQValueList<TQT_DBusData>::const_iterator listIt = list.begin(); 01241 TQValueList<TQT_DBusData>::const_iterator listEndIt = list.end(); 01242 for (; listIt != listEndIt; ++listIt) 01243 { 01244 qDBusDataToIterator(it, *listIt); 01245 } 01246 }
| static TQT_DBusData::Type qSingleTypeForDBusSignature | ( | char | signature | ) | [static] |
Definition at line 49 of file tqdbusmarshall.cpp.
References TQT_DBusData::Bool, TQT_DBusData::Byte, TQT_DBusData::Double, TQT_DBusData::Int16, TQT_DBusData::Int32, TQT_DBusData::Int64, TQT_DBusData::Invalid, TQT_DBusData::ObjectPath, TQT_DBusData::String, TQT_DBusData::UInt16, TQT_DBusData::UInt32, TQT_DBusData::UInt64, TQT_DBusData::UnixFd, and TQT_DBusData::Variant.
00050 { 00051 switch (signature) 00052 { 00053 case 'b': return TQT_DBusData::Bool; 00054 case 'y': return TQT_DBusData::Byte; 00055 case 'n': return TQT_DBusData::Int16; 00056 case 'q': return TQT_DBusData::UInt16; 00057 case 'i': return TQT_DBusData::Int32; 00058 case 'u': return TQT_DBusData::UInt32; 00059 case 'x': return TQT_DBusData::Int64; 00060 case 't': return TQT_DBusData::UInt64; 00061 case 'd': return TQT_DBusData::Double; 00062 case 's': return TQT_DBusData::String; 00063 case 'o': return TQT_DBusData::ObjectPath; 00064 case 'g': return TQT_DBusData::String; 00065 case 'v': return TQT_DBusData::Variant; 00066 case 'h': return TQT_DBusData::UnixFd; 00067 00068 default: 00069 break; 00070 } 00071 00072 return TQT_DBusData::Invalid; 00073 }
| static void tqAppendToMessage | ( | DBusMessageIter * | it, | |
| const TQT_DBusUnixFd & | unixFd | |||
| ) | [static] |
Definition at line 659 of file tqdbusmarshall.cpp.
References TQT_DBusUnixFd::fileDescriptor().
00660 { 00661 const dbus_int32_t cdata = unixFd.fileDescriptor(); 00662 dbus_message_iter_append_basic(it, DBUS_TYPE_UNIX_FD, &cdata); 00663 }
| static void tqAppendToMessage | ( | DBusMessageIter * | it, | |
| const TQT_DBusObjectPath & | path | |||
| ) | [static] |
Definition at line 653 of file tqdbusmarshall.cpp.
| static void tqAppendToMessage | ( | DBusMessageIter * | it, | |
| const TQString & | str | |||
| ) | [static] |
Definition at line 646 of file tqdbusmarshall.cpp.
00647 { 00648 TQByteArray ba = str.utf8(); 00649 const char *cdata = ba.data(); 00650 dbus_message_iter_append_basic(it, DBUS_TYPE_STRING, &cdata); 00651 }
1.6.3