summaryrefslogtreecommitdiff
path: root/engine/dconf-engine-source-user.c
Commit message (Collapse)AuthorAgeFilesLines
* Updated FSF's addressDaniel Mustieles2014-01-311-3/+1
|
* Add missing "config.h" include everywhereRyan Lortie2013-11-241-0/+2
| | | | We ought to be including this from each .c file.
* DConfEngineUserSource: don't open on initRyan Lortie2012-07-121-5/+0
| | | | | Don't open the database file on _init(). This makes us match the system source better.
* engine/: source init can never failRyan Lortie2012-07-121-3/+1
| | | | | Stop returning a boolean here (since all of the sources always returned TRUE all the time anyway).
* massive Makefile reorganisationRyan Lortie2012-07-081-1/+1
| | | | | | | | | | Clean up the Makefiles and make them as similar as possible. Move CFLAGS to a common point of definition and stop using -I so much. Replace the 'dbus stub' with libdconf-mock.a in tests/. Fill in some stubs for future mock code for shm and gvdb (just to get things compiling for now).
* user source: change approach to shmRyan Lortie2012-07-081-12/+3
| | | | | | | | | | Use dconf_shm_is_flagged() instead of direct access. Change the semantics of what happens when we fail to open the shm file. We used to refuse to initialise at all in that case -- now we initialise but will try again every time to reopen ourselves. The error case will now be slower but closer to the correct behaviour.
* clean up and factor out the 'shm' codeRyan Lortie2012-07-081-56/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Remove the shm code from the engine and the service and put it in a separate convenience library in shm/. Remove the vestigial shmdir weirdness from the service (since shmdir is now always relative to XDG_RUNTIME_DIR and has been for some time). The purpose of this is so that dconf-engine can be properly unit-tested. dconf-engine now has five points of contact with the world (excluding the users of the engine themselves): - the DCONF_PROFILE environment variable - fopen() of profile files - shm - gvdb - dbus The environment variable is quite easily controlled. fopen() is intercepted in the engine testcase with a interpose of the libc symbol. With this commit now each of dbus, gvdb and shm are implemented in separate utility modules that can be mocked from the testcases.
* user source: use threadsafe init for shmdirRyan Lortie2012-07-061-2/+2
| | | | | | | | Otherwise it's possible for multiple threads to initialise it at the same time. Each thread will come up with the same value anyway, but it's a string, so we will leak all but one of them.
* Massively reorganise the client-sideRyan Lortie2012-07-021-0/+163
This commit represents a rather complete rethinking of DConfEngine. - the different kinds of sources are now properly abstracted. This will make landing NFS support substantially easier. - there is now substantially more internal documentation - DConfEngineMessage is gone and replaced with ordinary function calls to be implemented by the D-Bus glue code - the GDBus glue has been factored out and is now shared between the client library and GSettings - the "outstanding" queue logic from the GSettings backend is now in the engine - all changes now go through a single API that accepts a (new) DConfChangeset object. Currently this only supports the current operations (ie: setting and resetting). In the future this object will also support the directory operations required by GSettingsList and will be the basis for the new approach to implementing the 'delayed' GSettingsBackend (which will be the method by which those two concepts can co-exist). The (internal) API of the engine changed substantially. This caused the following: - the libdconf client library has been rewritten in C. Most of the complicated aspects of it (that made it more convenience to use Vala) are now gone. - during the rewrite of libdconf, the DConfClient API changed a bit to look more like a proper GObject. It now makes GIO-style use of thread-default main contexts and uses GObject signals for notifications (instead of hand-rolled callbacks). - the GSettings backend has been substantially simplified (the "outstanding" logic is gone). No externally-visible changes. - the dbus-1 backend has taken a copy of the old engine code for now until it can be ported to the new engine and sufficiently tested. No externally-visible changes. - the dconf commandline tool and dconf-editor required minor changes to adjust to the DConfClient API changes There is a substantial amount of cleaning up and finishing of work to be done. There are many stubs remaining. There are likely still a large number of bugs.