efl

Форк
0
/
ef_cache.c 
205 строк · 6.8 Кб
1
#ifdef HAVE_CONFIG_H
2
# include <config.h>
3
#endif
4

5
#include <stdio.h>
6

7
#include <Ecore.h>
8
#include <Efreet.h>
9

10
#include "ef_test.h"
11

12
#if 0
13
EAPI Efreet_Desktop *efreet_util_desktop_file_id_find(const char *file_id);
14

15
EAPI Eina_List *efreet_util_desktop_generic_name_glob_list(const char *glob);
16
EAPI Eina_List *efreet_util_desktop_comment_glob_list(const char *glob);
17
#endif
18

19
static Eina_Bool icon_cb = EINA_FALSE;
20
static Eina_Bool desktop_cb = EINA_FALSE;
21

22
static void
23
check(void)
24
{
25
   Eina_List *list;
26
   Efreet_Desktop *desktop, *desktop2;
27
   double start;
28
   const char *id;
29

30
   // EAPI char *efreet_util_path_to_file_id(const char *path);
31
   start = ecore_time_get();
32
   id = efreet_util_path_to_file_id("/usr/share/applications/gnome-panel.desktop");
33
   if (id)
34
     {
35
        printf("efreet_util_path_to_file_id(/usr/share/applications/gnome-panel.desktop): %s %.6f\n", id, (ecore_time_get() - start));
36
     }
37
   else
38
     printf("efreet_util_path_to_file_id(/usr/share/applications/gnome-panel.desktop): NULL %.6f\n", (ecore_time_get() - start));
39

40
   //EAPI Efreet_Desktop *efreet_util_desktop_name_find(const char *name);
41
   start = ecore_time_get();
42
   desktop = efreet_util_desktop_name_find("Evolution");
43
   if (desktop)
44
     printf("efreet_util_desktop_name_find(Evolution): %s %.6f\n", desktop->orig_path, (ecore_time_get() - start));
45
   else
46
     printf("efreet_util_desktop_name_find(Evolution): NULL %.6f\n", (ecore_time_get() - start));
47
   efreet_desktop_free(desktop);
48

49
   //EAPI Efreet_Desktop *efreet_util_desktop_generic_name_find(const char *generic_name);
50
   start = ecore_time_get();
51
   desktop = efreet_util_desktop_generic_name_find("Spreadsheet");
52
   if (desktop)
53
     printf("efreet_util_desktop_generic_name_find(Spreadsheet): %s %.6f\n", desktop->orig_path, (ecore_time_get() - start));
54
   else
55
     printf("efreet_util_desktop_generic_name_find(Spreadsheet): NULL %.6f\n", (ecore_time_get() - start));
56
   efreet_desktop_free(desktop);
57

58
   //EAPI Efreet_Desktop *efreet_util_desktop_wm_class_find(const char *wmname, const char *wmclass);
59
   start = ecore_time_get();
60
   desktop = efreet_util_desktop_wm_class_find("Firefox", NULL);
61
   if (desktop)
62
     printf("efreet_util_desktop_wm_class_find(Firefox): %s %.6f\n", desktop->orig_path, (ecore_time_get() - start));
63
   else
64
     printf("efreet_util_desktop_wm_class_find(Firefox): NULL %.6f\n", (ecore_time_get() - start));
65
   efreet_desktop_free(desktop);
66

67
   //EAPI Efreet_Desktop *efreet_util_desktop_exec_find(const char *exec);
68
   start = ecore_time_get();
69
   desktop = efreet_util_desktop_exec_find("/usr/bin/update-manager");
70
   if (desktop)
71
     printf("efreet_util_desktop_exec_find(update-manager): %s %.6f\n", desktop->orig_path, (ecore_time_get() - start));
72
   else
73
     printf("efreet_util_desktop_exec_find(update-manager): NULL %.6f\n", (ecore_time_get() - start));
74
   efreet_desktop_free(desktop);
75

76
   //EAPI Eina_List *efreet_util_desktop_name_glob_list(const char *glob);
77
   start = ecore_time_get();
78
   list = efreet_util_desktop_name_glob_list("Ubuntu*");
79
   if (list)
80
     {
81
        EINA_LIST_FREE(list, desktop)
82
          {
83
             printf("efreet_util_desktop_name_glob_list(Ubuntu*): %s\n", desktop->name);
84
             efreet_desktop_free(desktop);
85
          }
86
     }
87
   printf("time: %.6f\n", (ecore_time_get() - start));
88

89
   //EAPI Eina_List *efreet_util_desktop_mime_list(const char *mime);
90
   start = ecore_time_get();
91
   list = efreet_util_desktop_mime_list("application/ogg");
92
   if (list)
93
     {
94
        EINA_LIST_FREE(list, desktop)
95
          {
96
             printf("efreet_util_desktop_mime_list(application/ogg): %s\n", desktop->name);
97
             efreet_desktop_free(desktop);
98
          }
99
     }
100
   printf("time: %.6f\n", (ecore_time_get() - start));
101

102
   //EAPI Eina_List *efreet_util_desktop_exec_glob_list(const char *glob);
103
   start = ecore_time_get();
104
   list = efreet_util_desktop_exec_glob_list("*gnome*");
105
   if (list)
106
     {
107
        EINA_LIST_FREE(list, desktop)
108
          {
109
             printf("efreet_util_desktop_exec_glob_list(*gnome*): %s\n", desktop->exec);
110
             efreet_desktop_free(desktop);
111
          }
112
     }
113
   printf("time: %.6f\n", (ecore_time_get() - start));
114

115
   //EAPI Eina_List *efreet_util_desktop_categories_list(void);
116
   start = ecore_time_get();
117
   list = efreet_util_desktop_categories_list();
118
   if (list)
119
     {
120
        EINA_LIST_FREE(list, id)
121
          {
122
             printf("efreet_util_desktop_categories_list(): %s\n", id);
123
          }
124
     }
125
   printf("time: %.6f\n", (ecore_time_get() - start));
126

127
   //EAPI Eina_List *efreet_util_desktop_category_list(const char *category);
128
   start = ecore_time_get();
129
   list = efreet_util_desktop_category_list("Graphics");
130
   if (list)
131
     {
132
        EINA_LIST_FREE(list, desktop)
133
          {
134
             printf("efreet_util_desktop_category_list(Graphics): %s\n", desktop->name);
135
             efreet_desktop_free(desktop);
136
          }
137
     }
138
   printf("time: %.6f\n", (ecore_time_get() - start));
139

140
   desktop = efreet_desktop_get("/opt/google/chrome/google-chrome.desktop");
141
   if (desktop)
142
     printf("%s: %d %d\n", desktop->orig_path, desktop->ref, desktop->eet);
143
   desktop2 = efreet_desktop_new("/opt/google/chrome/google-chrome.desktop");
144
   if (desktop2)
145
     {
146
        printf("%s: %d %d\n", desktop2->orig_path, desktop2->ref, desktop2->eet);
147
        efreet_desktop_free(desktop2);
148
     }
149
   if (desktop)
150
     efreet_desktop_free(desktop);
151

152
   desktop = efreet_desktop_get("/usr/share/applications/firefox.desktop");
153
   if (desktop)
154
     printf("%s: %d %d\n", desktop->orig_path, desktop->ref, desktop->eet);
155
   desktop2 = efreet_desktop_new("/usr/share/applications/firefox.desktop");
156
   if (desktop2)
157
     {
158
        printf("%s: %d %d\n", desktop2->orig_path, desktop2->ref, desktop2->eet);
159
        efreet_desktop_free(desktop2);
160
     }
161
   if (desktop)
162
     efreet_desktop_free(desktop);
163
   fflush(stdout);
164
}
165

166
static Eina_Bool
167
icon_handler_cb(void *data EINA_UNUSED, int event_type EINA_UNUSED, void *event EINA_UNUSED)
168
{
169
   icon_cb = EINA_TRUE;
170
   if (icon_cb && desktop_cb)
171
     {
172
        check();
173
        ecore_main_loop_quit();
174
     }
175
   return ECORE_CALLBACK_PASS_ON;
176
}
177

178
static Eina_Bool
179
desktop_handler_cb(void *data EINA_UNUSED, int event_type EINA_UNUSED, void *event EINA_UNUSED)
180
{
181
   desktop_cb = EINA_TRUE;
182
   if (icon_cb && desktop_cb)
183
     {
184
        check();
185
        ecore_main_loop_quit();
186
     }
187
   return ECORE_CALLBACK_PASS_ON;
188
}
189

190
int
191
main(int argc EINA_UNUSED, char **argv EINA_UNUSED)
192
{
193
   Ecore_Event_Handler *icon_handler;
194
   Ecore_Event_Handler *desktop_handler;
195

196
   if (!efreet_init()) return 1;
197
   icon_handler = ecore_event_handler_add(EFREET_EVENT_ICON_CACHE_UPDATE, icon_handler_cb, NULL);
198
   desktop_handler = ecore_event_handler_add(EFREET_EVENT_DESKTOP_CACHE_UPDATE, desktop_handler_cb, NULL);
199
   check();
200
   ecore_main_loop_begin();
201
   ecore_event_handler_del(icon_handler);
202
   ecore_event_handler_del(desktop_handler);
203
   efreet_shutdown();
204
   return 0;
205
}
206

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.