DBusMessageReader& DBusMessageReader::operator>>(std::vector >& m) { if (!isOk()) return *this; DBusMessageIter sub; DBusMessageIter ssub; bool n; const char* value; if (dbus_message_iter_get_arg_type(&it) == DBUS_TYPE_ARRAY) { dbus_message_iter_recurse(&it, &sub); while (dbus_message_iter_get_arg_type(&sub) == DBUS_TYPE_STRUCT) { dbus_message_iter_recurse(&sub, &ssub); dbus_message_iter_get_basic(&ssub, &n); dbus_message_iter_next(&ssub); dbus_message_iter_get_basic(&ssub, &value); dbus_message_iter_next(&ssub); m.push_back(make_pair(n,value)); printf("'%i' '%s'\n", n, value); printf(".\n"); if (!dbus_message_iter_has_next (&sub)) { break; } dbus_message_iter_next(&sub); } } dbus_message_iter_next(&it); return *this; }