Make freerdp_handle_signals return an int, return -1 and set errno to ENOSYS on Windo...
[platform/upstream/freerdp.git] / libfreerdp-cache / cache.c
1 /**
2  * FreeRDP: A Remote Desktop Protocol Client
3  * RDP Caches
4  *
5  * Copyright 2011 Marc-Andre Moreau <marcandre.moreau@gmail.com>
6  *
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  *     http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  */
19
20 #include <freerdp/utils/stream.h>
21 #include <freerdp/utils/memory.h>
22
23 #include <freerdp/cache/cache.h>
24
25 rdpCache* cache_new(rdpSettings* settings)
26 {
27         rdpCache* cache;
28
29         cache = (rdpCache*) xzalloc(sizeof(rdpCache));
30
31         if (cache != NULL)
32         {
33                 cache->settings = settings;
34                 cache->glyph = glyph_new(settings);
35                 cache->brush = brush_new(settings);
36                 cache->pointer = pointer_new(settings);
37                 cache->bitmap_v2 = bitmap_v2_new(settings);
38                 cache->offscreen = offscreen_new(settings);
39                 cache->color_table = color_table_new(settings);
40         }
41
42         return cache;
43 }
44
45 void cache_free(rdpCache* cache)
46 {
47         if (cache != NULL)
48         {
49                 glyph_free(cache->glyph);
50                 brush_free(cache->brush);
51                 pointer_free(cache->pointer);
52                 bitmap_v2_free(cache->bitmap_v2);
53                 offscreen_free(cache->offscreen);
54                 color_table_free(cache->color_table);
55                 xfree(cache);
56         }
57 }