1 /* readonlymap.c generated by valac 0.18.0, the Vala compiler
2 * generated from readonlymap.vala, do not modify */
6 * Copyright (C) 2007-2008 Jürg Billeter
8 * This library is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Lesser General Public
10 * License as published by the Free Software Foundation; either
11 * version 2.1 of the License, or (at your option) any later version.
13 * This library is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 * Lesser General Public License for more details.
18 * You should have received a copy of the GNU Lesser General Public
19 * License along with this library; if not, write to the Free Software
20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
23 * Jürg Billeter <j@bitron.ch>
27 #include <glib-object.h>
30 #define GEE_TYPE_TRAVERSABLE (gee_traversable_get_type ())
31 #define GEE_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversable))
32 #define GEE_IS_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_TRAVERSABLE))
33 #define GEE_TRAVERSABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversableIface))
35 typedef struct _GeeTraversable GeeTraversable;
36 typedef struct _GeeTraversableIface GeeTraversableIface;
38 #define GEE_TRAVERSABLE_TYPE_STREAM (gee_traversable_stream_get_type ())
40 #define GEE_TYPE_LAZY (gee_lazy_get_type ())
41 #define GEE_LAZY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LAZY, GeeLazy))
42 #define GEE_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_LAZY, GeeLazyClass))
43 #define GEE_IS_LAZY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LAZY))
44 #define GEE_IS_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_LAZY))
45 #define GEE_LAZY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_LAZY, GeeLazyClass))
47 typedef struct _GeeLazy GeeLazy;
48 typedef struct _GeeLazyClass GeeLazyClass;
50 #define GEE_TYPE_ITERATOR (gee_iterator_get_type ())
51 #define GEE_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERATOR, GeeIterator))
52 #define GEE_IS_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERATOR))
53 #define GEE_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERATOR, GeeIteratorIface))
55 typedef struct _GeeIterator GeeIterator;
56 typedef struct _GeeIteratorIface GeeIteratorIface;
58 #define GEE_TYPE_ITERABLE (gee_iterable_get_type ())
59 #define GEE_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERABLE, GeeIterable))
60 #define GEE_IS_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERABLE))
61 #define GEE_ITERABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERABLE, GeeIterableIface))
63 typedef struct _GeeIterable GeeIterable;
64 typedef struct _GeeIterableIface GeeIterableIface;
66 #define GEE_TYPE_MAP (gee_map_get_type ())
67 #define GEE_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_MAP, GeeMap))
68 #define GEE_IS_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_MAP))
69 #define GEE_MAP_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_MAP, GeeMapIface))
71 typedef struct _GeeMap GeeMap;
72 typedef struct _GeeMapIface GeeMapIface;
74 #define GEE_TYPE_MAP_ITERATOR (gee_map_iterator_get_type ())
75 #define GEE_MAP_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_MAP_ITERATOR, GeeMapIterator))
76 #define GEE_IS_MAP_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_MAP_ITERATOR))
77 #define GEE_MAP_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_MAP_ITERATOR, GeeMapIteratorIface))
79 typedef struct _GeeMapIterator GeeMapIterator;
80 typedef struct _GeeMapIteratorIface GeeMapIteratorIface;
82 #define GEE_TYPE_COLLECTION (gee_collection_get_type ())
83 #define GEE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_COLLECTION, GeeCollection))
84 #define GEE_IS_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_COLLECTION))
85 #define GEE_COLLECTION_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_COLLECTION, GeeCollectionIface))
87 typedef struct _GeeCollection GeeCollection;
88 typedef struct _GeeCollectionIface GeeCollectionIface;
90 #define GEE_TYPE_SET (gee_set_get_type ())
91 #define GEE_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_SET, GeeSet))
92 #define GEE_IS_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_SET))
93 #define GEE_SET_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_SET, GeeSetIface))
95 typedef struct _GeeSet GeeSet;
96 typedef struct _GeeSetIface GeeSetIface;
98 #define GEE_MAP_TYPE_ENTRY (gee_map_entry_get_type ())
99 #define GEE_MAP_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_MAP_TYPE_ENTRY, GeeMapEntry))
100 #define GEE_MAP_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_MAP_TYPE_ENTRY, GeeMapEntryClass))
101 #define GEE_MAP_IS_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_MAP_TYPE_ENTRY))
102 #define GEE_MAP_IS_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_MAP_TYPE_ENTRY))
103 #define GEE_MAP_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_MAP_TYPE_ENTRY, GeeMapEntryClass))
105 typedef struct _GeeMapEntry GeeMapEntry;
106 typedef struct _GeeMapEntryClass GeeMapEntryClass;
108 #define GEE_TYPE_READ_ONLY_MAP (gee_read_only_map_get_type ())
109 #define GEE_READ_ONLY_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_READ_ONLY_MAP, GeeReadOnlyMap))
110 #define GEE_READ_ONLY_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_READ_ONLY_MAP, GeeReadOnlyMapClass))
111 #define GEE_IS_READ_ONLY_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_READ_ONLY_MAP))
112 #define GEE_IS_READ_ONLY_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_READ_ONLY_MAP))
113 #define GEE_READ_ONLY_MAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_READ_ONLY_MAP, GeeReadOnlyMapClass))
115 typedef struct _GeeReadOnlyMap GeeReadOnlyMap;
116 typedef struct _GeeReadOnlyMapClass GeeReadOnlyMapClass;
117 typedef struct _GeeReadOnlyMapPrivate GeeReadOnlyMapPrivate;
118 #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
120 #define GEE_READ_ONLY_MAP_TYPE_MAP_ITERATOR (gee_read_only_map_map_iterator_get_type ())
121 #define GEE_READ_ONLY_MAP_MAP_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_READ_ONLY_MAP_TYPE_MAP_ITERATOR, GeeReadOnlyMapMapIterator))
122 #define GEE_READ_ONLY_MAP_MAP_ITERATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_READ_ONLY_MAP_TYPE_MAP_ITERATOR, GeeReadOnlyMapMapIteratorClass))
123 #define GEE_READ_ONLY_MAP_IS_MAP_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_READ_ONLY_MAP_TYPE_MAP_ITERATOR))
124 #define GEE_READ_ONLY_MAP_IS_MAP_ITERATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_READ_ONLY_MAP_TYPE_MAP_ITERATOR))
125 #define GEE_READ_ONLY_MAP_MAP_ITERATOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_READ_ONLY_MAP_TYPE_MAP_ITERATOR, GeeReadOnlyMapMapIteratorClass))
127 typedef struct _GeeReadOnlyMapMapIterator GeeReadOnlyMapMapIterator;
128 typedef struct _GeeReadOnlyMapMapIteratorClass GeeReadOnlyMapMapIteratorClass;
129 typedef struct _GeeReadOnlyMapMapIteratorPrivate GeeReadOnlyMapMapIteratorPrivate;
131 typedef gboolean (*GeeForallFunc) (gpointer g, void* user_data);
133 GEE_TRAVERSABLE_STREAM_YIELD,
134 GEE_TRAVERSABLE_STREAM_CONTINUE,
135 GEE_TRAVERSABLE_STREAM_END
136 } GeeTraversableStream;
138 typedef GeeTraversableStream (*GeeStreamFunc) (GeeTraversableStream state, GeeLazy* g, GeeLazy** lazy, void* user_data);
139 struct _GeeIteratorIface {
140 GTypeInterface parent_iface;
141 gboolean (*next) (GeeIterator* self);
142 gboolean (*has_next) (GeeIterator* self);
143 gpointer (*get) (GeeIterator* self);
144 void (*remove) (GeeIterator* self);
145 gboolean (*get_valid) (GeeIterator* self);
146 gboolean (*get_read_only) (GeeIterator* self);
149 typedef gpointer (*GeeFoldFunc) (gpointer g, gpointer a, void* user_data);
150 typedef gpointer (*GeeMapFunc) (gpointer g, void* user_data);
151 typedef gboolean (*GeePredicate) (gconstpointer g, void* user_data);
152 struct _GeeTraversableIface {
153 GTypeInterface parent_iface;
154 GType (*get_g_type) (GeeTraversable* self);
155 GBoxedCopyFunc (*get_g_dup_func) (GeeTraversable* self);
156 GDestroyNotify (*get_g_destroy_func) (GeeTraversable* self);
157 gboolean (*foreach) (GeeTraversable* self, GeeForallFunc f, void* f_target);
158 GeeIterator* (*stream) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeStreamFunc f, void* f_target, GDestroyNotify f_target_destroy_notify);
159 gpointer (*fold) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, void* f_target, gpointer seed);
160 GeeIterator* (*map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeMapFunc f, void* f_target);
161 GeeIterator* (*scan) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, void* f_target, gpointer seed);
162 GeeIterator* (*filter) (GeeTraversable* self, GeePredicate pred, void* pred_target, GDestroyNotify pred_target_destroy_notify);
163 GeeIterator* (*chop) (GeeTraversable* self, gint offset, gint length);
164 GType (*get_element_type) (GeeTraversable* self);
167 struct _GeeIterableIface {
168 GTypeInterface parent_iface;
169 GType (*get_g_type) (GeeIterable* self);
170 GBoxedCopyFunc (*get_g_dup_func) (GeeIterable* self);
171 GDestroyNotify (*get_g_destroy_func) (GeeIterable* self);
172 GeeIterator* (*iterator) (GeeIterable* self);
175 typedef gpointer (*GeeFoldMapFunc) (gconstpointer k, gconstpointer v, gpointer a, void* user_data);
176 typedef gboolean (*GeeForallMapFunc) (gconstpointer k, gconstpointer v, void* user_data);
177 struct _GeeMapIteratorIface {
178 GTypeInterface parent_iface;
179 GType (*get_k_type) (GeeMapIterator* self);
180 GBoxedCopyFunc (*get_k_dup_func) (GeeMapIterator* self);
181 GDestroyNotify (*get_k_destroy_func) (GeeMapIterator* self);
182 GType (*get_v_type) (GeeMapIterator* self);
183 GBoxedCopyFunc (*get_v_dup_func) (GeeMapIterator* self);
184 GDestroyNotify (*get_v_destroy_func) (GeeMapIterator* self);
185 gboolean (*next) (GeeMapIterator* self);
186 gboolean (*has_next) (GeeMapIterator* self);
187 gpointer (*get_key) (GeeMapIterator* self);
188 gpointer (*get_value) (GeeMapIterator* self);
189 void (*set_value) (GeeMapIterator* self, gconstpointer value);
190 void (*unset) (GeeMapIterator* self);
191 gpointer (*fold) (GeeMapIterator* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldMapFunc f, void* f_target, gpointer seed);
192 gboolean (*foreach) (GeeMapIterator* self, GeeForallMapFunc f, void* f_target);
193 gboolean (*get_valid) (GeeMapIterator* self);
194 gboolean (*get_mutable) (GeeMapIterator* self);
195 gboolean (*get_read_only) (GeeMapIterator* self);
198 struct _GeeCollectionIface {
199 GTypeInterface parent_iface;
200 GType (*get_g_type) (GeeCollection* self);
201 GBoxedCopyFunc (*get_g_dup_func) (GeeCollection* self);
202 GDestroyNotify (*get_g_destroy_func) (GeeCollection* self);
203 gboolean (*contains) (GeeCollection* self, gconstpointer item);
204 gboolean (*add) (GeeCollection* self, gconstpointer item);
205 gboolean (*remove) (GeeCollection* self, gconstpointer item);
206 void (*clear) (GeeCollection* self);
207 gboolean (*add_all) (GeeCollection* self, GeeCollection* collection);
208 gboolean (*contains_all) (GeeCollection* self, GeeCollection* collection);
209 gboolean (*remove_all) (GeeCollection* self, GeeCollection* collection);
210 gboolean (*retain_all) (GeeCollection* self, GeeCollection* collection);
211 gpointer* (*to_array) (GeeCollection* self, int* result_length1);
212 gint (*get_size) (GeeCollection* self);
213 gboolean (*get_is_empty) (GeeCollection* self);
214 gboolean (*get_read_only) (GeeCollection* self);
215 GeeCollection* (*get_read_only_view) (GeeCollection* self);
218 struct _GeeSetIface {
219 GTypeInterface parent_iface;
220 GType (*get_g_type) (GeeSet* self);
221 GBoxedCopyFunc (*get_g_dup_func) (GeeSet* self);
222 GDestroyNotify (*get_g_destroy_func) (GeeSet* self);
223 GeeSet* (*get_read_only_view) (GeeSet* self);
226 struct _GeeMapIface {
227 GTypeInterface parent_iface;
228 GType (*get_k_type) (GeeMap* self);
229 GBoxedCopyFunc (*get_k_dup_func) (GeeMap* self);
230 GDestroyNotify (*get_k_destroy_func) (GeeMap* self);
231 GType (*get_v_type) (GeeMap* self);
232 GBoxedCopyFunc (*get_v_dup_func) (GeeMap* self);
233 GDestroyNotify (*get_v_destroy_func) (GeeMap* self);
234 gboolean (*has_key) (GeeMap* self, gconstpointer key);
235 gboolean (*has) (GeeMap* self, gconstpointer key, gconstpointer value);
236 gpointer (*get) (GeeMap* self, gconstpointer key);
237 void (*set) (GeeMap* self, gconstpointer key, gconstpointer value);
238 gboolean (*unset) (GeeMap* self, gconstpointer key, gpointer* value);
239 void (*clear) (GeeMap* self);
240 GeeMapIterator* (*map_iterator) (GeeMap* self);
241 void (*set_all) (GeeMap* self, GeeMap* map);
242 gboolean (*unset_all) (GeeMap* self, GeeMap* map);
243 gboolean (*has_all) (GeeMap* self, GeeMap* map);
244 gint (*get_size) (GeeMap* self);
245 gboolean (*get_is_empty) (GeeMap* self);
246 gboolean (*get_read_only) (GeeMap* self);
247 GeeSet* (*get_keys) (GeeMap* self);
248 GeeCollection* (*get_values) (GeeMap* self);
249 GeeSet* (*get_entries) (GeeMap* self);
250 GeeMap* (*get_read_only_view) (GeeMap* self);
253 struct _GeeReadOnlyMap {
254 GObject parent_instance;
255 GeeReadOnlyMapPrivate * priv;
259 struct _GeeReadOnlyMapClass {
260 GObjectClass parent_class;
261 GeeMap* (*get_read_only_view) (GeeReadOnlyMap* self);
264 struct _GeeReadOnlyMapPrivate {
266 GBoxedCopyFunc k_dup_func;
267 GDestroyNotify k_destroy_func;
269 GBoxedCopyFunc v_dup_func;
270 GDestroyNotify v_destroy_func;
273 struct _GeeReadOnlyMapMapIterator {
274 GObject parent_instance;
275 GeeReadOnlyMapMapIteratorPrivate * priv;
276 GeeMapIterator* _iter;
279 struct _GeeReadOnlyMapMapIteratorClass {
280 GObjectClass parent_class;
283 struct _GeeReadOnlyMapMapIteratorPrivate {
285 GBoxedCopyFunc k_dup_func;
286 GDestroyNotify k_destroy_func;
288 GBoxedCopyFunc v_dup_func;
289 GDestroyNotify v_destroy_func;
293 static gpointer gee_read_only_map_parent_class = NULL;
294 static gpointer gee_read_only_map_map_iterator_parent_class = NULL;
295 static GeeMapIteratorIface* gee_read_only_map_map_iterator_gee_map_iterator_parent_iface = NULL;
296 static GeeTraversableIface* gee_read_only_map_gee_traversable_parent_iface = NULL;
297 static GeeIterableIface* gee_read_only_map_gee_iterable_parent_iface = NULL;
298 static GeeMapIface* gee_read_only_map_gee_map_parent_iface = NULL;
300 GType gee_traversable_stream_get_type (void) G_GNUC_CONST;
301 gpointer gee_lazy_ref (gpointer instance);
302 void gee_lazy_unref (gpointer instance);
303 GParamSpec* gee_param_spec_lazy (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
304 void gee_value_set_lazy (GValue* value, gpointer v_object);
305 void gee_value_take_lazy (GValue* value, gpointer v_object);
306 gpointer gee_value_get_lazy (const GValue* value);
307 GType gee_lazy_get_type (void) G_GNUC_CONST;
308 GType gee_iterator_get_type (void) G_GNUC_CONST;
309 GType gee_traversable_get_type (void) G_GNUC_CONST;
310 GType gee_iterable_get_type (void) G_GNUC_CONST;
311 GType gee_map_iterator_get_type (void) G_GNUC_CONST;
312 GType gee_collection_get_type (void) G_GNUC_CONST;
313 GType gee_set_get_type (void) G_GNUC_CONST;
314 GType gee_map_entry_get_type (void) G_GNUC_CONST;
315 GType gee_map_get_type (void) G_GNUC_CONST;
316 GType gee_read_only_map_get_type (void) G_GNUC_CONST;
317 #define GEE_READ_ONLY_MAP_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GEE_TYPE_READ_ONLY_MAP, GeeReadOnlyMapPrivate))
319 GEE_READ_ONLY_MAP_DUMMY_PROPERTY,
320 GEE_READ_ONLY_MAP_K_TYPE,
321 GEE_READ_ONLY_MAP_K_DUP_FUNC,
322 GEE_READ_ONLY_MAP_K_DESTROY_FUNC,
323 GEE_READ_ONLY_MAP_V_TYPE,
324 GEE_READ_ONLY_MAP_V_DUP_FUNC,
325 GEE_READ_ONLY_MAP_V_DESTROY_FUNC,
326 GEE_READ_ONLY_MAP_SIZE,
327 GEE_READ_ONLY_MAP_READ_ONLY,
328 GEE_READ_ONLY_MAP_KEYS,
329 GEE_READ_ONLY_MAP_VALUES,
330 GEE_READ_ONLY_MAP_ENTRIES,
331 GEE_READ_ONLY_MAP_READ_ONLY_VIEW,
332 GEE_READ_ONLY_MAP_KEY_TYPE,
333 GEE_READ_ONLY_MAP_VALUE_TYPE
335 GeeReadOnlyMap* gee_read_only_map_new (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeMap* map);
336 GeeReadOnlyMap* gee_read_only_map_construct (GType object_type, GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeMap* map);
337 static gboolean gee_read_only_map_real_has_key (GeeMap* base, gconstpointer key);
338 gboolean gee_map_has_key (GeeMap* self, gconstpointer key);
339 gboolean gee_read_only_map_contains (GeeReadOnlyMap* self, gconstpointer key);
340 static gboolean gee_read_only_map_real_has (GeeMap* base, gconstpointer key, gconstpointer value);
341 gboolean gee_map_has (GeeMap* self, gconstpointer key, gconstpointer value);
342 static gpointer gee_read_only_map_real_get (GeeMap* base, gconstpointer key);
343 gpointer gee_map_get (GeeMap* self, gconstpointer key);
344 static void gee_read_only_map_real_set (GeeMap* base, gconstpointer key, gconstpointer value);
345 static gboolean gee_read_only_map_real_unset (GeeMap* base, gconstpointer key, gpointer* value);
346 gboolean gee_read_only_map_remove (GeeReadOnlyMap* self, gconstpointer key, gpointer* value);
347 static void gee_read_only_map_real_clear (GeeMap* base);
348 static GeeMapIterator* gee_read_only_map_real_map_iterator (GeeMap* base);
349 GeeMapIterator* gee_map_map_iterator (GeeMap* self);
350 GeeReadOnlyMapMapIterator* gee_read_only_map_map_iterator_new (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeMapIterator* iterator);
351 GeeReadOnlyMapMapIterator* gee_read_only_map_map_iterator_construct (GType object_type, GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeMapIterator* iterator);
352 GType gee_read_only_map_map_iterator_get_type (void) G_GNUC_CONST;
353 static void gee_read_only_map_real_set_all (GeeMap* base, GeeMap* map);
354 static gboolean gee_read_only_map_real_unset_all (GeeMap* base, GeeMap* map);
355 gboolean gee_read_only_map_remove_all (GeeReadOnlyMap* self, GeeMap* map);
356 static gboolean gee_read_only_map_real_has_all (GeeMap* base, GeeMap* map);
357 gboolean gee_map_has_all (GeeMap* self, GeeMap* map);
358 gboolean gee_read_only_map_contains_all (GeeReadOnlyMap* self, GeeMap* map);
359 static GeeIterator* gee_read_only_map_real_iterator (GeeIterable* base);
360 GeeSet* gee_map_get_entries (GeeMap* self);
361 GeeIterator* gee_iterable_iterator (GeeIterable* self);
362 static gboolean gee_read_only_map_real_foreach (GeeTraversable* base, GeeForallFunc f, void* f_target);
363 gboolean gee_traversable_foreach (GeeTraversable* self, GeeForallFunc f, void* f_target);
364 static GeeIterator* gee_read_only_map_real_stream (GeeTraversable* base, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeStreamFunc f, void* f_target, GDestroyNotify f_target_destroy_notify);
365 GeeIterator* gee_traversable_stream (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeStreamFunc f, void* f_target, GDestroyNotify f_target_destroy_notify);
366 static GeeIterator* gee_read_only_map_real_filter (GeeTraversable* base, GeePredicate f, void* f_target, GDestroyNotify f_target_destroy_notify);
367 GeeIterator* gee_traversable_filter (GeeTraversable* self, GeePredicate pred, void* pred_target, GDestroyNotify pred_target_destroy_notify);
368 static GeeIterator* gee_read_only_map_real_chop (GeeTraversable* base, gint offset, gint length);
369 GeeIterator* gee_traversable_chop (GeeTraversable* self, gint offset, gint length);
370 gint gee_map_get_size (GeeMap* self);
371 gboolean gee_map_get_is_empty (GeeMap* self);
372 GeeSet* gee_map_get_keys (GeeMap* self);
373 GeeCollection* gee_map_get_values (GeeMap* self);
374 GeeMap* gee_read_only_map_get_read_only_view (GeeReadOnlyMap* self);
375 GType gee_read_only_map_get_key_type (GeeReadOnlyMap* self);
376 GType gee_read_only_map_get_value_type (GeeReadOnlyMap* self);
377 #define GEE_READ_ONLY_MAP_MAP_ITERATOR_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GEE_READ_ONLY_MAP_TYPE_MAP_ITERATOR, GeeReadOnlyMapMapIteratorPrivate))
379 GEE_READ_ONLY_MAP_MAP_ITERATOR_DUMMY_PROPERTY,
380 GEE_READ_ONLY_MAP_MAP_ITERATOR_K_TYPE,
381 GEE_READ_ONLY_MAP_MAP_ITERATOR_K_DUP_FUNC,
382 GEE_READ_ONLY_MAP_MAP_ITERATOR_K_DESTROY_FUNC,
383 GEE_READ_ONLY_MAP_MAP_ITERATOR_V_TYPE,
384 GEE_READ_ONLY_MAP_MAP_ITERATOR_V_DUP_FUNC,
385 GEE_READ_ONLY_MAP_MAP_ITERATOR_V_DESTROY_FUNC,
386 GEE_READ_ONLY_MAP_MAP_ITERATOR_READ_ONLY,
387 GEE_READ_ONLY_MAP_MAP_ITERATOR_MUTABLE,
388 GEE_READ_ONLY_MAP_MAP_ITERATOR_VALID
390 static gboolean gee_read_only_map_map_iterator_real_next (GeeMapIterator* base);
391 gboolean gee_map_iterator_next (GeeMapIterator* self);
392 static gboolean gee_read_only_map_map_iterator_real_has_next (GeeMapIterator* base);
393 gboolean gee_map_iterator_has_next (GeeMapIterator* self);
394 static gpointer gee_read_only_map_map_iterator_real_get_key (GeeMapIterator* base);
395 gpointer gee_map_iterator_get_key (GeeMapIterator* self);
396 static gpointer gee_read_only_map_map_iterator_real_get_value (GeeMapIterator* base);
397 gpointer gee_map_iterator_get_value (GeeMapIterator* self);
398 static void gee_read_only_map_map_iterator_real_set_value (GeeMapIterator* base, gconstpointer value);
399 static void gee_read_only_map_map_iterator_real_unset (GeeMapIterator* base);
400 gboolean gee_map_iterator_get_valid (GeeMapIterator* self);
401 static void gee_read_only_map_map_iterator_finalize (GObject* obj);
402 gboolean gee_map_iterator_get_read_only (GeeMapIterator* self);
403 gboolean gee_map_iterator_get_mutable (GeeMapIterator* self);
404 static void _vala_gee_read_only_map_map_iterator_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
405 static void _vala_gee_read_only_map_map_iterator_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
406 static void gee_read_only_map_finalize (GObject* obj);
407 gboolean gee_map_get_read_only (GeeMap* self);
408 static void _vala_gee_read_only_map_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
409 static void _vala_gee_read_only_map_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
413 * Constructs a read-only map that mirrors the content of the specified map.
415 * @param map the map to decorate.
417 static gpointer _g_object_ref0 (gpointer self) {
418 return self ? g_object_ref (self) : NULL;
422 GeeReadOnlyMap* gee_read_only_map_construct (GType object_type, GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeMap* map) {
423 GeeReadOnlyMap * self = NULL;
426 g_return_val_if_fail (map != NULL, NULL);
427 self = (GeeReadOnlyMap*) g_object_new (object_type, NULL);
428 self->priv->k_type = k_type;
429 self->priv->k_dup_func = k_dup_func;
430 self->priv->k_destroy_func = k_destroy_func;
431 self->priv->v_type = v_type;
432 self->priv->v_dup_func = v_dup_func;
433 self->priv->v_destroy_func = v_destroy_func;
435 _tmp1_ = _g_object_ref0 (_tmp0_);
436 _g_object_unref0 (self->_map);
442 GeeReadOnlyMap* gee_read_only_map_new (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeMap* map) {
443 return gee_read_only_map_construct (GEE_TYPE_READ_ONLY_MAP, k_type, k_dup_func, k_destroy_func, v_type, v_dup_func, v_destroy_func, map);
450 static gboolean gee_read_only_map_real_has_key (GeeMap* base, gconstpointer key) {
451 GeeReadOnlyMap * self;
452 gboolean result = FALSE;
454 gconstpointer _tmp1_;
455 gboolean _tmp2_ = FALSE;
456 self = (GeeReadOnlyMap*) base;
459 _tmp2_ = gee_map_has_key (_tmp0_, _tmp1_);
468 gboolean gee_read_only_map_contains (GeeReadOnlyMap* self, gconstpointer key) {
469 gboolean result = FALSE;
471 gconstpointer _tmp1_;
472 gboolean _tmp2_ = FALSE;
473 g_return_val_if_fail (self != NULL, FALSE);
476 _tmp2_ = gee_map_has_key (_tmp0_, _tmp1_);
485 static gboolean gee_read_only_map_real_has (GeeMap* base, gconstpointer key, gconstpointer value) {
486 GeeReadOnlyMap * self;
487 gboolean result = FALSE;
489 gconstpointer _tmp1_;
490 gconstpointer _tmp2_;
491 gboolean _tmp3_ = FALSE;
492 self = (GeeReadOnlyMap*) base;
496 _tmp3_ = gee_map_has (_tmp0_, _tmp1_, _tmp2_);
505 static gpointer gee_read_only_map_real_get (GeeMap* base, gconstpointer key) {
506 GeeReadOnlyMap * self;
507 gpointer result = NULL;
509 gconstpointer _tmp1_;
510 gpointer _tmp2_ = NULL;
511 self = (GeeReadOnlyMap*) base;
514 _tmp2_ = gee_map_get (_tmp0_, _tmp1_);
521 * Unimplemented method (read only map).
523 static void gee_read_only_map_real_set (GeeMap* base, gconstpointer key, gconstpointer value) {
524 GeeReadOnlyMap * self;
525 self = (GeeReadOnlyMap*) base;
526 g_assert_not_reached ();
531 * Unimplemented method (read only map).
533 static gboolean gee_read_only_map_real_unset (GeeMap* base, gconstpointer key, gpointer* value) {
534 GeeReadOnlyMap * self;
535 gpointer _vala_value = NULL;
536 gboolean result = FALSE;
537 self = (GeeReadOnlyMap*) base;
538 g_assert_not_reached ();
540 *value = _vala_value;
542 ((_vala_value == NULL) || (self->priv->v_destroy_func == NULL)) ? NULL : (_vala_value = (self->priv->v_destroy_func (_vala_value), NULL));
549 * Unimplemented method (read only map).
551 gboolean gee_read_only_map_remove (GeeReadOnlyMap* self, gconstpointer key, gpointer* value) {
552 gpointer _vala_value = NULL;
553 gboolean result = FALSE;
554 g_return_val_if_fail (self != NULL, FALSE);
555 g_assert_not_reached ();
557 *value = _vala_value;
559 ((_vala_value == NULL) || (self->priv->v_destroy_func == NULL)) ? NULL : (_vala_value = (self->priv->v_destroy_func (_vala_value), NULL));
566 * Unimplemented method (read only map).
568 static void gee_read_only_map_real_clear (GeeMap* base) {
569 GeeReadOnlyMap * self;
570 self = (GeeReadOnlyMap*) base;
571 g_assert_not_reached ();
578 static GeeMapIterator* gee_read_only_map_real_map_iterator (GeeMap* base) {
579 GeeReadOnlyMap * self;
580 GeeMapIterator* result = NULL;
582 GeeMapIterator* _tmp1_ = NULL;
583 GeeMapIterator* _tmp2_;
584 GeeReadOnlyMapMapIterator* _tmp3_;
585 GeeMapIterator* _tmp4_;
586 self = (GeeReadOnlyMap*) base;
588 _tmp1_ = gee_map_map_iterator (_tmp0_);
590 _tmp3_ = gee_read_only_map_map_iterator_new (self->priv->k_type, (GBoxedCopyFunc) self->priv->k_dup_func, self->priv->k_destroy_func, self->priv->v_type, (GBoxedCopyFunc) self->priv->v_dup_func, self->priv->v_destroy_func, _tmp2_);
591 _tmp4_ = (GeeMapIterator*) _tmp3_;
592 _g_object_unref0 (_tmp2_);
599 * Unimplemented method (read only map).
601 static void gee_read_only_map_real_set_all (GeeMap* base, GeeMap* map) {
602 GeeReadOnlyMap * self;
603 self = (GeeReadOnlyMap*) base;
604 g_return_if_fail (map != NULL);
605 g_assert_not_reached ();
610 * Unimplemented method (read only map).
612 static gboolean gee_read_only_map_real_unset_all (GeeMap* base, GeeMap* map) {
613 GeeReadOnlyMap * self;
614 gboolean result = FALSE;
615 self = (GeeReadOnlyMap*) base;
616 g_return_val_if_fail (map != NULL, FALSE);
617 g_assert_not_reached ();
623 * Unimplemented method (read only map).
625 gboolean gee_read_only_map_remove_all (GeeReadOnlyMap* self, GeeMap* map) {
626 gboolean result = FALSE;
627 g_return_val_if_fail (self != NULL, FALSE);
628 g_return_val_if_fail (map != NULL, FALSE);
629 g_assert_not_reached ();
637 static gboolean gee_read_only_map_real_has_all (GeeMap* base, GeeMap* map) {
638 GeeReadOnlyMap * self;
639 gboolean result = FALSE;
642 gboolean _tmp2_ = FALSE;
643 self = (GeeReadOnlyMap*) base;
644 g_return_val_if_fail (map != NULL, FALSE);
647 _tmp2_ = gee_map_has_all (_tmp0_, _tmp1_);
656 gboolean gee_read_only_map_contains_all (GeeReadOnlyMap* self, GeeMap* map) {
657 gboolean result = FALSE;
660 gboolean _tmp2_ = FALSE;
661 g_return_val_if_fail (self != NULL, FALSE);
662 g_return_val_if_fail (map != NULL, FALSE);
665 _tmp2_ = gee_map_has_all (_tmp0_, _tmp1_);
674 static GeeIterator* gee_read_only_map_real_iterator (GeeIterable* base) {
675 GeeReadOnlyMap * self;
676 GeeIterator* result = NULL;
680 GeeIterator* _tmp3_ = NULL;
682 self = (GeeReadOnlyMap*) base;
683 _tmp0_ = gee_map_get_entries ((GeeMap*) self);
686 _tmp3_ = gee_iterable_iterator ((GeeIterable*) _tmp2_);
688 _g_object_unref0 (_tmp2_);
697 static gboolean gee_read_only_map_real_foreach (GeeTraversable* base, GeeForallFunc f, void* f_target) {
698 GeeReadOnlyMap * self;
699 gboolean result = FALSE;
701 GeeForallFunc _tmp1_;
703 gboolean _tmp2_ = FALSE;
704 self = (GeeReadOnlyMap*) base;
707 _tmp1__target = f_target;
708 _tmp2_ = gee_traversable_foreach ((GeeTraversable*) _tmp0_, _tmp1_, _tmp1__target);
717 static GeeIterator* gee_read_only_map_real_stream (GeeTraversable* base, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeStreamFunc f, void* f_target, GDestroyNotify f_target_destroy_notify) {
718 GeeReadOnlyMap * self;
719 GeeIterator* result = NULL;
721 GeeStreamFunc _tmp1_;
723 GDestroyNotify _tmp1__target_destroy_notify;
724 GeeIterator* _tmp2_ = NULL;
725 self = (GeeReadOnlyMap*) base;
728 _tmp1__target = f_target;
729 _tmp1__target_destroy_notify = f_target_destroy_notify;
730 f_target_destroy_notify = NULL;
731 _tmp2_ = gee_traversable_stream ((GeeTraversable*) _tmp0_, a_type, (GBoxedCopyFunc) a_dup_func, a_destroy_func, _tmp1_, _tmp1__target, _tmp1__target_destroy_notify);
733 (f_target_destroy_notify == NULL) ? NULL : (f_target_destroy_notify (f_target), NULL);
736 f_target_destroy_notify = NULL;
741 static GeeIterator* gee_read_only_map_real_filter (GeeTraversable* base, GeePredicate f, void* f_target, GDestroyNotify f_target_destroy_notify) {
742 GeeReadOnlyMap * self;
743 GeeIterator* result = NULL;
747 GDestroyNotify _tmp1__target_destroy_notify;
748 GeeIterator* _tmp2_ = NULL;
749 self = (GeeReadOnlyMap*) base;
752 _tmp1__target = f_target;
753 _tmp1__target_destroy_notify = f_target_destroy_notify;
754 f_target_destroy_notify = NULL;
755 _tmp2_ = gee_traversable_filter ((GeeTraversable*) _tmp0_, _tmp1_, _tmp1__target, _tmp1__target_destroy_notify);
757 (f_target_destroy_notify == NULL) ? NULL : (f_target_destroy_notify (f_target), NULL);
760 f_target_destroy_notify = NULL;
765 static GeeIterator* gee_read_only_map_real_chop (GeeTraversable* base, gint offset, gint length) {
766 GeeReadOnlyMap * self;
767 GeeIterator* result = NULL;
771 GeeIterator* _tmp3_ = NULL;
772 self = (GeeReadOnlyMap*) base;
776 _tmp3_ = gee_traversable_chop ((GeeTraversable*) _tmp0_, _tmp1_, _tmp2_);
782 static gint gee_read_only_map_real_get_size (GeeMap* base) {
784 GeeReadOnlyMap* self;
788 self = (GeeReadOnlyMap*) base;
790 _tmp1_ = gee_map_get_size (_tmp0_);
797 static gboolean gee_read_only_map_real_get_is_empty (GeeMap* base) {
799 GeeReadOnlyMap* self;
803 self = (GeeReadOnlyMap*) base;
805 _tmp1_ = gee_map_get_is_empty (_tmp0_);
812 static gboolean gee_read_only_map_real_get_read_only (GeeMap* base) {
814 GeeReadOnlyMap* self;
815 self = (GeeReadOnlyMap*) base;
821 static GeeSet* gee_read_only_map_real_get_keys (GeeMap* base) {
823 GeeReadOnlyMap* self;
827 self = (GeeReadOnlyMap*) base;
829 _tmp1_ = gee_map_get_keys (_tmp0_);
836 static GeeCollection* gee_read_only_map_real_get_values (GeeMap* base) {
837 GeeCollection* result;
838 GeeReadOnlyMap* self;
840 GeeCollection* _tmp1_;
841 GeeCollection* _tmp2_;
842 self = (GeeReadOnlyMap*) base;
844 _tmp1_ = gee_map_get_values (_tmp0_);
851 static GeeSet* gee_read_only_map_real_get_entries (GeeMap* base) {
853 GeeReadOnlyMap* self;
857 self = (GeeReadOnlyMap*) base;
859 _tmp1_ = gee_map_get_entries (_tmp0_);
866 GeeMap* gee_read_only_map_get_read_only_view (GeeReadOnlyMap* self) {
867 g_return_val_if_fail (self != NULL, NULL);
868 return GEE_READ_ONLY_MAP_GET_CLASS (self)->get_read_only_view (self);
872 static GeeMap* gee_read_only_map_real_get_read_only_view (GeeReadOnlyMap* base) {
874 GeeReadOnlyMap* self;
877 _tmp0_ = _g_object_ref0 ((GeeMap*) self);
883 GType gee_read_only_map_get_key_type (GeeReadOnlyMap* self) {
885 g_return_val_if_fail (self != NULL, 0UL);
886 result = self->priv->k_type;
891 GType gee_read_only_map_get_value_type (GeeReadOnlyMap* self) {
893 g_return_val_if_fail (self != NULL, 0UL);
894 result = self->priv->v_type;
899 static GType gee_read_only_map_real_get_element_type (GeeTraversable* base) {
901 GeeReadOnlyMap* self;
902 self = (GeeReadOnlyMap*) base;
903 result = GEE_MAP_TYPE_ENTRY;
908 GeeReadOnlyMapMapIterator* gee_read_only_map_map_iterator_construct (GType object_type, GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeMapIterator* iterator) {
909 GeeReadOnlyMapMapIterator * self = NULL;
910 GeeMapIterator* _tmp0_;
911 GeeMapIterator* _tmp1_;
912 g_return_val_if_fail (iterator != NULL, NULL);
913 self = (GeeReadOnlyMapMapIterator*) g_object_new (object_type, NULL);
914 self->priv->k_type = k_type;
915 self->priv->k_dup_func = k_dup_func;
916 self->priv->k_destroy_func = k_destroy_func;
917 self->priv->v_type = v_type;
918 self->priv->v_dup_func = v_dup_func;
919 self->priv->v_destroy_func = v_destroy_func;
921 _tmp1_ = _g_object_ref0 (_tmp0_);
922 _g_object_unref0 (self->_iter);
923 self->_iter = _tmp1_;
928 GeeReadOnlyMapMapIterator* gee_read_only_map_map_iterator_new (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeMapIterator* iterator) {
929 return gee_read_only_map_map_iterator_construct (GEE_READ_ONLY_MAP_TYPE_MAP_ITERATOR, k_type, k_dup_func, k_destroy_func, v_type, v_dup_func, v_destroy_func, iterator);
933 static gboolean gee_read_only_map_map_iterator_real_next (GeeMapIterator* base) {
934 GeeReadOnlyMapMapIterator * self;
935 gboolean result = FALSE;
936 GeeMapIterator* _tmp0_;
937 gboolean _tmp1_ = FALSE;
938 self = (GeeReadOnlyMapMapIterator*) base;
939 _tmp0_ = self->_iter;
940 _tmp1_ = gee_map_iterator_next (_tmp0_);
946 static gboolean gee_read_only_map_map_iterator_real_has_next (GeeMapIterator* base) {
947 GeeReadOnlyMapMapIterator * self;
948 gboolean result = FALSE;
949 GeeMapIterator* _tmp0_;
950 gboolean _tmp1_ = FALSE;
951 self = (GeeReadOnlyMapMapIterator*) base;
952 _tmp0_ = self->_iter;
953 _tmp1_ = gee_map_iterator_has_next (_tmp0_);
959 static gpointer gee_read_only_map_map_iterator_real_get_key (GeeMapIterator* base) {
960 GeeReadOnlyMapMapIterator * self;
961 gpointer result = NULL;
962 GeeMapIterator* _tmp0_;
963 gpointer _tmp1_ = NULL;
964 self = (GeeReadOnlyMapMapIterator*) base;
965 _tmp0_ = self->_iter;
966 _tmp1_ = gee_map_iterator_get_key (_tmp0_);
972 static gpointer gee_read_only_map_map_iterator_real_get_value (GeeMapIterator* base) {
973 GeeReadOnlyMapMapIterator * self;
974 gpointer result = NULL;
975 GeeMapIterator* _tmp0_;
976 gpointer _tmp1_ = NULL;
977 self = (GeeReadOnlyMapMapIterator*) base;
978 _tmp0_ = self->_iter;
979 _tmp1_ = gee_map_iterator_get_value (_tmp0_);
985 static void gee_read_only_map_map_iterator_real_set_value (GeeMapIterator* base, gconstpointer value) {
986 GeeReadOnlyMapMapIterator * self;
987 self = (GeeReadOnlyMapMapIterator*) base;
988 g_assert_not_reached ();
992 static void gee_read_only_map_map_iterator_real_unset (GeeMapIterator* base) {
993 GeeReadOnlyMapMapIterator * self;
994 self = (GeeReadOnlyMapMapIterator*) base;
995 g_assert_not_reached ();
999 static gboolean gee_read_only_map_map_iterator_real_get_read_only (GeeMapIterator* base) {
1001 GeeReadOnlyMapMapIterator* self;
1002 self = (GeeReadOnlyMapMapIterator*) base;
1008 static gboolean gee_read_only_map_map_iterator_real_get_mutable (GeeMapIterator* base) {
1010 GeeReadOnlyMapMapIterator* self;
1011 self = (GeeReadOnlyMapMapIterator*) base;
1017 static gboolean gee_read_only_map_map_iterator_real_get_valid (GeeMapIterator* base) {
1019 GeeReadOnlyMapMapIterator* self;
1020 GeeMapIterator* _tmp0_;
1023 self = (GeeReadOnlyMapMapIterator*) base;
1024 _tmp0_ = self->_iter;
1025 _tmp1_ = gee_map_iterator_get_valid (_tmp0_);
1032 static void gee_read_only_map_map_iterator_class_init (GeeReadOnlyMapMapIteratorClass * klass) {
1033 gee_read_only_map_map_iterator_parent_class = g_type_class_peek_parent (klass);
1034 g_type_class_add_private (klass, sizeof (GeeReadOnlyMapMapIteratorPrivate));
1035 G_OBJECT_CLASS (klass)->get_property = _vala_gee_read_only_map_map_iterator_get_property;
1036 G_OBJECT_CLASS (klass)->set_property = _vala_gee_read_only_map_map_iterator_set_property;
1037 G_OBJECT_CLASS (klass)->finalize = gee_read_only_map_map_iterator_finalize;
1038 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_READ_ONLY_MAP_MAP_ITERATOR_K_TYPE, g_param_spec_gtype ("k-type", "type", "type", G_TYPE_NONE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
1039 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_READ_ONLY_MAP_MAP_ITERATOR_K_DUP_FUNC, g_param_spec_pointer ("k-dup-func", "dup func", "dup func", G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
1040 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_READ_ONLY_MAP_MAP_ITERATOR_K_DESTROY_FUNC, g_param_spec_pointer ("k-destroy-func", "destroy func", "destroy func", G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
1041 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_READ_ONLY_MAP_MAP_ITERATOR_V_TYPE, g_param_spec_gtype ("v-type", "type", "type", G_TYPE_NONE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
1042 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_READ_ONLY_MAP_MAP_ITERATOR_V_DUP_FUNC, g_param_spec_pointer ("v-dup-func", "dup func", "dup func", G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
1043 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_READ_ONLY_MAP_MAP_ITERATOR_V_DESTROY_FUNC, g_param_spec_pointer ("v-destroy-func", "destroy func", "destroy func", G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
1044 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_READ_ONLY_MAP_MAP_ITERATOR_READ_ONLY, g_param_spec_boolean ("read-only", "read-only", "read-only", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
1045 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_READ_ONLY_MAP_MAP_ITERATOR_MUTABLE, g_param_spec_boolean ("mutable", "mutable", "mutable", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
1046 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_READ_ONLY_MAP_MAP_ITERATOR_VALID, g_param_spec_boolean ("valid", "valid", "valid", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
1050 static GType gee_read_only_map_map_iterator_gee_map_iterator_get_k_type (GeeReadOnlyMapMapIterator* self) {
1051 return self->priv->k_type;
1055 static GBoxedCopyFunc gee_read_only_map_map_iterator_gee_map_iterator_get_k_dup_func (GeeReadOnlyMapMapIterator* self) {
1056 return self->priv->k_dup_func;
1060 static GDestroyNotify gee_read_only_map_map_iterator_gee_map_iterator_get_k_destroy_func (GeeReadOnlyMapMapIterator* self) {
1061 return self->priv->k_destroy_func;
1065 static GType gee_read_only_map_map_iterator_gee_map_iterator_get_v_type (GeeReadOnlyMapMapIterator* self) {
1066 return self->priv->v_type;
1070 static GBoxedCopyFunc gee_read_only_map_map_iterator_gee_map_iterator_get_v_dup_func (GeeReadOnlyMapMapIterator* self) {
1071 return self->priv->v_dup_func;
1075 static GDestroyNotify gee_read_only_map_map_iterator_gee_map_iterator_get_v_destroy_func (GeeReadOnlyMapMapIterator* self) {
1076 return self->priv->v_destroy_func;
1080 static void gee_read_only_map_map_iterator_gee_map_iterator_interface_init (GeeMapIteratorIface * iface) {
1081 gee_read_only_map_map_iterator_gee_map_iterator_parent_iface = g_type_interface_peek_parent (iface);
1082 iface->next = (gboolean (*)(GeeMapIterator*)) gee_read_only_map_map_iterator_real_next;
1083 iface->has_next = (gboolean (*)(GeeMapIterator*)) gee_read_only_map_map_iterator_real_has_next;
1084 iface->get_key = (gpointer (*)(GeeMapIterator*)) gee_read_only_map_map_iterator_real_get_key;
1085 iface->get_value = (gpointer (*)(GeeMapIterator*)) gee_read_only_map_map_iterator_real_get_value;
1086 iface->set_value = (void (*)(GeeMapIterator*, gconstpointer)) gee_read_only_map_map_iterator_real_set_value;
1087 iface->unset = (void (*)(GeeMapIterator*)) gee_read_only_map_map_iterator_real_unset;
1088 iface->get_k_type = (GType(*)(GeeMapIterator*)) gee_read_only_map_map_iterator_gee_map_iterator_get_k_type;
1089 iface->get_k_dup_func = (GBoxedCopyFunc(*)(GeeMapIterator*)) gee_read_only_map_map_iterator_gee_map_iterator_get_k_dup_func;
1090 iface->get_k_destroy_func = (GDestroyNotify(*)(GeeMapIterator*)) gee_read_only_map_map_iterator_gee_map_iterator_get_k_destroy_func;
1091 iface->get_v_type = (GType(*)(GeeMapIterator*)) gee_read_only_map_map_iterator_gee_map_iterator_get_v_type;
1092 iface->get_v_dup_func = (GBoxedCopyFunc(*)(GeeMapIterator*)) gee_read_only_map_map_iterator_gee_map_iterator_get_v_dup_func;
1093 iface->get_v_destroy_func = (GDestroyNotify(*)(GeeMapIterator*)) gee_read_only_map_map_iterator_gee_map_iterator_get_v_destroy_func;
1094 iface->get_read_only = gee_read_only_map_map_iterator_real_get_read_only;
1095 iface->get_mutable = gee_read_only_map_map_iterator_real_get_mutable;
1096 iface->get_valid = gee_read_only_map_map_iterator_real_get_valid;
1100 static void gee_read_only_map_map_iterator_instance_init (GeeReadOnlyMapMapIterator * self) {
1101 self->priv = GEE_READ_ONLY_MAP_MAP_ITERATOR_GET_PRIVATE (self);
1105 static void gee_read_only_map_map_iterator_finalize (GObject* obj) {
1106 GeeReadOnlyMapMapIterator * self;
1107 self = G_TYPE_CHECK_INSTANCE_CAST (obj, GEE_READ_ONLY_MAP_TYPE_MAP_ITERATOR, GeeReadOnlyMapMapIterator);
1108 _g_object_unref0 (self->_iter);
1109 G_OBJECT_CLASS (gee_read_only_map_map_iterator_parent_class)->finalize (obj);
1113 GType gee_read_only_map_map_iterator_get_type (void) {
1114 static volatile gsize gee_read_only_map_map_iterator_type_id__volatile = 0;
1115 if (g_once_init_enter (&gee_read_only_map_map_iterator_type_id__volatile)) {
1116 static const GTypeInfo g_define_type_info = { sizeof (GeeReadOnlyMapMapIteratorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_read_only_map_map_iterator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeReadOnlyMapMapIterator), 0, (GInstanceInitFunc) gee_read_only_map_map_iterator_instance_init, NULL };
1117 static const GInterfaceInfo gee_map_iterator_info = { (GInterfaceInitFunc) gee_read_only_map_map_iterator_gee_map_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
1118 GType gee_read_only_map_map_iterator_type_id;
1119 gee_read_only_map_map_iterator_type_id = g_type_register_static (G_TYPE_OBJECT, "GeeReadOnlyMapMapIterator", &g_define_type_info, 0);
1120 g_type_add_interface_static (gee_read_only_map_map_iterator_type_id, GEE_TYPE_MAP_ITERATOR, &gee_map_iterator_info);
1121 g_once_init_leave (&gee_read_only_map_map_iterator_type_id__volatile, gee_read_only_map_map_iterator_type_id);
1123 return gee_read_only_map_map_iterator_type_id__volatile;
1127 static void _vala_gee_read_only_map_map_iterator_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
1128 GeeReadOnlyMapMapIterator * self;
1129 self = G_TYPE_CHECK_INSTANCE_CAST (object, GEE_READ_ONLY_MAP_TYPE_MAP_ITERATOR, GeeReadOnlyMapMapIterator);
1130 switch (property_id) {
1131 case GEE_READ_ONLY_MAP_MAP_ITERATOR_READ_ONLY:
1132 g_value_set_boolean (value, gee_map_iterator_get_read_only ((GeeMapIterator*) self));
1134 case GEE_READ_ONLY_MAP_MAP_ITERATOR_MUTABLE:
1135 g_value_set_boolean (value, gee_map_iterator_get_mutable ((GeeMapIterator*) self));
1137 case GEE_READ_ONLY_MAP_MAP_ITERATOR_VALID:
1138 g_value_set_boolean (value, gee_map_iterator_get_valid ((GeeMapIterator*) self));
1141 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
1147 static void _vala_gee_read_only_map_map_iterator_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
1148 GeeReadOnlyMapMapIterator * self;
1149 self = G_TYPE_CHECK_INSTANCE_CAST (object, GEE_READ_ONLY_MAP_TYPE_MAP_ITERATOR, GeeReadOnlyMapMapIterator);
1150 switch (property_id) {
1151 case GEE_READ_ONLY_MAP_MAP_ITERATOR_K_TYPE:
1152 self->priv->k_type = g_value_get_gtype (value);
1154 case GEE_READ_ONLY_MAP_MAP_ITERATOR_K_DUP_FUNC:
1155 self->priv->k_dup_func = g_value_get_pointer (value);
1157 case GEE_READ_ONLY_MAP_MAP_ITERATOR_K_DESTROY_FUNC:
1158 self->priv->k_destroy_func = g_value_get_pointer (value);
1160 case GEE_READ_ONLY_MAP_MAP_ITERATOR_V_TYPE:
1161 self->priv->v_type = g_value_get_gtype (value);
1163 case GEE_READ_ONLY_MAP_MAP_ITERATOR_V_DUP_FUNC:
1164 self->priv->v_dup_func = g_value_get_pointer (value);
1166 case GEE_READ_ONLY_MAP_MAP_ITERATOR_V_DESTROY_FUNC:
1167 self->priv->v_destroy_func = g_value_get_pointer (value);
1170 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
1176 static void gee_read_only_map_class_init (GeeReadOnlyMapClass * klass) {
1177 gee_read_only_map_parent_class = g_type_class_peek_parent (klass);
1178 g_type_class_add_private (klass, sizeof (GeeReadOnlyMapPrivate));
1179 GEE_READ_ONLY_MAP_CLASS (klass)->get_read_only_view = gee_read_only_map_real_get_read_only_view;
1180 G_OBJECT_CLASS (klass)->get_property = _vala_gee_read_only_map_get_property;
1181 G_OBJECT_CLASS (klass)->set_property = _vala_gee_read_only_map_set_property;
1182 G_OBJECT_CLASS (klass)->finalize = gee_read_only_map_finalize;
1183 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_READ_ONLY_MAP_K_TYPE, g_param_spec_gtype ("k-type", "type", "type", G_TYPE_NONE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
1184 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_READ_ONLY_MAP_K_DUP_FUNC, g_param_spec_pointer ("k-dup-func", "dup func", "dup func", G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
1185 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_READ_ONLY_MAP_K_DESTROY_FUNC, g_param_spec_pointer ("k-destroy-func", "destroy func", "destroy func", G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
1186 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_READ_ONLY_MAP_V_TYPE, g_param_spec_gtype ("v-type", "type", "type", G_TYPE_NONE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
1187 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_READ_ONLY_MAP_V_DUP_FUNC, g_param_spec_pointer ("v-dup-func", "dup func", "dup func", G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
1188 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_READ_ONLY_MAP_V_DESTROY_FUNC, g_param_spec_pointer ("v-destroy-func", "destroy func", "destroy func", G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
1192 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_READ_ONLY_MAP_SIZE, g_param_spec_int ("size", "size", "size", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
1196 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_READ_ONLY_MAP_READ_ONLY, g_param_spec_boolean ("read-only", "read-only", "read-only", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
1200 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_READ_ONLY_MAP_KEYS, g_param_spec_object ("keys", "keys", "keys", GEE_TYPE_SET, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
1204 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_READ_ONLY_MAP_VALUES, g_param_spec_object ("values", "values", "values", GEE_TYPE_COLLECTION, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
1208 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_READ_ONLY_MAP_ENTRIES, g_param_spec_object ("entries", "entries", "entries", GEE_TYPE_SET, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
1209 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_READ_ONLY_MAP_READ_ONLY_VIEW, g_param_spec_object ("read-only-view", "read-only-view", "read-only-view", GEE_TYPE_MAP, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
1213 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_READ_ONLY_MAP_KEY_TYPE, g_param_spec_gtype ("key-type", "key-type", "key-type", G_TYPE_NONE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
1217 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_READ_ONLY_MAP_VALUE_TYPE, g_param_spec_gtype ("value-type", "value-type", "value-type", G_TYPE_NONE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
1221 static GType gee_read_only_map_gee_traversable_get_g_type (GeeReadOnlyMap* self) {
1222 return GEE_MAP_TYPE_ENTRY;
1226 static GBoxedCopyFunc gee_read_only_map_gee_traversable_get_g_dup_func (GeeReadOnlyMap* self) {
1227 return g_object_ref;
1231 static GDestroyNotify gee_read_only_map_gee_traversable_get_g_destroy_func (GeeReadOnlyMap* self) {
1232 return g_object_unref;
1236 static void gee_read_only_map_gee_traversable_interface_init (GeeTraversableIface * iface) {
1237 gee_read_only_map_gee_traversable_parent_iface = g_type_interface_peek_parent (iface);
1238 iface->foreach = (gboolean (*)(GeeTraversable*, GeeForallFunc, void*)) gee_read_only_map_real_foreach;
1239 iface->stream = (GeeIterator* (*)(GeeTraversable*, GType, GBoxedCopyFunc, GDestroyNotify, GeeStreamFunc, void*, GDestroyNotify)) gee_read_only_map_real_stream;
1240 iface->filter = (GeeIterator* (*)(GeeTraversable*, GeePredicate, void*, GDestroyNotify)) gee_read_only_map_real_filter;
1241 iface->chop = (GeeIterator* (*)(GeeTraversable*, gint, gint)) gee_read_only_map_real_chop;
1242 iface->get_g_type = (GType(*)(GeeTraversable*)) gee_read_only_map_gee_traversable_get_g_type;
1243 iface->get_g_dup_func = (GBoxedCopyFunc(*)(GeeTraversable*)) gee_read_only_map_gee_traversable_get_g_dup_func;
1244 iface->get_g_destroy_func = (GDestroyNotify(*)(GeeTraversable*)) gee_read_only_map_gee_traversable_get_g_destroy_func;
1245 iface->get_element_type = gee_read_only_map_real_get_element_type;
1249 static GType gee_read_only_map_gee_iterable_get_g_type (GeeReadOnlyMap* self) {
1250 return GEE_MAP_TYPE_ENTRY;
1254 static GBoxedCopyFunc gee_read_only_map_gee_iterable_get_g_dup_func (GeeReadOnlyMap* self) {
1255 return g_object_ref;
1259 static GDestroyNotify gee_read_only_map_gee_iterable_get_g_destroy_func (GeeReadOnlyMap* self) {
1260 return g_object_unref;
1264 static void gee_read_only_map_gee_iterable_interface_init (GeeIterableIface * iface) {
1265 gee_read_only_map_gee_iterable_parent_iface = g_type_interface_peek_parent (iface);
1266 iface->iterator = (GeeIterator* (*)(GeeIterable*)) gee_read_only_map_real_iterator;
1267 iface->get_g_type = (GType(*)(GeeIterable*)) gee_read_only_map_gee_iterable_get_g_type;
1268 iface->get_g_dup_func = (GBoxedCopyFunc(*)(GeeIterable*)) gee_read_only_map_gee_iterable_get_g_dup_func;
1269 iface->get_g_destroy_func = (GDestroyNotify(*)(GeeIterable*)) gee_read_only_map_gee_iterable_get_g_destroy_func;
1273 static GType gee_read_only_map_gee_map_get_k_type (GeeReadOnlyMap* self) {
1274 return self->priv->k_type;
1278 static GBoxedCopyFunc gee_read_only_map_gee_map_get_k_dup_func (GeeReadOnlyMap* self) {
1279 return self->priv->k_dup_func;
1283 static GDestroyNotify gee_read_only_map_gee_map_get_k_destroy_func (GeeReadOnlyMap* self) {
1284 return self->priv->k_destroy_func;
1288 static GType gee_read_only_map_gee_map_get_v_type (GeeReadOnlyMap* self) {
1289 return self->priv->v_type;
1293 static GBoxedCopyFunc gee_read_only_map_gee_map_get_v_dup_func (GeeReadOnlyMap* self) {
1294 return self->priv->v_dup_func;
1298 static GDestroyNotify gee_read_only_map_gee_map_get_v_destroy_func (GeeReadOnlyMap* self) {
1299 return self->priv->v_destroy_func;
1303 static void gee_read_only_map_gee_map_interface_init (GeeMapIface * iface) {
1304 gee_read_only_map_gee_map_parent_iface = g_type_interface_peek_parent (iface);
1305 iface->has_key = (gboolean (*)(GeeMap*, gconstpointer)) gee_read_only_map_real_has_key;
1306 iface->has = (gboolean (*)(GeeMap*, gconstpointer, gconstpointer)) gee_read_only_map_real_has;
1307 iface->get = (gpointer (*)(GeeMap*, gconstpointer)) gee_read_only_map_real_get;
1308 iface->set = (void (*)(GeeMap*, gconstpointer, gconstpointer)) gee_read_only_map_real_set;
1309 iface->unset = (gboolean (*)(GeeMap*, gconstpointer, gpointer*)) gee_read_only_map_real_unset;
1310 iface->clear = (void (*)(GeeMap*)) gee_read_only_map_real_clear;
1311 iface->map_iterator = (GeeMapIterator* (*)(GeeMap*)) gee_read_only_map_real_map_iterator;
1312 iface->set_all = (void (*)(GeeMap*, GeeMap*)) gee_read_only_map_real_set_all;
1313 iface->unset_all = (gboolean (*)(GeeMap*, GeeMap*)) gee_read_only_map_real_unset_all;
1314 iface->has_all = (gboolean (*)(GeeMap*, GeeMap*)) gee_read_only_map_real_has_all;
1315 iface->get_k_type = (GType(*)(GeeMap*)) gee_read_only_map_gee_map_get_k_type;
1316 iface->get_k_dup_func = (GBoxedCopyFunc(*)(GeeMap*)) gee_read_only_map_gee_map_get_k_dup_func;
1317 iface->get_k_destroy_func = (GDestroyNotify(*)(GeeMap*)) gee_read_only_map_gee_map_get_k_destroy_func;
1318 iface->get_v_type = (GType(*)(GeeMap*)) gee_read_only_map_gee_map_get_v_type;
1319 iface->get_v_dup_func = (GBoxedCopyFunc(*)(GeeMap*)) gee_read_only_map_gee_map_get_v_dup_func;
1320 iface->get_v_destroy_func = (GDestroyNotify(*)(GeeMap*)) gee_read_only_map_gee_map_get_v_destroy_func;
1321 iface->get_size = gee_read_only_map_real_get_size;
1322 iface->get_is_empty = gee_read_only_map_real_get_is_empty;
1323 iface->get_read_only = gee_read_only_map_real_get_read_only;
1324 iface->get_keys = gee_read_only_map_real_get_keys;
1325 iface->get_values = gee_read_only_map_real_get_values;
1326 iface->get_entries = gee_read_only_map_real_get_entries;
1327 iface->get_read_only_view = (GeeMap* (*) (GeeMap *)) gee_read_only_map_get_read_only_view;
1331 static void gee_read_only_map_instance_init (GeeReadOnlyMap * self) {
1332 self->priv = GEE_READ_ONLY_MAP_GET_PRIVATE (self);
1336 static void gee_read_only_map_finalize (GObject* obj) {
1337 GeeReadOnlyMap * self;
1338 self = G_TYPE_CHECK_INSTANCE_CAST (obj, GEE_TYPE_READ_ONLY_MAP, GeeReadOnlyMap);
1339 _g_object_unref0 (self->_map);
1340 G_OBJECT_CLASS (gee_read_only_map_parent_class)->finalize (obj);
1345 * Read-only view for {@link Map} collections.
1347 * This class decorates any class which implements the {@link Map} interface
1348 * by making it read only. Any method which normally modify data will throw an
1353 GType gee_read_only_map_get_type (void) {
1354 static volatile gsize gee_read_only_map_type_id__volatile = 0;
1355 if (g_once_init_enter (&gee_read_only_map_type_id__volatile)) {
1356 static const GTypeInfo g_define_type_info = { sizeof (GeeReadOnlyMapClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_read_only_map_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeReadOnlyMap), 0, (GInstanceInitFunc) gee_read_only_map_instance_init, NULL };
1357 static const GInterfaceInfo gee_traversable_info = { (GInterfaceInitFunc) gee_read_only_map_gee_traversable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
1358 static const GInterfaceInfo gee_iterable_info = { (GInterfaceInitFunc) gee_read_only_map_gee_iterable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
1359 static const GInterfaceInfo gee_map_info = { (GInterfaceInitFunc) gee_read_only_map_gee_map_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
1360 GType gee_read_only_map_type_id;
1361 gee_read_only_map_type_id = g_type_register_static (G_TYPE_OBJECT, "GeeReadOnlyMap", &g_define_type_info, 0);
1362 g_type_add_interface_static (gee_read_only_map_type_id, GEE_TYPE_TRAVERSABLE, &gee_traversable_info);
1363 g_type_add_interface_static (gee_read_only_map_type_id, GEE_TYPE_ITERABLE, &gee_iterable_info);
1364 g_type_add_interface_static (gee_read_only_map_type_id, GEE_TYPE_MAP, &gee_map_info);
1365 g_once_init_leave (&gee_read_only_map_type_id__volatile, gee_read_only_map_type_id);
1367 return gee_read_only_map_type_id__volatile;
1371 static void _vala_gee_read_only_map_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
1372 GeeReadOnlyMap * self;
1373 self = G_TYPE_CHECK_INSTANCE_CAST (object, GEE_TYPE_READ_ONLY_MAP, GeeReadOnlyMap);
1374 switch (property_id) {
1375 case GEE_READ_ONLY_MAP_SIZE:
1376 g_value_set_int (value, gee_map_get_size ((GeeMap*) self));
1378 case GEE_READ_ONLY_MAP_READ_ONLY:
1379 g_value_set_boolean (value, gee_map_get_read_only ((GeeMap*) self));
1381 case GEE_READ_ONLY_MAP_KEYS:
1382 g_value_take_object (value, gee_map_get_keys ((GeeMap*) self));
1384 case GEE_READ_ONLY_MAP_VALUES:
1385 g_value_take_object (value, gee_map_get_values ((GeeMap*) self));
1387 case GEE_READ_ONLY_MAP_ENTRIES:
1388 g_value_take_object (value, gee_map_get_entries ((GeeMap*) self));
1390 case GEE_READ_ONLY_MAP_READ_ONLY_VIEW:
1391 g_value_take_object (value, gee_read_only_map_get_read_only_view (self));
1393 case GEE_READ_ONLY_MAP_KEY_TYPE:
1394 g_value_set_gtype (value, gee_read_only_map_get_key_type (self));
1396 case GEE_READ_ONLY_MAP_VALUE_TYPE:
1397 g_value_set_gtype (value, gee_read_only_map_get_value_type (self));
1400 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
1406 static void _vala_gee_read_only_map_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
1407 GeeReadOnlyMap * self;
1408 self = G_TYPE_CHECK_INSTANCE_CAST (object, GEE_TYPE_READ_ONLY_MAP, GeeReadOnlyMap);
1409 switch (property_id) {
1410 case GEE_READ_ONLY_MAP_K_TYPE:
1411 self->priv->k_type = g_value_get_gtype (value);
1413 case GEE_READ_ONLY_MAP_K_DUP_FUNC:
1414 self->priv->k_dup_func = g_value_get_pointer (value);
1416 case GEE_READ_ONLY_MAP_K_DESTROY_FUNC:
1417 self->priv->k_destroy_func = g_value_get_pointer (value);
1419 case GEE_READ_ONLY_MAP_V_TYPE:
1420 self->priv->v_type = g_value_get_gtype (value);
1422 case GEE_READ_ONLY_MAP_V_DUP_FUNC:
1423 self->priv->v_dup_func = g_value_get_pointer (value);
1425 case GEE_READ_ONLY_MAP_V_DESTROY_FUNC:
1426 self->priv->v_destroy_func = g_value_get_pointer (value);
1429 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);