DBus-1-TQt  1.0
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
tqdbusmarshall.cpp File Reference
#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>
+ Include dependency graph for tqdbusmarshall.cpp:

Go to the source code of this file.

Functions

template<typename T >
qIterGet (DBusMessageIter *it)
static TQT_DBusData::Type qSingleTypeForDBusSignature (char signature)
static TQValueList< TQT_DBusDataparseSignature (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)

Function Documentation

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.

{
// tqDebug("parseSignature(%s)", signature.data());
TQValueList<TQT_DBusData> result;
while (!signature.isEmpty())
{
switch (signature[0])
{
case '(': {
signature = signature.mid(1);
TQValueList<TQT_DBusData> memberList = parseSignature(signature);
result << TQT_DBusData::fromStruct(memberList);
Q_ASSERT(!signature.isEmpty() && signature[0] == ')');
signature = signature.mid(1);
break;
}
case ')': return result;
case '{': {
TQT_DBusData::Type valueType =
if (valueType != TQT_DBusData::Invalid)
{
switch (keyType)
{
break;
break;
break;
break;
break;
break;
break;
break;
break;
break;
default:
tqWarning("TQT_DBusMarshall: unsupported map key type %s "
"at de-marshalling",
break;
}
signature = signature.mid(3);
}
else
{
signature = signature.mid(2);
TQValueList<TQT_DBusData> valueContainer =
parseSignature(signature);
Q_ASSERT(valueContainer.count() == 1);
switch (keyType)
{
TQT_DBusDataMap<TQ_UINT8>(valueContainer[0]));
break;
TQT_DBusDataMap<TQ_INT16>(valueContainer[0]));
break;
TQT_DBusDataMap<TQ_UINT16>(valueContainer[0]));
break;
TQT_DBusDataMap<TQ_INT32>(valueContainer[0]));
break;
TQT_DBusDataMap<TQ_UINT32>(valueContainer[0]));
break;
TQT_DBusDataMap<TQ_INT64>(valueContainer[0]));
break;
TQT_DBusDataMap<TQ_UINT64>(valueContainer[0]));
break;
TQT_DBusDataMap<TQString>(valueContainer[0]));
break;
break;
TQT_DBusDataMap<TQT_DBusUnixFd>(valueContainer[0]));
break;
default:
tqWarning("TQT_DBusMarshall: unsupported map key type %s "
"at de-marshalling",
break;
}
}
Q_ASSERT(!signature.isEmpty() && signature[0] == '}');
signature = signature.mid(1);
break;
}
case '}': return result;
case 'a': {
TQT_DBusData::Type elementType =
if (elementType != TQT_DBusData::Invalid)
{
TQT_DBusDataList list(elementType);
result << TQT_DBusData::fromList(list);
signature = signature.mid(2);
}
else
{
signature = signature.mid(1);
bool array = signature[0] != '{';
TQValueList<TQT_DBusData> elementContainer =
parseSignature(signature);
Q_ASSERT(elementContainer.count() == 1);
if (array)
{
TQT_DBusDataList list(elementContainer[0]);
result << TQT_DBusData::fromList(list);
}
else
result << elementContainer[0];
}
break;
}
default:
TQT_DBusData::Type elementType =
if (elementType != TQT_DBusData::Invalid)
{
switch (elementType)
{
(0));
break;
(0));
break;
(0));
break;
(0));
break;
(0));
break;
(0));
break;
(0));
break;
(0));
break;
(TQString()));
break;
break;
break;
default:
result << TQT_DBusData();
tqWarning("TQT_DBusMarshall: unsupported element type %s "
"at de-marshalling",
TQT_DBusData::typeName(elementType));
break;
}
signature = signature.mid(1);
}
else {
result << TQT_DBusData();
signature = signature.mid(1);
}
break;
}
}
return result;
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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().

{
DBusMessageIter sub;
TQCString sig;
sig += DBUS_DICT_ENTRY_BEGIN_CHAR;
else
sig += DBUS_DICT_ENTRY_END_CHAR;
dbus_message_iter_open_container(it, DBUS_TYPE_ARRAY, sig.data(), &sub);
for (; mit != map.end(); ++mit)
{
DBusMessageIter itemIterator;
dbus_message_iter_open_container(&sub, DBUS_TYPE_DICT_ENTRY,
0, &itemIterator);
dbus_message_iter_append_basic(it, DBUS_TYPE_BYTE, &(mit.key()));
qDBusDataToIterator(&itemIterator, mit.data());
dbus_message_iter_close_container(&sub, &itemIterator);
}
dbus_message_iter_close_container(it, &sub);
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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_DBusData::type(), TQT_DBusDataList::type(), TQT_DBusData::typeName(), TQT_DBusData::UInt16, TQT_DBusData::UInt32, TQT_DBusData::UInt64, TQT_DBusData::UnixFd, TQT_DBusVariant::value, and TQT_DBusData::Variant.

{
switch (var.type())
{
{
dbus_bool_t value = var.toBool();
dbus_message_iter_append_basic(it, DBUS_TYPE_BOOLEAN, &value);
break;
}
{
TQ_UINT8 value = var.toByte();
dbus_message_iter_append_basic(it, DBUS_TYPE_BYTE, &value);
break;
}
TQ_INT16 value = var.toInt16();
dbus_message_iter_append_basic(it, DBUS_TYPE_INT16, &value);
break;
}
TQ_UINT16 value = var.toUInt16();
dbus_message_iter_append_basic(it, DBUS_TYPE_UINT16, &value);
break;
}
TQ_INT32 value = var.toInt32();
dbus_message_iter_append_basic(it, DBUS_TYPE_INT32, &value);
break;
}
TQ_UINT32 value = var.toUInt32();
dbus_message_iter_append_basic(it, DBUS_TYPE_UINT32, &value);
break;
}
TQ_INT64 value = var.toInt64();
dbus_message_iter_append_basic(it, DBUS_TYPE_INT64, &value);
break;
}
TQ_UINT64 value = var.toUInt64();
dbus_message_iter_append_basic(it, DBUS_TYPE_UINT64, &value);
break;
}
double value = var.toDouble();
dbus_message_iter_append_basic(it, DBUS_TYPE_DOUBLE, &value);
break;
}
break;
break;
break;
}
TQT_DBusDataList list = var.toList();
TQCString signature = 0;
signature = list.containerItemType().buildDBusSignature();
else
signature = qDBusTypeForTQT_DBusType(list.type());
DBusMessageIter sub;
dbus_message_iter_open_container(it, DBUS_TYPE_ARRAY,
signature.data(), &sub);
const TQValueList<TQT_DBusData> valueList = var.toTQValueList();
TQValueList<TQT_DBusData>::const_iterator listIt = valueList.begin();
TQValueList<TQT_DBusData>::const_iterator listEndIt = valueList.end();
for (; listIt != listEndIt; ++listIt)
{
qDBusDataToIterator(&sub, *listIt);
}
dbus_message_iter_close_container(it, &sub);
break;
}
switch (var.keyType()) {
break;
break;
break;
break;
break;
break;
break;
break;
break;
break;
default:
tqWarning("TQT_DBusMarshall: unhandled map key type %s "
"at marshalling",
break;
}
break;
}
TQT_DBusVariant variant = var.toVariant();
if (variant.signature.isEmpty() || !variant.value.isValid()) break;
DBusMessageIter sub;
dbus_message_iter_open_container(it, DBUS_TYPE_VARIANT,
variant.signature.utf8(), &sub);
qDBusDataToIterator(&sub, variant.value);
dbus_message_iter_close_container(it, &sub);
break;
}
TQValueList<TQT_DBusData> memberList = var.toStruct();
if (memberList.isEmpty()) break;
DBusMessageIter sub;
dbus_message_iter_open_container(it, DBUS_TYPE_STRUCT, NULL, &sub);
TQValueList<TQT_DBusData>::const_iterator memberIt = memberList.begin();
TQValueList<TQT_DBusData>::const_iterator memberEndIt = memberList.end();
for (; memberIt != memberEndIt; ++memberIt)
{
qDBusDataToIterator(&sub, *memberIt);
}
dbus_message_iter_close_container(it, &sub);
}
#if 0
case TQVariant::ByteArray: {
const TQByteArray array = var.toByteArray();
const char* cdata = array.data();
DBusMessageIter sub;
dbus_message_iter_open_container(it, DBUS_TYPE_ARRAY, DBUS_TYPE_BYTE_AS_STRING, &sub);
dbus_message_iter_append_fixed_array(&sub, DBUS_TYPE_BYTE, &cdata, array.size());
dbus_message_iter_close_container(it, &sub);
break;
}
#endif
default:
//tqWarning("Don't know how to handle type %s", var.typeName());
break;
}
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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().

{
DBusMessageIter sub;
TQCString sig;
sig += DBUS_DICT_ENTRY_BEGIN_CHAR;
else
sig += DBUS_DICT_ENTRY_END_CHAR;
dbus_message_iter_open_container(it, DBUS_TYPE_ARRAY, sig.data(), &sub);
for (; mit != map.end(); ++mit)
{
DBusMessageIter itemIterator;
dbus_message_iter_open_container(&sub, DBUS_TYPE_DICT_ENTRY,
0, &itemIterator);
dbus_message_iter_append_basic(it, DBUS_TYPE_INT16, &(mit.key()));
qDBusDataToIterator(&itemIterator, mit.data());
dbus_message_iter_close_container(&sub, &itemIterator);
}
dbus_message_iter_close_container(it, &sub);
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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().

{
DBusMessageIter sub;
TQCString sig;
sig += DBUS_DICT_ENTRY_BEGIN_CHAR;
else
sig += DBUS_DICT_ENTRY_END_CHAR;
dbus_message_iter_open_container(it, DBUS_TYPE_ARRAY, sig.data(), &sub);
for (; mit != map.end(); ++mit)
{
DBusMessageIter itemIterator;
dbus_message_iter_open_container(&sub, DBUS_TYPE_DICT_ENTRY,
0, &itemIterator);
dbus_message_iter_append_basic(it, DBUS_TYPE_INT32, &(mit.key()));
qDBusDataToIterator(&itemIterator, mit.data());
dbus_message_iter_close_container(&sub, &itemIterator);
}
dbus_message_iter_close_container(it, &sub);
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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().

{
DBusMessageIter sub;
TQCString sig;
sig += DBUS_DICT_ENTRY_BEGIN_CHAR;
else
sig += DBUS_DICT_ENTRY_END_CHAR;
dbus_message_iter_open_container(it, DBUS_TYPE_ARRAY, sig.data(), &sub);
for (; mit != map.end(); ++mit)
{
DBusMessageIter itemIterator;
dbus_message_iter_open_container(&sub, DBUS_TYPE_DICT_ENTRY,
0, &itemIterator);
dbus_message_iter_append_basic(it, DBUS_TYPE_INT64, &(mit.key()));
qDBusDataToIterator(&itemIterator, mit.data());
dbus_message_iter_close_container(&sub, &itemIterator);
}
dbus_message_iter_close_container(it, &sub);
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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().

{
DBusMessageIter sub;
TQCString sig;
sig += DBUS_DICT_ENTRY_BEGIN_CHAR;
else
sig += DBUS_DICT_ENTRY_END_CHAR;
dbus_message_iter_open_container(it, DBUS_TYPE_ARRAY, sig.data(), &sub);
for (; mit != map.end(); ++mit)
{
DBusMessageIter itemIterator;
dbus_message_iter_open_container(&sub, DBUS_TYPE_DICT_ENTRY,
0, &itemIterator);
tqAppendToMessage(&itemIterator, mit.key());
qDBusDataToIterator(&itemIterator, mit.data());
dbus_message_iter_close_container(&sub, &itemIterator);
}
dbus_message_iter_close_container(it, &sub);
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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().

{
DBusMessageIter sub;
TQCString sig;
sig += DBUS_DICT_ENTRY_BEGIN_CHAR;
else
sig += DBUS_DICT_ENTRY_END_CHAR;
dbus_message_iter_open_container(it, DBUS_TYPE_ARRAY, sig.data(), &sub);
for (; mit != map.end(); ++mit)
{
DBusMessageIter itemIterator;
dbus_message_iter_open_container(&sub, DBUS_TYPE_DICT_ENTRY,
0, &itemIterator);
tqAppendToMessage(&itemIterator, mit.key());
qDBusDataToIterator(&itemIterator, mit.data());
dbus_message_iter_close_container(&sub, &itemIterator);
}
dbus_message_iter_close_container(it, &sub);
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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.

{
switch (type)
{
return 0;
return DBUS_TYPE_BOOLEAN_AS_STRING;
return DBUS_TYPE_BYTE_AS_STRING;
return DBUS_TYPE_INT16_AS_STRING;
return DBUS_TYPE_UINT16_AS_STRING;
return DBUS_TYPE_INT32_AS_STRING;
return DBUS_TYPE_UINT32_AS_STRING;
return DBUS_TYPE_INT64_AS_STRING;
return DBUS_TYPE_UINT64_AS_STRING;
return DBUS_TYPE_DOUBLE_AS_STRING;
return DBUS_TYPE_STRING_AS_STRING;
return DBUS_TYPE_OBJECT_PATH_AS_STRING;
return DBUS_TYPE_ARRAY_AS_STRING;
return DBUS_TYPE_STRUCT_AS_STRING;
return DBUS_TYPE_VARIANT_AS_STRING;
return DBUS_TYPE_DICT_ENTRY_AS_STRING;
}
return 0;
}

+ Here is the caller graph for this function:

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().

{
DBusMessageIter sub;
TQCString sig;
sig += DBUS_DICT_ENTRY_BEGIN_CHAR;
else
sig += DBUS_DICT_ENTRY_END_CHAR;
dbus_message_iter_open_container(it, DBUS_TYPE_ARRAY, sig.data(), &sub);
for (; mit != map.end(); ++mit)
{
DBusMessageIter itemIterator;
dbus_message_iter_open_container(&sub, DBUS_TYPE_DICT_ENTRY,
0, &itemIterator);
dbus_message_iter_append_basic(it, DBUS_TYPE_UINT16, &(mit.key()));
qDBusDataToIterator(&itemIterator, mit.data());
dbus_message_iter_close_container(&sub, &itemIterator);
}
dbus_message_iter_close_container(it, &sub);
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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().

{
DBusMessageIter sub;
TQCString sig;
sig += DBUS_DICT_ENTRY_BEGIN_CHAR;
else
sig += DBUS_DICT_ENTRY_END_CHAR;
dbus_message_iter_open_container(it, DBUS_TYPE_ARRAY, sig.data(), &sub);
for (; mit != map.end(); ++mit)
{
DBusMessageIter itemIterator;
dbus_message_iter_open_container(&sub, DBUS_TYPE_DICT_ENTRY,
0, &itemIterator);
dbus_message_iter_append_basic(it, DBUS_TYPE_UINT32, &(mit.key()));
qDBusDataToIterator(&itemIterator, mit.data());
dbus_message_iter_close_container(&sub, &itemIterator);
}
dbus_message_iter_close_container(it, &sub);
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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().

{
DBusMessageIter sub;
TQCString sig;
sig += DBUS_DICT_ENTRY_BEGIN_CHAR;
else
sig += DBUS_DICT_ENTRY_END_CHAR;
dbus_message_iter_open_container(it, DBUS_TYPE_ARRAY, sig.data(), &sub);
for (; mit != map.end(); ++mit)
{
DBusMessageIter itemIterator;
dbus_message_iter_open_container(&sub, DBUS_TYPE_DICT_ENTRY,
0, &itemIterator);
dbus_message_iter_append_basic(it, DBUS_TYPE_UINT64, &(mit.key()));
qDBusDataToIterator(&itemIterator, mit.data());
dbus_message_iter_close_container(&sub, &itemIterator);
}
dbus_message_iter_close_container(it, &sub);
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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(), DBUS_TYPE_UNIX_FD, TQT_DBusDataMap< T >::end(), TQT_DBusDataMap< T >::hasContainerValueType(), TQT_DBusDataMap< T >::keyType(), qDBusDataToIterator(), qDBusTypeForTQT_DBusType(), TQT_DBusData::toUnixFdKeyMap(), and TQT_DBusDataMap< T >::valueType().

{
DBusMessageIter sub;
TQCString sig;
sig += DBUS_DICT_ENTRY_BEGIN_CHAR;
else
sig += DBUS_DICT_ENTRY_END_CHAR;
dbus_message_iter_open_container(it, DBUS_TYPE_ARRAY, sig.data(), &sub);
for (; mit != map.end(); ++mit)
{
DBusMessageIter itemIterator;
dbus_message_iter_open_container(&sub, DBUS_TYPE_DICT_ENTRY,
0, &itemIterator);
dbus_message_iter_append_basic(it, DBUS_TYPE_UNIX_FD, &(mit.key()));
qDBusDataToIterator(&itemIterator, mit.data());
dbus_message_iter_close_container(&sub, &itemIterator);
}
dbus_message_iter_close_container(it, &sub);
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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().

{
DBusMessageIter itemIter;
dbus_message_iter_recurse(it, &itemIter);
Q_ASSERT(dbus_message_iter_has_next(&itemIter));
TQ_UINT8 key = qFetchParameter(&itemIter).toByte();
dbus_message_iter_next(&itemIter);
map.insert(key, qFetchParameter(&itemIter));
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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().

{
DBusMessageIter itemIter;
dbus_message_iter_recurse(it, &itemIter);
Q_ASSERT(dbus_message_iter_has_next(&itemIter));
TQ_INT16 key = qFetchParameter(&itemIter).toInt16();
dbus_message_iter_next(&itemIter);
map.insert(key, qFetchParameter(&itemIter));
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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().

{
DBusMessageIter itemIter;
dbus_message_iter_recurse(it, &itemIter);
Q_ASSERT(dbus_message_iter_has_next(&itemIter));
TQ_INT32 key = qFetchParameter(&itemIter).toInt32();
dbus_message_iter_next(&itemIter);
map.insert(key, qFetchParameter(&itemIter));
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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().

{
DBusMessageIter itemIter;
dbus_message_iter_recurse(it, &itemIter);
Q_ASSERT(dbus_message_iter_has_next(&itemIter));
TQ_INT64 key = qFetchParameter(&itemIter).toInt64();
dbus_message_iter_next(&itemIter);
map.insert(key, qFetchParameter(&itemIter));
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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().

{
if (dbus_message_iter_get_arg_type(it) == DBUS_TYPE_INVALID)
return prototype;
DBusMessageIter itemIter;
dbus_message_iter_recurse(it, &itemIter);
if (dbus_message_iter_get_arg_type(&itemIter) == DBUS_TYPE_INVALID)
return prototype;
switch (dbus_message_iter_get_arg_type(&itemIter)) {
case DBUS_TYPE_BYTE: {
do {
} while (dbus_message_iter_next(it));
}
case DBUS_TYPE_INT16: {
do {
} while (dbus_message_iter_next(it));
}
case DBUS_TYPE_UINT16: {
do {
} while (dbus_message_iter_next(it));
}
case DBUS_TYPE_INT32: {
do {
} while (dbus_message_iter_next(it));
}
case DBUS_TYPE_UINT32: {
do {
} while (dbus_message_iter_next(it));
}
case DBUS_TYPE_INT64: {
do {
} while (dbus_message_iter_next(it));
}
case DBUS_TYPE_UINT64: {
do {
} while (dbus_message_iter_next(it));
}
case DBUS_TYPE_OBJECT_PATH: {
do {
} while (dbus_message_iter_next(it));
}
case DBUS_TYPE_STRING: // fall through
case DBUS_TYPE_SIGNATURE: {
do {
} while (dbus_message_iter_next(it));
}
default:
break;
}
return prototype;
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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().

{
DBusMessageIter itemIter;
dbus_message_iter_recurse(it, &itemIter);
Q_ASSERT(dbus_message_iter_has_next(&itemIter));
dbus_message_iter_next(&itemIter);
map.insert(key, qFetchParameter(&itemIter));
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static TQT_DBusData qFetchParameter ( DBusMessageIter *  it)
static

Definition at line 528 of file tqdbusmarshall.cpp.

References DBUS_TYPE_UNIX_FD, 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.

{
switch (dbus_message_iter_get_arg_type(it)) {
case DBUS_TYPE_BOOLEAN:
return TQT_DBusData::fromBool(qIterGet<dbus_bool_t>(it));
case DBUS_TYPE_BYTE:
return TQT_DBusData::fromByte(qIterGet<unsigned char>(it));
case DBUS_TYPE_INT16:
return TQT_DBusData::fromInt16(qIterGet<dbus_int16_t>(it));
case DBUS_TYPE_UINT16:
return TQT_DBusData::fromUInt16(qIterGet<dbus_uint16_t>(it));
case DBUS_TYPE_INT32:
return TQT_DBusData::fromInt32(qIterGet<dbus_int32_t>(it));
case DBUS_TYPE_UINT32:
return TQT_DBusData::fromUInt32(qIterGet<dbus_uint32_t>(it));
case DBUS_TYPE_INT64:
return TQT_DBusData::fromInt64(qIterGet<dbus_int64_t>(it));
case DBUS_TYPE_UINT64:
return TQT_DBusData::fromUInt64(qIterGet<dbus_uint64_t>(it));
case DBUS_TYPE_DOUBLE:
return TQT_DBusData::fromDouble(qIterGet<double>(it));
case DBUS_TYPE_STRING:
case DBUS_TYPE_SIGNATURE:
return TQT_DBusData::fromString(TQString::fromUtf8(qIterGet<char *>(it)));
case DBUS_TYPE_OBJECT_PATH:
return TQT_DBusData::fromObjectPath(TQT_DBusObjectPath(qIterGet<char *>(it)));
case DBUS_TYPE_ARRAY: {
int arrayType = dbus_message_iter_get_element_type(it);
char* sig = dbus_message_iter_get_signature(it);
TQCString signature = sig;
dbus_free(sig);
TQValueList<TQT_DBusData> prototypeList = parseSignature(signature);
if (arrayType == DBUS_TYPE_DICT_ENTRY) {
DBusMessageIter sub;
dbus_message_iter_recurse(it, &sub);
return qFetchMap(&sub, prototypeList[0]);
} else {
TQT_DBusDataList list = prototypeList[0].toList();
DBusMessageIter arrayIt;
dbus_message_iter_recurse(it, &arrayIt);
while (dbus_message_iter_get_arg_type(&arrayIt) != DBUS_TYPE_INVALID) {
list << qFetchParameter(&arrayIt);
dbus_message_iter_next(&arrayIt);
}
return TQT_DBusData::fromList(list);
}
}
case DBUS_TYPE_VARIANT: {
TQT_DBusVariant dvariant;
DBusMessageIter sub;
dbus_message_iter_recurse(it, &sub);
char* signature = dbus_message_iter_get_signature(&sub);
dvariant.signature = TQString::fromUtf8(signature);
dbus_free(signature);
dvariant.value = qFetchParameter(&sub);
return TQT_DBusData::fromVariant(dvariant);
}
case DBUS_TYPE_STRUCT: {
TQValueList<TQT_DBusData> memberList;
DBusMessageIter subIt;
dbus_message_iter_recurse(it, &subIt);
uint index = 0;
while (dbus_message_iter_get_arg_type(&subIt) != DBUS_TYPE_INVALID) {
memberList << qFetchParameter(&subIt);
dbus_message_iter_next(&subIt);
++index;
}
return TQT_DBusData::fromStruct(memberList);
}
unixFd.giveFileDescriptor(qIterGet<dbus_uint32_t>(it));
return TQT_DBusData::fromUnixFd(unixFd);
}
#if 0
case DBUS_TYPE_INVALID:
// TODO: check if there is better way to detect empty arrays
return TQT_DBusData();
break;
#endif
default:
tqWarning("TQT_DBusMarshall: Don't know how to de-marshall type %d '%c'",
dbus_message_iter_get_arg_type(it),
dbus_message_iter_get_arg_type(it));
return TQT_DBusData();
break;
}
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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().

{
DBusMessageIter itemIter;
dbus_message_iter_recurse(it, &itemIter);
Q_ASSERT(dbus_message_iter_has_next(&itemIter));
TQString key = qFetchParameter(&itemIter).toString();
dbus_message_iter_next(&itemIter);
map.insert(key, qFetchParameter(&itemIter));
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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().

{
DBusMessageIter itemIter;
dbus_message_iter_recurse(it, &itemIter);
Q_ASSERT(dbus_message_iter_has_next(&itemIter));
TQ_UINT16 key = qFetchParameter(&itemIter).toUInt16();
dbus_message_iter_next(&itemIter);
map.insert(key, qFetchParameter(&itemIter));
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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().

{
DBusMessageIter itemIter;
dbus_message_iter_recurse(it, &itemIter);
Q_ASSERT(dbus_message_iter_has_next(&itemIter));
TQ_UINT32 key = qFetchParameter(&itemIter).toUInt32();
dbus_message_iter_next(&itemIter);
map.insert(key, qFetchParameter(&itemIter));
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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().

{
DBusMessageIter itemIter;
dbus_message_iter_recurse(it, &itemIter);
Q_ASSERT(dbus_message_iter_has_next(&itemIter));
TQ_UINT64 key = qFetchParameter(&itemIter).toUInt64();
dbus_message_iter_next(&itemIter);
map.insert(key, qFetchParameter(&itemIter));
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<typename T >
T qIterGet ( DBusMessageIter *  it)
inline

Definition at line 42 of file tqdbusmarshall.cpp.

{
T t;
dbus_message_iter_get_basic(it, &t);
return t;
}
void qListToIterator ( DBusMessageIter *  it,
const TQValueList< TQT_DBusData > &  list 
)

Definition at line 1236 of file tqdbusmarshall.cpp.

References qDBusDataToIterator().

{
if (list.isEmpty()) return;
TQValueList<TQT_DBusData>::const_iterator listIt = list.begin();
TQValueList<TQT_DBusData>::const_iterator listEndIt = list.end();
for (; listIt != listEndIt; ++listIt)
{
qDBusDataToIterator(it, *listIt);
}
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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.

{
switch (signature)
{
case 'b': return TQT_DBusData::Bool;
case 'y': return TQT_DBusData::Byte;
case 'n': return TQT_DBusData::Int16;
case 'q': return TQT_DBusData::UInt16;
case 'i': return TQT_DBusData::Int32;
case 'u': return TQT_DBusData::UInt32;
case 'x': return TQT_DBusData::Int64;
case 't': return TQT_DBusData::UInt64;
case 'd': return TQT_DBusData::Double;
case 's': return TQT_DBusData::String;
case 'o': return TQT_DBusData::ObjectPath;
case 'g': return TQT_DBusData::String;
case 'v': return TQT_DBusData::Variant;
case 'h': return TQT_DBusData::UnixFd;
default:
break;
}
}

+ Here is the caller graph for this function:

static void tqAppendToMessage ( DBusMessageIter *  it,
const TQString &  str 
)
static

Definition at line 646 of file tqdbusmarshall.cpp.

{
TQByteArray ba = str.utf8();
const char *cdata = ba.data();
dbus_message_iter_append_basic(it, DBUS_TYPE_STRING, &cdata);
}

+ Here is the caller graph for this function:

static void tqAppendToMessage ( DBusMessageIter *  it,
const TQT_DBusObjectPath path 
)
static

Definition at line 653 of file tqdbusmarshall.cpp.

{
const char *cdata = path.ascii();
dbus_message_iter_append_basic(it, DBUS_TYPE_OBJECT_PATH, &cdata);
}
static void tqAppendToMessage ( DBusMessageIter *  it,
const TQT_DBusUnixFd unixFd 
)
static

Definition at line 659 of file tqdbusmarshall.cpp.

References DBUS_TYPE_UNIX_FD, and TQT_DBusUnixFd::fileDescriptor().

{
const dbus_int32_t cdata = unixFd.fileDescriptor();
dbus_message_iter_append_basic(it, DBUS_TYPE_UNIX_FD, &cdata);
}

+ Here is the call graph for this function: