config daemon/library for 4.6

Brian J. Tarricone bjt23 at cornell.edu
Wed Sep 5 07:06:58 CEST 2007


On Tue, 4 Sep 2007 13:26:22 -0400 Erik Harrison wrote:

> On 9/4/07, Brian J. Tarricone <bjt23 at cornell.edu> wrote:
>
> > 7.  I plan on adding a simple client-side transaction type thing
[...]
> 
> In previous discussions, no one has actually come up with a use for
> transactions, just that they can imagine wanting them for
> completeness, or in some vague future. If no one needs it why
> implement a finicky half solution?

Yeah, good call.  If there's a need for it, it can be implemented
properly later.

I just added a GetAll() method to get all properties in a given channel
(the idea being an app will grab all settings it cares about in one go
on startup to avoid a bunch of round-trips).  A SetMultiple() method
might make some sense; client-side transactions could be implemented
using it, and, assuming the config store backend is implemented
properly, even the daemon crashing would ensure either all or none of
the changes in the transaction get committed.  But I'll leave that till
later if there's an actual need.

> > 8.  I'm planning on adding a special read-only backend that can be
> > used to seamlessly migrate over all old MCS settings, but I haven't
> > quite decided how I want to do it yet.
> 
> Would this put the migration up to the application, or would old MCS
> data become transparently available via Xfconf? I can see pros and
> cons to both. But I tend to prefer transparent migration, so there is
> the least dependence on independent developers to write migration
> code.

The idea is that it would be transparent; the MCS backend would
essentially act as an 'underlay' under the 'normal' backend.  But then
I'm not sure how they'd actually get migrated; obviously they'd migrate
if the app changed the settings; the new setting would get written to
the new config store, but others wouldn't.

So it might make sense to just have some special-purpose code in the
daemon that first checks for an old MCS settings file when a new
channel (that it hasn't seen yet) gets created, and then migrate all
the settings and remove the MCS file on the spot.

	-b




More information about the Xfce4-dev mailing list