Introduction
Profile service is a new subsysten that consists of two parts:
- profiled - daemon process that keeps track of current profile settings
- libprofile - client library for accessing the profile data.
Architecture
High level view to system utilizing profile service:
-
Profile daemon supports any number of clients
-
Application code includes libprofile.h
-
Application binary is linked against libprofile.so
-
Libprofile utilizes D-Bus to communicate with the server
-
Configuration data files define default profile values
-
Profile daemon accepts request and sends signals on dbus
-
Changes to profile values are stored to a file
-
As is the name of currently active profile
ASCII art diagram of the above:
+-------+ +-------+ +-------+
| | | | | |
| app 1 | | app 2 | | app N | 1: Applications
| | | | | |
--------------------------------- 2: libprofile.h
| |
| libprofile |
| | 3: API library
+-------------+
^ ^ ^
| | |
D-Bus 4: IPC communication
+--------+ | | |
| static | v v v 5: Default values
| config | +----------+
| files |--->| |
+--------+ | profiled | 6:Server Process
| |
+----------+
^ ^
| |
| |
v v
+---------+ +---------+
| dynamic | | current | 7: Modified values
| config | | profile | 8: Active profile
| file | | file |
+---------+ +---------+
SVN
All source code is stored in subversion repository dms, subdirectory profiled.