DBusMessageReader& DBusMessageReader::operator>>(std::vector& s) { if (!isOk()) return *this; DBusMessageIter it; if (DBUS_TYPE_ARRAY != dbus_message_iter_get_arg_type(&it) || DBUS_TYPE_BYTE != dbus_message_iter_get_element_type(&it)) { close(); return *this; } DBusMessageIter sub; dbus_message_iter_recurse(&it, &sub); int length = dbus_message_iter_get_array_len(&sub); char* array; dbus_message_iter_get_fixed_array(&sub, &array, &length); s.assign(array, array+length); return *this; } ~