Hi Andrey,

yes, I know this thread (this was my starting point trying to construct the response for GetManagedObjects by myself).
I can use the same type you mention at
https://bugzilla.gnome.org/show_bug.cgi?id=747508
to cast_dynamic from a response of GetManagedObjects from another Dbus object. However I cannot use this type with Gio::DBus::MethodInvocation::return_value(const Glib::VariantContainerBase& parameters)
as it fails with an runtime assertion:
Type of return value is incorrect: expected '(a{oa{sa{sv}}})', got '(a{sa{sa{sv}}})''


Regards Johannes

Am 17.08.2016 um 09:29 schrieb Andrejs Hanins:
Hi,

    I had a very similar problem discussed here 
http://marc.info/?t=142780233100003&r=1&w=2

    Hope it helps!

BR, Andrey


On 08/17/2016 10:15 AM, Johannes Dohmen wrote:
Hi there.

I have a question regarding glibmm and its dbus implementation.
Does glibmm (directly) support an ObjectManager (org.freedesktop.DBus.ObjectManager) like 
Gio (I think) does? If not is there a different/better approach to answer a 
"GetManagedObjects" call I receive through dbus?

At the moment I try to provided an answer through a allback given by 
Gio::DBus::InterfaceVTable

However I cannot construct a valid answer and I am not sure if this is the 
proper way of doing it.
Anyway, I tried the following:

typedef std::map<Glib::ustring, map<Glib::ustring, std::map<Glib::ustring, 
Glib::VariantBase> > > managed_objects_t;
Glib::Variant<managed_objects_t> response = 
Glib::Variant<managed_objects_t>::create(tmp);
invocation->return_value(Glib::Variant<managed_objects_t>::create_tuple(response));

But when the callback is executed I get:
(process:22695): GLib-GIO-WARNING **: Type of return value is incorrect: 
expected '(a{oa{sa{sv}}})', got '(a{sa{sa{sv}}})''

I cannot change the first template argument of managed_objects_t to
Glib::VariantStringBase
which could hold an Object-path, but does not have operator< implemented 
(needed for std::map).

Background information:
I think I need this because bluez seems to rely on the GetManagedObjects method 
of the ObjectManager interface.

Thanks for your help

Johannes

(Re-send after joining the mailing list. Sorry for any inconvenience.)
_______________________________________________
gtkmm-list mailing list
gtkmm-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gtkmm-list




--
Johannes Dohmen

Amano Parking Europe N.V.
Uersfeld 24
52072 Aachen, Germany

tel       +49(0)241-53808930

e-mail:    johannes.doh...@amano.eu
_______________________________________________
gtkmm-list mailing list
gtkmm-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gtkmm-list

Reply via email to