tizen beta release
[profile/ivi/webkit-efl.git] / Source / WebKit / efl / ewk / ewk_cache.cpp
1 /*
2     Copyright (C) 2011 Samsung Electronics
3
4     This library is free software; you can redistribute it and/or
5     modify it under the terms of the GNU Library General Public
6     License as published by the Free Software Foundation; either
7     version 2 of the License, or (at your option) any later version.
8
9     This library is distributed in the hope that it will be useful,
10     but WITHOUT ANY WARRANTY; without even the implied warranty of
11     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12     Library General Public License for more details.
13
14     You should have received a copy of the GNU Library General Public License
15     along with this library; see the file COPYING.LIB.  If not, write to
16     the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
17     Boston, MA 02110-1301, USA.
18 */
19
20 #include "config.h"
21 #include "ewk_cache.h"
22
23 #include "FontCache.h"
24 #include "MemoryCache.h"
25 #include "PageCache.h"
26 #include "ewk_private.h"
27
28 #if ENABLE(TIZEN_CACHE_CONTROL)
29 Eina_Bool cacheEnable = true;
30 #endif
31
32 Eina_Bool ewk_cache_component_reset()
33 {
34 #if ENABLE(TIZEN_MEMORY_CONTROLLER)
35     WebCore::MemoryCache* componentCache = WebCore::memoryCache();
36     if (!componentCache)
37         return false;
38
39     if (!componentCache->disabled()) {
40         componentCache->setDisabled(true);
41         componentCache->setDisabled(false);
42     } else
43         return false;
44
45     return true;
46 #else
47     return false;
48 #endif
49 }
50
51 Eina_Bool ewk_cache_component_prune()
52 {
53 #if ENABLE(TIZEN_MEMORY_CONTROLLER)
54     WebCore::MemoryCache* cache = WebCore::memoryCache();
55     if (!cache)
56         return false;
57
58     cache->prune();
59     return true;
60 #else
61     return false;
62 #endif
63 }
64
65 Eina_Bool ewk_cache_font_invalidate()
66 {
67 #if ENABLE(TIZEN_MEMORY_CONTROLLER)
68     WebCore::FontCache* fontCache = WebCore::fontCache();
69     if (!fontCache)
70         return false;
71
72     fontCache->invalidate();
73
74     return true;
75 #else
76     return false;
77 #endif
78 }
79
80 Eina_Bool ewk_cache_page_release(int val)
81 {
82 #if ENABLE(TIZEN_MEMORY_CONTROLLER)
83     WebCore::PageCache* pageCache = WebCore::pageCache();
84     if (!pageCache)
85         return false;
86
87     pageCache->setCapacity(0);
88     pageCache->releaseAutoreleasedPagesNow();
89     pageCache->setCapacity(val);
90
91     return true;
92 #else
93     return false;
94 #endif
95 }
96
97 int ewk_cache_page_capacity_get()
98 {
99 #if ENABLE(TIZEN_MEMORY_CONTROLLER)
100     return WebCore::pageCache()->capacity();
101 #else
102     return 0;
103 #endif
104 }
105
106 void ewk_cache_page_capacity_set(int capacity)
107 {
108 #if ENABLE(TIZEN_MEMORY_CONTROLLER)
109     WebCore::pageCache()->setCapacity(capacity);
110 #endif
111 }
112
113 void ewk_cache_min_dead_bytes_set(unsigned val)
114 {
115 #if USE(SOUP)
116      ewk_cache_soup_min_dead_bytes_set(val);
117 #endif
118 }
119
120 unsigned ewk_cache_min_dead_bytes_get()
121 {
122 #if USE(SOUP)
123     return ewk_cache_soup_min_dead_bytes_get();
124 #else
125     return 0;
126 #endif
127 }
128
129 void ewk_cache_max_dead_bytes_set(unsigned val)
130 {
131 #if USE(SOUP)
132     ewk_cache_soup_min_dead_bytes_set(val);
133 #endif
134 }
135
136 unsigned ewk_cache_max_dead_bytes_get()
137 {
138 #if USE(SOUP)
139     return ewk_cache_soup_max_dead_bytes_get();
140 #else
141     return 0;
142 #endif
143 }
144
145 void ewk_cache_max_total_bytes_set(unsigned val)
146 {
147 #if USE(SOUP)
148     ewk_cache_soup_max_total_bytes_set(val);
149 #endif
150 }
151
152 unsigned ewk_cache_max_total_bytes_get()
153 {
154 #if USE(SOUP)
155     ewk_cache_soup_max_total_bytes_get();
156 #else
157     return 0;
158 #endif
159 }
160
161 void ewk_cache_control_set(Eina_Bool enable)
162 {
163 #if ENABLE(TIZEN_CACHE_CONTROL)
164     cacheEnable = enable;
165     ewk_settings_cache_enable_set(enable);
166 #endif
167 }
168
169 Eina_Bool ewk_cache_control_get()
170 {
171 #if ENABLE(TIZEN_CACHE_CONTROL)
172     return cacheEnable;
173 #else
174     return true;
175 #endif
176 }
177
178 Eina_Bool ewk_cache_init(const char* cachePath, Eina_Bool shared)
179 {
180 #if ENABLE(TIZEN_CACHE_CONTROL)
181     if (!ewk_cache_control_get())
182         return false;
183 #endif
184 #if USE(SOUP)
185     return ewk_cache_soup_init(cachePath, shared);
186 #else
187     return false;
188 #endif
189 }
190
191 Eina_Bool ewk_cache_load()
192 {
193 #if ENABLE(TIZEN_CACHE_CONTROL)
194     if (!ewk_cache_control_get())
195         return false;
196 #endif
197 #if USE(SOUP)
198     return ewk_cache_soup_load();
199 #else
200     return false;
201 #endif
202 }
203
204 Eina_Bool ewk_cache_dump()
205 {
206 #if ENABLE(TIZEN_CACHE_CONTROL)
207     if (!ewk_cache_control_get())
208         return false;
209 #endif
210 #if USE(SOUP)
211     return ewk_cache_soup_dump();
212 #else
213     return false;
214 #endif
215 }
216
217 Eina_Bool ewk_cache_flush()
218 {
219 #if USE(SOUP)
220     return ewk_cache_soup_flush();
221 #else
222     return false;
223 #endif
224 }
225
226 void ewk_cache_finalize()
227 {
228 #if USE(SOUP)
229     ewk_cache_soup_finalize();
230 #else
231     return false;
232 #endif
233 }
234
235 Eina_Bool ewk_cache_clear()
236 {
237 #if USE(SOUP)
238     return ewk_cache_soup_clear();
239 #else
240     return false;
241 #endif
242 }
243
244 Eina_Bool ewk_cache_max_size_set(unsigned int size)
245 {
246 #if USE(SOUP)
247     return ewk_cache_soup_max_size_set(size);
248 #else
249     return false;
250 #endif
251 }
252
253 unsigned int ewk_cache_max_size_get()
254 {
255 #if USE(SOUP)
256     return ewk_cache_soup_max_size_get();
257 #else
258     return 0;
259 #endif
260 }