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