Tizen 2.1 base
[platform/core/system/sync-agent.git] / doc / groups_event.dox
1 /**\r
2  @page event Event module\r
3 \r
4  @section Overview\r
5 Event module provides encapsulated IPC mechanism.<br>\r
6 Event which is sent from UI to engine, is based on socket, and Noti which is sent from engine to UI, is based on Inotify.<br>\r
7 \r
8  @image html overview_event.png "Software architecture of Event module"\r
9 \r
10 In order to enable customizing, external Event/Noti spec files are used,<br>\r
11 and path of the spec files in Target device should be specified in Framework configuration XML.<br>\r
12 Sync-agent Framework parses the spec files and performs requested IPC operation as defined in the spec files.\r
13 \r
14 Following example of spec file contents.\r
15 - eventconfig<br>\r
16 1, 1, 0, 30, addprofile<br>\r
17 2, 1, 0, 30, editprofile<br>\r
18 3, 1, 0, 30, deleteprofile<br>\r
19 4, 1, 0, 30, requestsync<br>\r
20 5, 1, 0, 30, cancelsync<br>\r
21 \r
22 - noticonfig<br>\r
23 1, 0, 0, 30, sessionprocess<br>\r
24 2, 0, 0, 30, processupdate<br>\r
25 \r
26 First column specifies unique index number,<br>\r
27 second column specifies type (sync or async, currently uses only sync type(1)),<br>\r
28 third column specifies related event/noti index (currently not in use(0)),<br>\r
29 fourth column specifies pending time (currently not in use, use any number),<br>\r
30 fifth column specifies description just for human readability.<br>\r
31 \r
32 For each Event and Noti, user should register callback function which will be invoked on reception.<br>\r
33 Those registration should be done before using IPC.\r
34 \r
35 In brief, user may go through next steps to activate Framework IPC system.<br>\r
36 -# Compose Event/Noti spec files. (Environment)\r
37 -# Register Event/Noti callback for each event. (Code)\r
38 -# Run Event/Noti listener. (Code)\r
39 \r
40 Sync-agent Framework provides standard IPC API set for OMA DM and OMA DS. (Refer to oma_xx_api.h)\r
41 \r
42 Event module has following sub implementations with each corresponding roles.<br>\r
43         - <b>Spec Manager</b><br>\r
44         Parses and loads event/noti spec files specified.<br>\r
45 \r
46         - <b>Event Accessor</b><br>\r
47         Provides APIs to access Event/Noti instance exchanging between UI and engine.<br>\r
48         Using those APIs, user can get/set data in Event/Noti instance.<br>\r
49 \r
50         - <b>Event Handler</b><br>\r
51         Creates Event listener and handles received Event as specified in spec files.<br>\r
52         Provides API for user to register Event callback executed on reception.<br>\r
53         Engine can dispatch Noti to UI through this module.<br>\r
54 \r
55         - <b>UI API</b><br>\r
56         Creates Noti listener and handles received Noti as specified in spec files.<br>\r
57         Provides API for user to register Noti callback executed on reception.<br>\r
58         UI can dispatch Event to engine through this module.<br>\r
59 */\r