[compiz] dbus introspection

Travis Watkins alleykat at gmail.com
Mon Feb 26 12:36:40 PST 2007


I've started work on a rewrite of sorts for the dbus plugin that
changes how it listens/responds to messages to make it possible to
generate introspection data. The main changes are registering every
plugin, screen, option, etc with dbus_connection_register_object_path
and using libxml2 to generate the introspection data. This more or
less works I just need to hook up the rest of the methods and signals
that the old plugin had and register/unregister plugins on
load/unload.

However, I have run into some problems while doing this due to the
design of the current dbus interface. Methods like get, set, and
getMetadata take/return different types depending on the situation and
getMetadata has a variable number of return values. Right now I'm
fudging this by lying and having the generated XML say all the
different types are strings and by adding in worthless precision of 1
to int metadata to make sure it's the same length as floats.

The real solution is to change the API to make it
introspection-friendly. Rather than make these changes and submit them
I thought it was be a good idea to ask what people thought a good
solution would be. The API would ideally have every method take/return
the same number and type of arguments no matter what.

Any thoughts?

-- 
Travis Watkins
http://www.realistanew.com


More information about the compiz mailing list