MCS design proposal

Jannis Pohlmann jannis at xfce.org
Sun Jul 8 22:48:40 CEST 2007


Am Sun, 08 Jul 2007 21:32:23 +0200
schrieb Bo Lorentsen <bl at lue.dk>:

> Jannis Pohlmann wrote:
> 
> > The easiest way to explain the MCS model is this: Imagine all
> > properties are identified by an URI. AFAIK, GConf uses absolute URIs
> > for all properties while the MCS model makes it possible to define a
> > base URI (a "channel") which is then used for all property queries.
> Ahh, that makes sense too ...
> 
> But, are channel names organized as a path, like an URL ?
> 
> How about signaling, will it follow a tree like structure, like this 
> example :
> 
> root ->  my_group -> my_first_app
>                    -> my_second_app
> 
> Will I be able to listen to :
> 
> /root/my_group/my_first_app for a specifik app setting changes
> 
> /root/my_group              for a group of app's setting changes
> 
> /root                       for all groups

Yes. See the client example on

  http://www.foo-projects.org/~jannis/xfce4-mcs-design.html#client-example

All you would have to do is monitor all three channels or just
"/root" (and in the latter case do the filtering on your own) by
connecting to the "property-changed" signal of the XfceMcsChannel
objects.

> > The MCS concept makes it possible to apply restrictions (e.g. in
> > kiosk mode) to certain channels. 
> Ok, nice ... does this reflect on the D-Bus interface ?

Not yet, but except some kind of org.xfce.MCS#IsReadonly function I
don't see the need for additions to the API and the D-Bus interface.
Most of the kiosk mode would be implemented inside the MCS daemon (e.g.
based on a kiosk mode flag in the MCS daemon config and readonly flags
for all properties affected by the kiosk mode).

> One last thing, have anyone been thinking about some kind of channel 
> naming convention so all have a good idea of where to look or put
> settings ?

As long as we have not made a decision about whether to implement this
design or not there's really no need for naming conventions. We could
use anything from a Java-packages-like scheme 

  org.xfce.panel.plugins.Verve.Width

to an URL-like scheme

  /xfce/panel/plugins/verve-plugin/width

Let's decide about the MCS future first, before starting to discuss
less important details. 

> Ps: I have not been able to find some general doc. about the old MCS 
> system, except for API doc.

Use the source, Luke. There's no good MCS documentation that I know of.

  - Jannis
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: <http://mail.xfce.org/pipermail/xfce4-dev/attachments/20070708/60ac32e7/attachment.pgp>


More information about the Xfce4-dev mailing list