tizen 2.4 release
[framework/appfw/aul-1.git] / tool / app_group_info.c
1 #include <stdio.h>
2 #include <stdlib.h>
3 #include "aul.h"
4
5 static void print_app_status(int status);
6
7 static void print_idle_info(void)
8 {
9         int cnt = 0;
10         int *pids = NULL;
11         int i;
12         char appid_buf[1024] = {0,};
13         int ret;
14
15         aul_app_group_get_idle_pids(&cnt, &pids);
16         printf("< Idle : %d >\n", cnt);
17         if (pids) {
18                 for (i = 0; i < cnt; ++i) {
19                         printf("---------------------------\n");
20                         printf("  pid : %d\n", pids[i]);
21                         ret = aul_app_get_appid_bypid(pids[i], appid_buf, sizeof(appid_buf) - 1);
22
23                         if (ret != AUL_R_OK) {
24                                 appid_buf[0] = '\0';
25                         }
26                         printf("  appid : %s\n", appid_buf);
27                 }
28
29                 free(pids);
30         }
31 }
32
33 static int print_info(void)
34 {
35         int *leader_pids = NULL;
36         int *member_pids = NULL;
37         int group_cnt = 0;
38         int member_cnt = 0;
39         int win_id = 0;
40         int group_num = 0;
41         int member_num = 0;
42         int app_status = -1;
43         int ret = 0;
44         char appid_buf[1024] = {0,};
45         char pkgid_buf[1024] = {0,};
46         int fg;
47
48         aul_app_group_get_leader_pids(&group_cnt, &leader_pids);
49         printf("App group count : %d\n", group_cnt);
50         printf("\n");
51
52         if(group_cnt == 0){
53                 printf("No app groups\n");
54                 goto FINISH;
55         }
56
57         for(group_num = 0; group_num < group_cnt; group_num++){
58                 aul_app_group_get_group_pids(leader_pids[group_num], &member_cnt, &member_pids);
59
60                 printf("< Group : %d >\n", group_num + 1);
61                 printf("member cnt : %d\n", member_cnt);
62                 printf("\n");
63
64                 for(member_num = 0; member_num < member_cnt; member_num++){
65                         ret = aul_app_get_appid_bypid(member_pids[member_num], appid_buf, sizeof(appid_buf) - 1);
66
67                         if(ret != AUL_R_OK){
68                                 appid_buf[0] = '\0';
69                         }
70
71                         ret = aul_app_get_pkgid_bypid(member_pids[member_num], pkgid_buf, sizeof(pkgid_buf) - 1);
72                         if(ret != AUL_R_OK){
73                                 pkgid_buf[0] = '\0';
74                         }
75
76                         win_id = aul_app_group_get_window(member_pids[member_num]);
77                         fg = aul_app_group_get_fg_flag(member_pids[member_num]);
78
79                         printf("--- member   : %d\n", member_num + 1);
80                         printf("  - app id   : %s\n", appid_buf);
81                         printf("  - pkg id   : %s\n", pkgid_buf);
82                         printf("  - pid      : %d\n", member_pids[member_num]);
83                         printf("  - win id   : %d\n", win_id);
84                         if (fg)
85                                 printf("  - fg group : TRUE\n");
86                         else
87                                 printf("  - fg group : FALSE\n");
88
89                         app_status = aul_app_get_status_bypid(member_pids[member_num]);
90                         print_app_status(app_status);
91                         printf("\n");
92                 }
93                 printf("==================================\n");
94                 printf("\n");
95         }
96
97 FINISH:
98
99         if(leader_pids != NULL)
100                 free(leader_pids);
101
102         if(leader_pids != NULL)
103                 free(member_pids);
104
105         return 0;
106 }
107
108 static void print_app_status(int status)
109 {
110         switch (status) {
111         case STATUS_LAUNCHING:
112                 printf("  - status   : STATUS_LAUNCHING \n");
113                 break;
114         case STATUS_CREATED:
115                 printf("  - status   : STATUS_CREATED \n");
116                 break;
117         case STATUS_FOCUS:
118                 printf("  - status   : STATUS_FOCUS \n");
119                 break;
120         case STATUS_VISIBLE:
121                 printf("  - status   : STATUS_VISIBLE \n");
122                 break;
123         case STATUS_BG:
124                 printf("  - status   : STATUS_BG \n");
125                 break;
126         case STATUS_DYING:
127                 printf("  - status   : STATUS_DYING \n");
128                 break;
129         case STATUS_HOME:
130                 printf("  - status   : STATUS_HOME \n");
131                 break;
132         case STATUS_NORESTART:
133                 printf("  - status   : STATUS_NORESTART \n");
134                 break;
135         default:
136                 printf("  - status error or unknown status\n");
137                 break;
138         };
139 }
140
141 int main(int argc, char** argv)
142 {
143         printf("\n");
144         printf("### App Group Informantion ###\n");
145         printf("\n");
146
147         print_info();
148         print_idle_info();
149
150         printf("### end ###\n");
151
152         return 0;
153 }