TIVI-1924: Initial commit of IVI settings daemon.
[profile/ivi/settings-daemon.git] / settingsd.dox
1 /**
2  * @mainpage Settingsd - Tizen IVI Settings Daemon
3  *
4  *
5  *
6  * @section settingsd_main_sec settingsd
7  *
8  *
9  * @subsection config_sec Configuration
10  *
11  *
12  * @note Command line parameters have precedence over their
13  *       configuration file counterparts.
14  *
15  * @section plugins_sec Writing Settingsd Plugins
16  *
17  * All settingsd plugins must implement two functions with C linkage:
18  *
19  * @code
20  * extern "C" ivi::settings::plugin * make_settings();
21  * extern "C" void destroy_settings(ivi::settings::plugin *);
22  * @endcode
23  *
24  * Both functions must be exported from the plugin if compile- or
25  * link-time symbol hiding is enabled.  There is no need to export
26  * the plugin subclass itself since it will only be invoked through
27  * the @c ivi::settings::plugin base class.
28  *
29  * @subsection make_settings make_settings()
30  *
31  * The @c make_settings() function is a factory function that returns a
32  * pointer to an object that implements the @c ivi::settings::plugin
33  * interface (i.e. subclasses @c ivi::settings::plugin).  The settingsd
34  * plugin framework does not require @c ivi::settings::plugin
35  * instances to be allocated in a particular way, but one would
36  * typically create an instance using @c operator @c new().
37  *
38  * @see the @c ivi::settings::plugin abstract base class for further
39  *      documentation, including the required @c @#include directive.
40  *
41  * @subsection destroy_settings destroy_settings()
42  *
43  * The @c destroy_provider() function will be called by the settingsd
44  * plugin framework when it no longer needs the provider in
45  * question. The settingsd plugin framework does not require
46  * @c ivi::settings::plugin instances to be deallocated in a 
47  * particular way, but one would typically destroy instances using
48  * @c operator @c delete(), assuming it was created using @c operator
49  * @c new() in the plugin's @c make_settings() function.
50  *
51  * @subsection linking Link-time Dependencies
52  *
53  * Settingsd plugins must link against the settingsd library, @e e.g.
54  * @c libsettings on Unix-like platforms.
55  *
56  * @author Ossama Othman @<ossama.othman@@intel.com@>
57  */