src/cx/map.h

changeset 677
b09aae58bba4
parent 669
dce9b8450656
child 681
502105523db7
equal deleted inserted replaced
676:d0680a23d850 677:b09aae58bba4
35 */ 35 */
36 36
37 #ifndef UCX_MAP_H 37 #ifndef UCX_MAP_H
38 #define UCX_MAP_H 38 #define UCX_MAP_H
39 39
40 #include "common.h" 40 #include "collection.h"
41 #include "allocator.h"
42 #include "iterator.h"
43 #include "hash_key.h" 41 #include "hash_key.h"
44 42
45 #ifdef __cplusplus 43 #ifdef __cplusplus
46 extern "C" { 44 extern "C" {
47 #endif
48
49 #ifndef CX_STORE_POINTERS
50 /**
51 * Special constant used for creating collections that are storing pointers.
52 */
53 #define CX_STORE_POINTERS 0
54 #endif 45 #endif
55 46
56 /** Type for the UCX map. */ 47 /** Type for the UCX map. */
57 typedef struct cx_map_s CxMap; 48 typedef struct cx_map_s CxMap;
58 49
71 /** The number of elements currently stored. */ 62 /** The number of elements currently stored. */
72 size_t size; 63 size_t size;
73 /** 64 /**
74 * The size of an element. 65 * The size of an element.
75 */ 66 */
76 size_t itemsize; 67 size_t item_size;
77 /** 68 /**
78 * True, if this map shall store pointers instead 69 * True, if this map shall store pointers instead
79 * of copies of objects. 70 * of copies of objects.
80 */ 71 */
81 bool store_pointers; 72 bool store_pointers;
203 * @see cxMapStoreObjects() 194 * @see cxMapStoreObjects()
204 */ 195 */
205 __attribute__((__nonnull__)) 196 __attribute__((__nonnull__))
206 static inline void cxMapStorePointers(CxMap *map) { 197 static inline void cxMapStorePointers(CxMap *map) {
207 map->store_pointers = true; 198 map->store_pointers = true;
208 map->itemsize = sizeof(void *); 199 map->item_size = sizeof(void *);
209 } 200 }
210 201
211 202
212 /** 203 /**
213 * Deallocates the memory of the specified map. 204 * Deallocates the memory of the specified map.

mercurial