1 /* abstractmultimap.c generated by valac 0.18.0, the Vala compiler
2 * generated from abstractmultimap.vala, do not modify */
4 /* abstractmultimap.vala
6 * Copyright (C) 2009 Ali Sabil
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 * Ali Sabil <ali.sabil@gmail.com>
24 * Didier 'Ptitjes Villevalois <ptitjes@free.fr>
28 #include <glib-object.h>
31 #define GEE_TYPE_MULTI_MAP (gee_multi_map_get_type ())
32 #define GEE_MULTI_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_MULTI_MAP, GeeMultiMap))
33 #define GEE_IS_MULTI_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_MULTI_MAP))
34 #define GEE_MULTI_MAP_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_MULTI_MAP, GeeMultiMapIface))
36 typedef struct _GeeMultiMap GeeMultiMap;
37 typedef struct _GeeMultiMapIface GeeMultiMapIface;
39 #define GEE_TYPE_TRAVERSABLE (gee_traversable_get_type ())
40 #define GEE_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversable))
41 #define GEE_IS_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_TRAVERSABLE))
42 #define GEE_TRAVERSABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversableIface))
44 typedef struct _GeeTraversable GeeTraversable;
45 typedef struct _GeeTraversableIface GeeTraversableIface;
47 #define GEE_TRAVERSABLE_TYPE_STREAM (gee_traversable_stream_get_type ())
49 #define GEE_TYPE_LAZY (gee_lazy_get_type ())
50 #define GEE_LAZY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LAZY, GeeLazy))
51 #define GEE_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_LAZY, GeeLazyClass))
52 #define GEE_IS_LAZY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LAZY))
53 #define GEE_IS_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_LAZY))
54 #define GEE_LAZY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_LAZY, GeeLazyClass))
56 typedef struct _GeeLazy GeeLazy;
57 typedef struct _GeeLazyClass GeeLazyClass;
59 #define GEE_TYPE_ITERATOR (gee_iterator_get_type ())
60 #define GEE_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERATOR, GeeIterator))
61 #define GEE_IS_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERATOR))
62 #define GEE_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERATOR, GeeIteratorIface))
64 typedef struct _GeeIterator GeeIterator;
65 typedef struct _GeeIteratorIface GeeIteratorIface;
67 #define GEE_TYPE_ITERABLE (gee_iterable_get_type ())
68 #define GEE_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERABLE, GeeIterable))
69 #define GEE_IS_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERABLE))
70 #define GEE_ITERABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERABLE, GeeIterableIface))
72 typedef struct _GeeIterable GeeIterable;
73 typedef struct _GeeIterableIface GeeIterableIface;
75 #define GEE_TYPE_COLLECTION (gee_collection_get_type ())
76 #define GEE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_COLLECTION, GeeCollection))
77 #define GEE_IS_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_COLLECTION))
78 #define GEE_COLLECTION_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_COLLECTION, GeeCollectionIface))
80 typedef struct _GeeCollection GeeCollection;
81 typedef struct _GeeCollectionIface GeeCollectionIface;
83 #define GEE_TYPE_SET (gee_set_get_type ())
84 #define GEE_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_SET, GeeSet))
85 #define GEE_IS_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_SET))
86 #define GEE_SET_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_SET, GeeSetIface))
88 typedef struct _GeeSet GeeSet;
89 typedef struct _GeeSetIface GeeSetIface;
91 #define GEE_TYPE_MULTI_SET (gee_multi_set_get_type ())
92 #define GEE_MULTI_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_MULTI_SET, GeeMultiSet))
93 #define GEE_IS_MULTI_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_MULTI_SET))
94 #define GEE_MULTI_SET_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_MULTI_SET, GeeMultiSetIface))
96 typedef struct _GeeMultiSet GeeMultiSet;
97 typedef struct _GeeMultiSetIface GeeMultiSetIface;
99 #define GEE_TYPE_MAP_ITERATOR (gee_map_iterator_get_type ())
100 #define GEE_MAP_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_MAP_ITERATOR, GeeMapIterator))
101 #define GEE_IS_MAP_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_MAP_ITERATOR))
102 #define GEE_MAP_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_MAP_ITERATOR, GeeMapIteratorIface))
104 typedef struct _GeeMapIterator GeeMapIterator;
105 typedef struct _GeeMapIteratorIface GeeMapIteratorIface;
107 #define GEE_TYPE_ABSTRACT_MULTI_MAP (gee_abstract_multi_map_get_type ())
108 #define GEE_ABSTRACT_MULTI_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_MULTI_MAP, GeeAbstractMultiMap))
109 #define GEE_ABSTRACT_MULTI_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_MULTI_MAP, GeeAbstractMultiMapClass))
110 #define GEE_IS_ABSTRACT_MULTI_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_MULTI_MAP))
111 #define GEE_IS_ABSTRACT_MULTI_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_MULTI_MAP))
112 #define GEE_ABSTRACT_MULTI_MAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_MULTI_MAP, GeeAbstractMultiMapClass))
114 typedef struct _GeeAbstractMultiMap GeeAbstractMultiMap;
115 typedef struct _GeeAbstractMultiMapClass GeeAbstractMultiMapClass;
116 typedef struct _GeeAbstractMultiMapPrivate GeeAbstractMultiMapPrivate;
118 #define GEE_TYPE_MAP (gee_map_get_type ())
119 #define GEE_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_MAP, GeeMap))
120 #define GEE_IS_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_MAP))
121 #define GEE_MAP_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_MAP, GeeMapIface))
123 typedef struct _GeeMap GeeMap;
124 typedef struct _GeeMapIface GeeMapIface;
126 #define GEE_MAP_TYPE_ENTRY (gee_map_entry_get_type ())
127 #define GEE_MAP_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_MAP_TYPE_ENTRY, GeeMapEntry))
128 #define GEE_MAP_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_MAP_TYPE_ENTRY, GeeMapEntryClass))
129 #define GEE_MAP_IS_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_MAP_TYPE_ENTRY))
130 #define GEE_MAP_IS_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_MAP_TYPE_ENTRY))
131 #define GEE_MAP_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_MAP_TYPE_ENTRY, GeeMapEntryClass))
133 typedef struct _GeeMapEntry GeeMapEntry;
134 typedef struct _GeeMapEntryClass GeeMapEntryClass;
135 #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
137 #define GEE_TYPE_ABSTRACT_COLLECTION (gee_abstract_collection_get_type ())
138 #define GEE_ABSTRACT_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection))
139 #define GEE_ABSTRACT_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollectionClass))
140 #define GEE_IS_ABSTRACT_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_COLLECTION))
141 #define GEE_IS_ABSTRACT_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_COLLECTION))
142 #define GEE_ABSTRACT_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollectionClass))
144 typedef struct _GeeAbstractCollection GeeAbstractCollection;
145 typedef struct _GeeAbstractCollectionClass GeeAbstractCollectionClass;
147 #define GEE_ABSTRACT_MULTI_MAP_TYPE_ALL_KEYS (gee_abstract_multi_map_all_keys_get_type ())
148 #define GEE_ABSTRACT_MULTI_MAP_ALL_KEYS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_ABSTRACT_MULTI_MAP_TYPE_ALL_KEYS, GeeAbstractMultiMapAllKeys))
149 #define GEE_ABSTRACT_MULTI_MAP_ALL_KEYS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_ABSTRACT_MULTI_MAP_TYPE_ALL_KEYS, GeeAbstractMultiMapAllKeysClass))
150 #define GEE_ABSTRACT_MULTI_MAP_IS_ALL_KEYS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_ABSTRACT_MULTI_MAP_TYPE_ALL_KEYS))
151 #define GEE_ABSTRACT_MULTI_MAP_IS_ALL_KEYS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_ABSTRACT_MULTI_MAP_TYPE_ALL_KEYS))
152 #define GEE_ABSTRACT_MULTI_MAP_ALL_KEYS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_ABSTRACT_MULTI_MAP_TYPE_ALL_KEYS, GeeAbstractMultiMapAllKeysClass))
154 typedef struct _GeeAbstractMultiMapAllKeys GeeAbstractMultiMapAllKeys;
155 typedef struct _GeeAbstractMultiMapAllKeysClass GeeAbstractMultiMapAllKeysClass;
157 #define GEE_ABSTRACT_MULTI_MAP_TYPE_VALUES (gee_abstract_multi_map_values_get_type ())
158 #define GEE_ABSTRACT_MULTI_MAP_VALUES(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_ABSTRACT_MULTI_MAP_TYPE_VALUES, GeeAbstractMultiMapValues))
159 #define GEE_ABSTRACT_MULTI_MAP_VALUES_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_ABSTRACT_MULTI_MAP_TYPE_VALUES, GeeAbstractMultiMapValuesClass))
160 #define GEE_ABSTRACT_MULTI_MAP_IS_VALUES(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_ABSTRACT_MULTI_MAP_TYPE_VALUES))
161 #define GEE_ABSTRACT_MULTI_MAP_IS_VALUES_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_ABSTRACT_MULTI_MAP_TYPE_VALUES))
162 #define GEE_ABSTRACT_MULTI_MAP_VALUES_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_ABSTRACT_MULTI_MAP_TYPE_VALUES, GeeAbstractMultiMapValuesClass))
164 typedef struct _GeeAbstractMultiMapValues GeeAbstractMultiMapValues;
165 typedef struct _GeeAbstractMultiMapValuesClass GeeAbstractMultiMapValuesClass;
167 #define GEE_ABSTRACT_MULTI_MAP_TYPE_MAPPING_ITERATOR (gee_abstract_multi_map_mapping_iterator_get_type ())
168 #define GEE_ABSTRACT_MULTI_MAP_MAPPING_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_ABSTRACT_MULTI_MAP_TYPE_MAPPING_ITERATOR, GeeAbstractMultiMapMappingIterator))
169 #define GEE_ABSTRACT_MULTI_MAP_MAPPING_ITERATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_ABSTRACT_MULTI_MAP_TYPE_MAPPING_ITERATOR, GeeAbstractMultiMapMappingIteratorClass))
170 #define GEE_ABSTRACT_MULTI_MAP_IS_MAPPING_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_ABSTRACT_MULTI_MAP_TYPE_MAPPING_ITERATOR))
171 #define GEE_ABSTRACT_MULTI_MAP_IS_MAPPING_ITERATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_ABSTRACT_MULTI_MAP_TYPE_MAPPING_ITERATOR))
172 #define GEE_ABSTRACT_MULTI_MAP_MAPPING_ITERATOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_ABSTRACT_MULTI_MAP_TYPE_MAPPING_ITERATOR, GeeAbstractMultiMapMappingIteratorClass))
174 typedef struct _GeeAbstractMultiMapMappingIterator GeeAbstractMultiMapMappingIterator;
175 typedef struct _GeeAbstractMultiMapMappingIteratorClass GeeAbstractMultiMapMappingIteratorClass;
177 #define GEE_ABSTRACT_MULTI_MAP_TYPE_MAP_ITERATOR (gee_abstract_multi_map_map_iterator_get_type ())
178 #define GEE_ABSTRACT_MULTI_MAP_MAP_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_ABSTRACT_MULTI_MAP_TYPE_MAP_ITERATOR, GeeAbstractMultiMapMapIterator))
179 #define GEE_ABSTRACT_MULTI_MAP_MAP_ITERATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_ABSTRACT_MULTI_MAP_TYPE_MAP_ITERATOR, GeeAbstractMultiMapMapIteratorClass))
180 #define GEE_ABSTRACT_MULTI_MAP_IS_MAP_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_ABSTRACT_MULTI_MAP_TYPE_MAP_ITERATOR))
181 #define GEE_ABSTRACT_MULTI_MAP_IS_MAP_ITERATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_ABSTRACT_MULTI_MAP_TYPE_MAP_ITERATOR))
182 #define GEE_ABSTRACT_MULTI_MAP_MAP_ITERATOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_ABSTRACT_MULTI_MAP_TYPE_MAP_ITERATOR, GeeAbstractMultiMapMapIteratorClass))
184 typedef struct _GeeAbstractMultiMapMapIterator GeeAbstractMultiMapMapIterator;
185 typedef struct _GeeAbstractMultiMapMapIteratorClass GeeAbstractMultiMapMapIteratorClass;
187 #define GEE_TYPE_READ_ONLY_MULTI_MAP (gee_read_only_multi_map_get_type ())
188 #define GEE_READ_ONLY_MULTI_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_READ_ONLY_MULTI_MAP, GeeReadOnlyMultiMap))
189 #define GEE_READ_ONLY_MULTI_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_READ_ONLY_MULTI_MAP, GeeReadOnlyMultiMapClass))
190 #define GEE_IS_READ_ONLY_MULTI_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_READ_ONLY_MULTI_MAP))
191 #define GEE_IS_READ_ONLY_MULTI_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_READ_ONLY_MULTI_MAP))
192 #define GEE_READ_ONLY_MULTI_MAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_READ_ONLY_MULTI_MAP, GeeReadOnlyMultiMapClass))
194 typedef struct _GeeReadOnlyMultiMap GeeReadOnlyMultiMap;
195 typedef struct _GeeReadOnlyMultiMapClass GeeReadOnlyMultiMapClass;
196 typedef struct _GeeAbstractCollectionPrivate GeeAbstractCollectionPrivate;
197 typedef struct _GeeAbstractMultiMapAllKeysPrivate GeeAbstractMultiMapAllKeysPrivate;
199 #define GEE_ABSTRACT_MULTI_MAP_TYPE_KEY_ITERATOR (gee_abstract_multi_map_key_iterator_get_type ())
200 #define GEE_ABSTRACT_MULTI_MAP_KEY_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_ABSTRACT_MULTI_MAP_TYPE_KEY_ITERATOR, GeeAbstractMultiMapKeyIterator))
201 #define GEE_ABSTRACT_MULTI_MAP_KEY_ITERATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_ABSTRACT_MULTI_MAP_TYPE_KEY_ITERATOR, GeeAbstractMultiMapKeyIteratorClass))
202 #define GEE_ABSTRACT_MULTI_MAP_IS_KEY_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_ABSTRACT_MULTI_MAP_TYPE_KEY_ITERATOR))
203 #define GEE_ABSTRACT_MULTI_MAP_IS_KEY_ITERATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_ABSTRACT_MULTI_MAP_TYPE_KEY_ITERATOR))
204 #define GEE_ABSTRACT_MULTI_MAP_KEY_ITERATOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_ABSTRACT_MULTI_MAP_TYPE_KEY_ITERATOR, GeeAbstractMultiMapKeyIteratorClass))
206 typedef struct _GeeAbstractMultiMapKeyIterator GeeAbstractMultiMapKeyIterator;
207 typedef struct _GeeAbstractMultiMapKeyIteratorClass GeeAbstractMultiMapKeyIteratorClass;
208 typedef struct _GeeAbstractMultiMapValuesPrivate GeeAbstractMultiMapValuesPrivate;
210 #define GEE_ABSTRACT_MULTI_MAP_TYPE_VALUE_ITERATOR (gee_abstract_multi_map_value_iterator_get_type ())
211 #define GEE_ABSTRACT_MULTI_MAP_VALUE_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_ABSTRACT_MULTI_MAP_TYPE_VALUE_ITERATOR, GeeAbstractMultiMapValueIterator))
212 #define GEE_ABSTRACT_MULTI_MAP_VALUE_ITERATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_ABSTRACT_MULTI_MAP_TYPE_VALUE_ITERATOR, GeeAbstractMultiMapValueIteratorClass))
213 #define GEE_ABSTRACT_MULTI_MAP_IS_VALUE_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_ABSTRACT_MULTI_MAP_TYPE_VALUE_ITERATOR))
214 #define GEE_ABSTRACT_MULTI_MAP_IS_VALUE_ITERATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_ABSTRACT_MULTI_MAP_TYPE_VALUE_ITERATOR))
215 #define GEE_ABSTRACT_MULTI_MAP_VALUE_ITERATOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_ABSTRACT_MULTI_MAP_TYPE_VALUE_ITERATOR, GeeAbstractMultiMapValueIteratorClass))
217 typedef struct _GeeAbstractMultiMapValueIterator GeeAbstractMultiMapValueIterator;
218 typedef struct _GeeAbstractMultiMapValueIteratorClass GeeAbstractMultiMapValueIteratorClass;
219 typedef struct _GeeAbstractMultiMapMappingIteratorPrivate GeeAbstractMultiMapMappingIteratorPrivate;
220 typedef struct _GeeAbstractMultiMapKeyIteratorPrivate GeeAbstractMultiMapKeyIteratorPrivate;
221 typedef struct _Block1Data Block1Data;
222 typedef struct _Block2Data Block2Data;
223 typedef struct _Block3Data Block3Data;
224 typedef struct _GeeAbstractMultiMapValueIteratorPrivate GeeAbstractMultiMapValueIteratorPrivate;
225 typedef struct _Block4Data Block4Data;
226 typedef struct _GeeAbstractMultiMapMapIteratorPrivate GeeAbstractMultiMapMapIteratorPrivate;
227 #define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
229 typedef gboolean (*GeeForallFunc) (gpointer g, void* user_data);
231 GEE_TRAVERSABLE_STREAM_YIELD,
232 GEE_TRAVERSABLE_STREAM_CONTINUE,
233 GEE_TRAVERSABLE_STREAM_END
234 } GeeTraversableStream;
236 typedef GeeTraversableStream (*GeeStreamFunc) (GeeTraversableStream state, GeeLazy* g, GeeLazy** lazy, void* user_data);
237 struct _GeeIteratorIface {
238 GTypeInterface parent_iface;
239 gboolean (*next) (GeeIterator* self);
240 gboolean (*has_next) (GeeIterator* self);
241 gpointer (*get) (GeeIterator* self);
242 void (*remove) (GeeIterator* self);
243 gboolean (*get_valid) (GeeIterator* self);
244 gboolean (*get_read_only) (GeeIterator* self);
247 typedef gpointer (*GeeFoldFunc) (gpointer g, gpointer a, void* user_data);
248 typedef gpointer (*GeeMapFunc) (gpointer g, void* user_data);
249 typedef gboolean (*GeePredicate) (gconstpointer g, void* user_data);
250 struct _GeeTraversableIface {
251 GTypeInterface parent_iface;
252 GType (*get_g_type) (GeeTraversable* self);
253 GBoxedCopyFunc (*get_g_dup_func) (GeeTraversable* self);
254 GDestroyNotify (*get_g_destroy_func) (GeeTraversable* self);
255 gboolean (*foreach) (GeeTraversable* self, GeeForallFunc f, void* f_target);
256 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);
257 gpointer (*fold) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, void* f_target, gpointer seed);
258 GeeIterator* (*map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeMapFunc f, void* f_target);
259 GeeIterator* (*scan) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, void* f_target, gpointer seed);
260 GeeIterator* (*filter) (GeeTraversable* self, GeePredicate pred, void* pred_target, GDestroyNotify pred_target_destroy_notify);
261 GeeIterator* (*chop) (GeeTraversable* self, gint offset, gint length);
262 GType (*get_element_type) (GeeTraversable* self);
265 struct _GeeIterableIface {
266 GTypeInterface parent_iface;
267 GType (*get_g_type) (GeeIterable* self);
268 GBoxedCopyFunc (*get_g_dup_func) (GeeIterable* self);
269 GDestroyNotify (*get_g_destroy_func) (GeeIterable* self);
270 GeeIterator* (*iterator) (GeeIterable* self);
273 struct _GeeCollectionIface {
274 GTypeInterface parent_iface;
275 GType (*get_g_type) (GeeCollection* self);
276 GBoxedCopyFunc (*get_g_dup_func) (GeeCollection* self);
277 GDestroyNotify (*get_g_destroy_func) (GeeCollection* self);
278 gboolean (*contains) (GeeCollection* self, gconstpointer item);
279 gboolean (*add) (GeeCollection* self, gconstpointer item);
280 gboolean (*remove) (GeeCollection* self, gconstpointer item);
281 void (*clear) (GeeCollection* self);
282 gboolean (*add_all) (GeeCollection* self, GeeCollection* collection);
283 gboolean (*contains_all) (GeeCollection* self, GeeCollection* collection);
284 gboolean (*remove_all) (GeeCollection* self, GeeCollection* collection);
285 gboolean (*retain_all) (GeeCollection* self, GeeCollection* collection);
286 gpointer* (*to_array) (GeeCollection* self, int* result_length1);
287 gint (*get_size) (GeeCollection* self);
288 gboolean (*get_is_empty) (GeeCollection* self);
289 gboolean (*get_read_only) (GeeCollection* self);
290 GeeCollection* (*get_read_only_view) (GeeCollection* self);
293 struct _GeeSetIface {
294 GTypeInterface parent_iface;
295 GType (*get_g_type) (GeeSet* self);
296 GBoxedCopyFunc (*get_g_dup_func) (GeeSet* self);
297 GDestroyNotify (*get_g_destroy_func) (GeeSet* self);
298 GeeSet* (*get_read_only_view) (GeeSet* self);
301 struct _GeeMultiSetIface {
302 GTypeInterface parent_iface;
303 GType (*get_g_type) (GeeMultiSet* self);
304 GBoxedCopyFunc (*get_g_dup_func) (GeeMultiSet* self);
305 GDestroyNotify (*get_g_destroy_func) (GeeMultiSet* self);
306 gint (*count) (GeeMultiSet* self, gconstpointer item);
307 GeeMultiSet* (*get_read_only_view) (GeeMultiSet* self);
310 typedef gpointer (*GeeFoldMapFunc) (gconstpointer k, gconstpointer v, gpointer a, void* user_data);
311 typedef gboolean (*GeeForallMapFunc) (gconstpointer k, gconstpointer v, void* user_data);
312 struct _GeeMapIteratorIface {
313 GTypeInterface parent_iface;
314 GType (*get_k_type) (GeeMapIterator* self);
315 GBoxedCopyFunc (*get_k_dup_func) (GeeMapIterator* self);
316 GDestroyNotify (*get_k_destroy_func) (GeeMapIterator* self);
317 GType (*get_v_type) (GeeMapIterator* self);
318 GBoxedCopyFunc (*get_v_dup_func) (GeeMapIterator* self);
319 GDestroyNotify (*get_v_destroy_func) (GeeMapIterator* self);
320 gboolean (*next) (GeeMapIterator* self);
321 gboolean (*has_next) (GeeMapIterator* self);
322 gpointer (*get_key) (GeeMapIterator* self);
323 gpointer (*get_value) (GeeMapIterator* self);
324 void (*set_value) (GeeMapIterator* self, gconstpointer value);
325 void (*unset) (GeeMapIterator* self);
326 gpointer (*fold) (GeeMapIterator* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldMapFunc f, void* f_target, gpointer seed);
327 gboolean (*foreach) (GeeMapIterator* self, GeeForallMapFunc f, void* f_target);
328 gboolean (*get_valid) (GeeMapIterator* self);
329 gboolean (*get_mutable) (GeeMapIterator* self);
330 gboolean (*get_read_only) (GeeMapIterator* self);
333 struct _GeeMultiMapIface {
334 GTypeInterface parent_iface;
335 GType (*get_k_type) (GeeMultiMap* self);
336 GBoxedCopyFunc (*get_k_dup_func) (GeeMultiMap* self);
337 GDestroyNotify (*get_k_destroy_func) (GeeMultiMap* self);
338 GType (*get_v_type) (GeeMultiMap* self);
339 GBoxedCopyFunc (*get_v_dup_func) (GeeMultiMap* self);
340 GDestroyNotify (*get_v_destroy_func) (GeeMultiMap* self);
341 GeeSet* (*get_keys) (GeeMultiMap* self);
342 GeeMultiSet* (*get_all_keys) (GeeMultiMap* self);
343 GeeCollection* (*get_values) (GeeMultiMap* self);
344 gboolean (*contains) (GeeMultiMap* self, gconstpointer key);
345 GeeCollection* (*get) (GeeMultiMap* self, gconstpointer key);
346 void (*set) (GeeMultiMap* self, gconstpointer key, gconstpointer value);
347 gboolean (*remove) (GeeMultiMap* self, gconstpointer key, gconstpointer value);
348 gboolean (*remove_all) (GeeMultiMap* self, gconstpointer key);
349 void (*clear) (GeeMultiMap* self);
350 GeeMapIterator* (*map_iterator) (GeeMultiMap* self);
351 gint (*get_size) (GeeMultiMap* self);
352 gboolean (*get_read_only) (GeeMultiMap* self);
353 GeeMultiMap* (*get_read_only_view) (GeeMultiMap* self);
356 typedef gboolean (*GeeEqualDataFunc) (gconstpointer a, gconstpointer b, void* user_data);
357 struct _GeeMapIface {
358 GTypeInterface parent_iface;
359 GType (*get_k_type) (GeeMap* self);
360 GBoxedCopyFunc (*get_k_dup_func) (GeeMap* self);
361 GDestroyNotify (*get_k_destroy_func) (GeeMap* self);
362 GType (*get_v_type) (GeeMap* self);
363 GBoxedCopyFunc (*get_v_dup_func) (GeeMap* self);
364 GDestroyNotify (*get_v_destroy_func) (GeeMap* self);
365 gboolean (*has_key) (GeeMap* self, gconstpointer key);
366 gboolean (*has) (GeeMap* self, gconstpointer key, gconstpointer value);
367 gpointer (*get) (GeeMap* self, gconstpointer key);
368 void (*set) (GeeMap* self, gconstpointer key, gconstpointer value);
369 gboolean (*unset) (GeeMap* self, gconstpointer key, gpointer* value);
370 void (*clear) (GeeMap* self);
371 GeeMapIterator* (*map_iterator) (GeeMap* self);
372 void (*set_all) (GeeMap* self, GeeMap* map);
373 gboolean (*unset_all) (GeeMap* self, GeeMap* map);
374 gboolean (*has_all) (GeeMap* self, GeeMap* map);
375 gint (*get_size) (GeeMap* self);
376 gboolean (*get_is_empty) (GeeMap* self);
377 gboolean (*get_read_only) (GeeMap* self);
378 GeeSet* (*get_keys) (GeeMap* self);
379 GeeCollection* (*get_values) (GeeMap* self);
380 GeeSet* (*get_entries) (GeeMap* self);
381 GeeMap* (*get_read_only_view) (GeeMap* self);
384 struct _GeeAbstractMultiMap {
385 GObject parent_instance;
386 GeeAbstractMultiMapPrivate * priv;
387 GeeMap* _storage_map;
390 struct _GeeAbstractMultiMapClass {
391 GObjectClass parent_class;
392 GeeCollection* (*create_value_storage) (GeeAbstractMultiMap* self);
393 GeeMultiSet* (*create_multi_key_set) (GeeAbstractMultiMap* self);
394 GeeEqualDataFunc (*get_value_equal_func) (GeeAbstractMultiMap* self, void** result_target, GDestroyNotify* result_target_destroy_notify);
395 void (*reserved0) (GeeAbstractMultiMap* self);
396 void (*reserved1) (GeeAbstractMultiMap* self);
397 void (*reserved2) (GeeAbstractMultiMap* self);
398 void (*reserved3) (GeeAbstractMultiMap* self);
399 void (*reserved4) (GeeAbstractMultiMap* self);
400 void (*reserved5) (GeeAbstractMultiMap* self);
401 void (*reserved6) (GeeAbstractMultiMap* self);
402 void (*reserved7) (GeeAbstractMultiMap* self);
403 void (*reserved8) (GeeAbstractMultiMap* self);
404 GeeMultiMap* (*get_read_only_view) (GeeAbstractMultiMap* self);
407 struct _GeeAbstractMultiMapPrivate {
409 GBoxedCopyFunc k_dup_func;
410 GDestroyNotify k_destroy_func;
412 GBoxedCopyFunc v_dup_func;
413 GDestroyNotify v_destroy_func;
415 GeeMultiMap* _read_only_view;
418 struct _GeeAbstractCollection {
419 GObject parent_instance;
420 GeeAbstractCollectionPrivate * priv;
423 struct _GeeAbstractCollectionClass {
424 GObjectClass parent_class;
425 gboolean (*contains) (GeeAbstractCollection* self, gconstpointer item);
426 gboolean (*add) (GeeAbstractCollection* self, gconstpointer item);
427 gboolean (*remove) (GeeAbstractCollection* self, gconstpointer item);
428 void (*clear) (GeeAbstractCollection* self);
429 GeeIterator* (*iterator) (GeeAbstractCollection* self);
430 gboolean (*foreach) (GeeAbstractCollection* self, GeeForallFunc f, void* f_target);
431 void (*reserved0) (GeeAbstractCollection* self);
432 void (*reserved1) (GeeAbstractCollection* self);
433 void (*reserved2) (GeeAbstractCollection* self);
434 void (*reserved3) (GeeAbstractCollection* self);
435 void (*reserved4) (GeeAbstractCollection* self);
436 void (*reserved5) (GeeAbstractCollection* self);
437 void (*reserved6) (GeeAbstractCollection* self);
438 void (*reserved7) (GeeAbstractCollection* self);
439 void (*reserved8) (GeeAbstractCollection* self);
440 void (*reserved9) (GeeAbstractCollection* self);
441 gint (*get_size) (GeeAbstractCollection* self);
442 gboolean (*get_read_only) (GeeAbstractCollection* self);
443 GeeCollection* (*get_read_only_view) (GeeAbstractCollection* self);
446 struct _GeeAbstractMultiMapAllKeys {
447 GeeAbstractCollection parent_instance;
448 GeeAbstractMultiMapAllKeysPrivate * priv;
449 GeeAbstractMultiMap* _multi_map;
452 struct _GeeAbstractMultiMapAllKeysClass {
453 GeeAbstractCollectionClass parent_class;
456 struct _GeeAbstractMultiMapAllKeysPrivate {
458 GBoxedCopyFunc k_dup_func;
459 GDestroyNotify k_destroy_func;
461 GBoxedCopyFunc v_dup_func;
462 GDestroyNotify v_destroy_func;
465 struct _GeeAbstractMultiMapValues {
466 GeeAbstractCollection parent_instance;
467 GeeAbstractMultiMapValuesPrivate * priv;
468 GeeAbstractMultiMap* _multi_map;
471 struct _GeeAbstractMultiMapValuesClass {
472 GeeAbstractCollectionClass parent_class;
475 struct _GeeAbstractMultiMapValuesPrivate {
477 GBoxedCopyFunc k_dup_func;
478 GDestroyNotify k_destroy_func;
480 GBoxedCopyFunc v_dup_func;
481 GDestroyNotify v_destroy_func;
484 struct _GeeAbstractMultiMapMappingIterator {
485 GObject parent_instance;
486 GeeAbstractMultiMapMappingIteratorPrivate * priv;
487 GeeMapIterator* outer;
491 struct _GeeAbstractMultiMapMappingIteratorClass {
492 GObjectClass parent_class;
493 gboolean (*get_read_only) (GeeAbstractMultiMapMappingIterator* self);
496 struct _GeeAbstractMultiMapMappingIteratorPrivate {
498 GBoxedCopyFunc k_dup_func;
499 GDestroyNotify k_destroy_func;
501 GBoxedCopyFunc v_dup_func;
502 GDestroyNotify v_destroy_func;
505 struct _GeeAbstractMultiMapKeyIterator {
506 GeeAbstractMultiMapMappingIterator parent_instance;
507 GeeAbstractMultiMapKeyIteratorPrivate * priv;
510 struct _GeeAbstractMultiMapKeyIteratorClass {
511 GeeAbstractMultiMapMappingIteratorClass parent_class;
514 struct _GeeAbstractMultiMapKeyIteratorPrivate {
516 GBoxedCopyFunc k_dup_func;
517 GDestroyNotify k_destroy_func;
519 GBoxedCopyFunc v_dup_func;
520 GDestroyNotify v_destroy_func;
525 GeeAbstractMultiMapKeyIterator * self;
532 Block1Data * _data1_;
538 Block1Data * _data1_;
542 struct _GeeAbstractMultiMapValueIterator {
543 GeeAbstractMultiMapMappingIterator parent_instance;
544 GeeAbstractMultiMapValueIteratorPrivate * priv;
547 struct _GeeAbstractMultiMapValueIteratorClass {
548 GeeAbstractMultiMapMappingIteratorClass parent_class;
551 struct _GeeAbstractMultiMapValueIteratorPrivate {
553 GBoxedCopyFunc k_dup_func;
554 GDestroyNotify k_destroy_func;
556 GBoxedCopyFunc v_dup_func;
557 GDestroyNotify v_destroy_func;
562 GeeAbstractMultiMapValueIterator * self;
567 struct _GeeAbstractMultiMapMapIterator {
568 GeeAbstractMultiMapMappingIterator parent_instance;
569 GeeAbstractMultiMapMapIteratorPrivate * priv;
572 struct _GeeAbstractMultiMapMapIteratorClass {
573 GeeAbstractMultiMapMappingIteratorClass parent_class;
576 struct _GeeAbstractMultiMapMapIteratorPrivate {
578 GBoxedCopyFunc k_dup_func;
579 GDestroyNotify k_destroy_func;
581 GBoxedCopyFunc v_dup_func;
582 GDestroyNotify v_destroy_func;
586 static gpointer gee_abstract_multi_map_parent_class = NULL;
587 static gpointer gee_abstract_multi_map_all_keys_parent_class = NULL;
588 static GeeMultiSetIface* gee_abstract_multi_map_all_keys_gee_multi_set_parent_iface = NULL;
589 static gpointer gee_abstract_multi_map_values_parent_class = NULL;
590 static gpointer gee_abstract_multi_map_mapping_iterator_parent_class = NULL;
591 static gpointer gee_abstract_multi_map_key_iterator_parent_class = NULL;
592 static GeeTraversableIface* gee_abstract_multi_map_key_iterator_gee_traversable_parent_iface = NULL;
593 static GeeIteratorIface* gee_abstract_multi_map_key_iterator_gee_iterator_parent_iface = NULL;
594 static gpointer gee_abstract_multi_map_value_iterator_parent_class = NULL;
595 static GeeTraversableIface* gee_abstract_multi_map_value_iterator_gee_traversable_parent_iface = NULL;
596 static GeeIteratorIface* gee_abstract_multi_map_value_iterator_gee_iterator_parent_iface = NULL;
597 static gpointer gee_abstract_multi_map_map_iterator_parent_class = NULL;
598 static GeeMapIteratorIface* gee_abstract_multi_map_map_iterator_gee_map_iterator_parent_iface = NULL;
599 static GeeMultiMapIface* gee_abstract_multi_map_gee_multi_map_parent_iface = NULL;
601 GType gee_traversable_stream_get_type (void) G_GNUC_CONST;
602 gpointer gee_lazy_ref (gpointer instance);
603 void gee_lazy_unref (gpointer instance);
604 GParamSpec* gee_param_spec_lazy (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
605 void gee_value_set_lazy (GValue* value, gpointer v_object);
606 void gee_value_take_lazy (GValue* value, gpointer v_object);
607 gpointer gee_value_get_lazy (const GValue* value);
608 GType gee_lazy_get_type (void) G_GNUC_CONST;
609 GType gee_iterator_get_type (void) G_GNUC_CONST;
610 GType gee_traversable_get_type (void) G_GNUC_CONST;
611 GType gee_iterable_get_type (void) G_GNUC_CONST;
612 GType gee_collection_get_type (void) G_GNUC_CONST;
613 GType gee_set_get_type (void) G_GNUC_CONST;
614 GType gee_multi_set_get_type (void) G_GNUC_CONST;
615 GType gee_map_iterator_get_type (void) G_GNUC_CONST;
616 GType gee_multi_map_get_type (void) G_GNUC_CONST;
617 GType gee_abstract_multi_map_get_type (void) G_GNUC_CONST;
618 GType gee_map_entry_get_type (void) G_GNUC_CONST;
619 GType gee_map_get_type (void) G_GNUC_CONST;
620 #define GEE_ABSTRACT_MULTI_MAP_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GEE_TYPE_ABSTRACT_MULTI_MAP, GeeAbstractMultiMapPrivate))
622 GEE_ABSTRACT_MULTI_MAP_DUMMY_PROPERTY,
623 GEE_ABSTRACT_MULTI_MAP_K_TYPE,
624 GEE_ABSTRACT_MULTI_MAP_K_DUP_FUNC,
625 GEE_ABSTRACT_MULTI_MAP_K_DESTROY_FUNC,
626 GEE_ABSTRACT_MULTI_MAP_V_TYPE,
627 GEE_ABSTRACT_MULTI_MAP_V_DUP_FUNC,
628 GEE_ABSTRACT_MULTI_MAP_V_DESTROY_FUNC,
629 GEE_ABSTRACT_MULTI_MAP_SIZE,
630 GEE_ABSTRACT_MULTI_MAP_READ_ONLY
632 GeeAbstractMultiMap* gee_abstract_multi_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* storage_map);
633 static GeeSet* gee_abstract_multi_map_real_get_keys (GeeMultiMap* base);
634 GeeSet* gee_map_get_keys (GeeMap* self);
635 static GeeMultiSet* gee_abstract_multi_map_real_get_all_keys (GeeMultiMap* base);
636 static GeeAbstractMultiMapAllKeys* gee_abstract_multi_map_all_keys_new (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeAbstractMultiMap* multi_map);
637 static GeeAbstractMultiMapAllKeys* gee_abstract_multi_map_all_keys_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, GeeAbstractMultiMap* multi_map);
638 GType gee_abstract_collection_get_type (void) G_GNUC_CONST;
639 static GType gee_abstract_multi_map_all_keys_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
640 static GeeCollection* gee_abstract_multi_map_real_get_values (GeeMultiMap* base);
641 static GeeAbstractMultiMapValues* gee_abstract_multi_map_values_new (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeAbstractMultiMap* multi_map);
642 static GeeAbstractMultiMapValues* gee_abstract_multi_map_values_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, GeeAbstractMultiMap* multi_map);
643 static GType gee_abstract_multi_map_values_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
644 static gboolean gee_abstract_multi_map_real_contains (GeeMultiMap* base, gconstpointer key);
645 gboolean gee_map_has_key (GeeMap* self, gconstpointer key);
646 static GeeCollection* gee_abstract_multi_map_real_get (GeeMultiMap* base, gconstpointer key);
647 gpointer gee_map_get (GeeMap* self, gconstpointer key);
648 GeeCollection* gee_collection_get_read_only_view (GeeCollection* self);
649 GeeSet* gee_set_empty (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func);
650 static void gee_abstract_multi_map_real_set (GeeMultiMap* base, gconstpointer key, gconstpointer value);
651 gboolean gee_collection_add (GeeCollection* self, gconstpointer item);
652 GeeCollection* gee_abstract_multi_map_create_value_storage (GeeAbstractMultiMap* self);
653 void gee_map_set (GeeMap* self, gconstpointer key, gconstpointer value);
654 static gboolean gee_abstract_multi_map_real_remove (GeeMultiMap* base, gconstpointer key, gconstpointer value);
655 gboolean gee_collection_contains (GeeCollection* self, gconstpointer item);
656 gboolean gee_collection_remove (GeeCollection* self, gconstpointer item);
657 gint gee_collection_get_size (GeeCollection* self);
658 gboolean gee_map_unset (GeeMap* self, gconstpointer key, gpointer* value);
659 static gboolean gee_abstract_multi_map_real_remove_all (GeeMultiMap* base, gconstpointer key);
660 static void gee_abstract_multi_map_real_clear (GeeMultiMap* base);
661 void gee_map_clear (GeeMap* self);
662 static GeeMapIterator* gee_abstract_multi_map_real_map_iterator (GeeMultiMap* base);
663 GeeMapIterator* gee_map_map_iterator (GeeMap* self);
664 static GeeAbstractMultiMapMapIterator* gee_abstract_multi_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* outer);
665 static GeeAbstractMultiMapMapIterator* gee_abstract_multi_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* outer);
666 static GType gee_abstract_multi_map_mapping_iterator_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
667 static GType gee_abstract_multi_map_map_iterator_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
668 static GeeCollection* gee_abstract_multi_map_real_create_value_storage (GeeAbstractMultiMap* self);
669 GeeMultiSet* gee_abstract_multi_map_create_multi_key_set (GeeAbstractMultiMap* self);
670 static GeeMultiSet* gee_abstract_multi_map_real_create_multi_key_set (GeeAbstractMultiMap* self);
671 GeeEqualDataFunc gee_abstract_multi_map_get_value_equal_func (GeeAbstractMultiMap* self, void** result_target, GDestroyNotify* result_target_destroy_notify);
672 static GeeEqualDataFunc gee_abstract_multi_map_real_get_value_equal_func (GeeAbstractMultiMap* self, void** result_target, GDestroyNotify* result_target_destroy_notify);
673 void gee_abstract_multi_map_reserved0 (GeeAbstractMultiMap* self);
674 static void gee_abstract_multi_map_real_reserved0 (GeeAbstractMultiMap* self);
675 void gee_abstract_multi_map_reserved1 (GeeAbstractMultiMap* self);
676 static void gee_abstract_multi_map_real_reserved1 (GeeAbstractMultiMap* self);
677 void gee_abstract_multi_map_reserved2 (GeeAbstractMultiMap* self);
678 static void gee_abstract_multi_map_real_reserved2 (GeeAbstractMultiMap* self);
679 void gee_abstract_multi_map_reserved3 (GeeAbstractMultiMap* self);
680 static void gee_abstract_multi_map_real_reserved3 (GeeAbstractMultiMap* self);
681 void gee_abstract_multi_map_reserved4 (GeeAbstractMultiMap* self);
682 static void gee_abstract_multi_map_real_reserved4 (GeeAbstractMultiMap* self);
683 void gee_abstract_multi_map_reserved5 (GeeAbstractMultiMap* self);
684 static void gee_abstract_multi_map_real_reserved5 (GeeAbstractMultiMap* self);
685 void gee_abstract_multi_map_reserved6 (GeeAbstractMultiMap* self);
686 static void gee_abstract_multi_map_real_reserved6 (GeeAbstractMultiMap* self);
687 void gee_abstract_multi_map_reserved7 (GeeAbstractMultiMap* self);
688 static void gee_abstract_multi_map_real_reserved7 (GeeAbstractMultiMap* self);
689 void gee_abstract_multi_map_reserved8 (GeeAbstractMultiMap* self);
690 static void gee_abstract_multi_map_real_reserved8 (GeeAbstractMultiMap* self);
691 GeeMultiMap* gee_abstract_multi_map_get_read_only_view (GeeAbstractMultiMap* self);
692 GeeReadOnlyMultiMap* gee_read_only_multi_map_new (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeMultiMap* multimap);
693 GeeReadOnlyMultiMap* gee_read_only_multi_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, GeeMultiMap* multimap);
694 GType gee_read_only_multi_map_get_type (void) G_GNUC_CONST;
695 #define GEE_ABSTRACT_MULTI_MAP_ALL_KEYS_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GEE_ABSTRACT_MULTI_MAP_TYPE_ALL_KEYS, GeeAbstractMultiMapAllKeysPrivate))
697 GEE_ABSTRACT_MULTI_MAP_ALL_KEYS_DUMMY_PROPERTY,
698 GEE_ABSTRACT_MULTI_MAP_ALL_KEYS_K_TYPE,
699 GEE_ABSTRACT_MULTI_MAP_ALL_KEYS_K_DUP_FUNC,
700 GEE_ABSTRACT_MULTI_MAP_ALL_KEYS_K_DESTROY_FUNC,
701 GEE_ABSTRACT_MULTI_MAP_ALL_KEYS_V_TYPE,
702 GEE_ABSTRACT_MULTI_MAP_ALL_KEYS_V_DUP_FUNC,
703 GEE_ABSTRACT_MULTI_MAP_ALL_KEYS_V_DESTROY_FUNC,
704 GEE_ABSTRACT_MULTI_MAP_ALL_KEYS_SIZE,
705 GEE_ABSTRACT_MULTI_MAP_ALL_KEYS_READ_ONLY
707 GeeAbstractCollection* gee_abstract_collection_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func);
708 static GeeIterator* gee_abstract_multi_map_all_keys_real_iterator (GeeAbstractCollection* base);
709 static GeeAbstractMultiMapKeyIterator* gee_abstract_multi_map_key_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* outer);
710 static GeeAbstractMultiMapKeyIterator* gee_abstract_multi_map_key_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* outer);
711 static GType gee_abstract_multi_map_key_iterator_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
712 static gboolean gee_abstract_multi_map_all_keys_real_contains (GeeAbstractCollection* base, gconstpointer key);
713 static gboolean gee_abstract_multi_map_all_keys_real_add (GeeAbstractCollection* base, gconstpointer key);
714 static gboolean gee_abstract_multi_map_all_keys_real_remove (GeeAbstractCollection* base, gconstpointer item);
715 static void gee_abstract_multi_map_all_keys_real_clear (GeeAbstractCollection* base);
716 static gint gee_abstract_multi_map_all_keys_real_count (GeeMultiSet* base, gconstpointer item);
717 gint gee_multi_map_get_size (GeeMultiMap* self);
718 static void gee_abstract_multi_map_all_keys_finalize (GObject* obj);
719 gint gee_abstract_collection_get_size (GeeAbstractCollection* self);
720 gboolean gee_abstract_collection_get_read_only (GeeAbstractCollection* self);
721 static void _vala_gee_abstract_multi_map_all_keys_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
722 static void _vala_gee_abstract_multi_map_all_keys_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
723 #define GEE_ABSTRACT_MULTI_MAP_VALUES_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GEE_ABSTRACT_MULTI_MAP_TYPE_VALUES, GeeAbstractMultiMapValuesPrivate))
725 GEE_ABSTRACT_MULTI_MAP_VALUES_DUMMY_PROPERTY,
726 GEE_ABSTRACT_MULTI_MAP_VALUES_K_TYPE,
727 GEE_ABSTRACT_MULTI_MAP_VALUES_K_DUP_FUNC,
728 GEE_ABSTRACT_MULTI_MAP_VALUES_K_DESTROY_FUNC,
729 GEE_ABSTRACT_MULTI_MAP_VALUES_V_TYPE,
730 GEE_ABSTRACT_MULTI_MAP_VALUES_V_DUP_FUNC,
731 GEE_ABSTRACT_MULTI_MAP_VALUES_V_DESTROY_FUNC,
732 GEE_ABSTRACT_MULTI_MAP_VALUES_SIZE,
733 GEE_ABSTRACT_MULTI_MAP_VALUES_READ_ONLY
735 static GeeIterator* gee_abstract_multi_map_values_real_iterator (GeeAbstractCollection* base);
736 static GeeAbstractMultiMapValueIterator* gee_abstract_multi_map_value_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* outer);
737 static GeeAbstractMultiMapValueIterator* gee_abstract_multi_map_value_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* outer);
738 static GType gee_abstract_multi_map_value_iterator_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
739 static gboolean gee_abstract_multi_map_values_real_contains (GeeAbstractCollection* base, gconstpointer value);
740 GeeCollection* gee_map_get_values (GeeMap* self);
741 GeeIterator* gee_iterable_iterator (GeeIterable* self);
742 gboolean gee_iterator_next (GeeIterator* self);
743 gpointer gee_iterator_get (GeeIterator* self);
744 static gboolean gee_abstract_multi_map_values_real_add (GeeAbstractCollection* base, gconstpointer key);
745 static gboolean gee_abstract_multi_map_values_real_remove (GeeAbstractCollection* base, gconstpointer item);
746 static void gee_abstract_multi_map_values_real_clear (GeeAbstractCollection* base);
747 static void gee_abstract_multi_map_values_finalize (GObject* obj);
748 static void _vala_gee_abstract_multi_map_values_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
749 static void _vala_gee_abstract_multi_map_values_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
750 #define GEE_ABSTRACT_MULTI_MAP_MAPPING_ITERATOR_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GEE_ABSTRACT_MULTI_MAP_TYPE_MAPPING_ITERATOR, GeeAbstractMultiMapMappingIteratorPrivate))
752 GEE_ABSTRACT_MULTI_MAP_MAPPING_ITERATOR_DUMMY_PROPERTY,
753 GEE_ABSTRACT_MULTI_MAP_MAPPING_ITERATOR_K_TYPE,
754 GEE_ABSTRACT_MULTI_MAP_MAPPING_ITERATOR_K_DUP_FUNC,
755 GEE_ABSTRACT_MULTI_MAP_MAPPING_ITERATOR_K_DESTROY_FUNC,
756 GEE_ABSTRACT_MULTI_MAP_MAPPING_ITERATOR_V_TYPE,
757 GEE_ABSTRACT_MULTI_MAP_MAPPING_ITERATOR_V_DUP_FUNC,
758 GEE_ABSTRACT_MULTI_MAP_MAPPING_ITERATOR_V_DESTROY_FUNC,
759 GEE_ABSTRACT_MULTI_MAP_MAPPING_ITERATOR_READ_ONLY,
760 GEE_ABSTRACT_MULTI_MAP_MAPPING_ITERATOR_VALID
762 static GeeAbstractMultiMapMappingIterator* gee_abstract_multi_map_mapping_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* outer);
763 static GeeAbstractMultiMapMappingIterator* gee_abstract_multi_map_mapping_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* outer);
764 static gboolean gee_abstract_multi_map_mapping_iterator_next (GeeAbstractMultiMapMappingIterator* self);
765 gboolean gee_map_iterator_next (GeeMapIterator* self);
766 gpointer gee_map_iterator_get_value (GeeMapIterator* self);
767 static gboolean gee_abstract_multi_map_mapping_iterator_has_next (GeeAbstractMultiMapMappingIterator* self);
768 gboolean gee_iterator_has_next (GeeIterator* self);
769 gboolean gee_map_iterator_has_next (GeeMapIterator* self);
770 static void gee_abstract_multi_map_mapping_iterator_remove (GeeAbstractMultiMapMappingIterator* self);
771 static void gee_abstract_multi_map_mapping_iterator_unset (GeeAbstractMultiMapMappingIterator* self);
772 void gee_iterator_remove (GeeIterator* self);
773 gboolean gee_collection_get_is_empty (GeeCollection* self);
774 void gee_map_iterator_unset (GeeMapIterator* self);
775 static gboolean gee_abstract_multi_map_mapping_iterator_get_read_only (GeeAbstractMultiMapMappingIterator* self);
776 static gboolean gee_abstract_multi_map_mapping_iterator_get_valid (GeeAbstractMultiMapMappingIterator* self);
777 gboolean gee_iterator_get_valid (GeeIterator* self);
778 static void gee_abstract_multi_map_mapping_iterator_finalize (GObject* obj);
779 static void _vala_gee_abstract_multi_map_mapping_iterator_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
780 static void _vala_gee_abstract_multi_map_mapping_iterator_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
781 #define GEE_ABSTRACT_MULTI_MAP_KEY_ITERATOR_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GEE_ABSTRACT_MULTI_MAP_TYPE_KEY_ITERATOR, GeeAbstractMultiMapKeyIteratorPrivate))
783 GEE_ABSTRACT_MULTI_MAP_KEY_ITERATOR_DUMMY_PROPERTY,
784 GEE_ABSTRACT_MULTI_MAP_KEY_ITERATOR_K_TYPE,
785 GEE_ABSTRACT_MULTI_MAP_KEY_ITERATOR_K_DUP_FUNC,
786 GEE_ABSTRACT_MULTI_MAP_KEY_ITERATOR_K_DESTROY_FUNC,
787 GEE_ABSTRACT_MULTI_MAP_KEY_ITERATOR_V_TYPE,
788 GEE_ABSTRACT_MULTI_MAP_KEY_ITERATOR_V_DUP_FUNC,
789 GEE_ABSTRACT_MULTI_MAP_KEY_ITERATOR_V_DESTROY_FUNC
791 static gpointer gee_abstract_multi_map_key_iterator_real_get (GeeIterator* base);
792 gpointer gee_map_iterator_get_key (GeeMapIterator* self);
793 static gboolean gee_abstract_multi_map_key_iterator_real_foreach (GeeTraversable* base, GeeForallFunc f, void* f_target);
794 static Block1Data* block1_data_ref (Block1Data* _data1_);
795 static void block1_data_unref (void * _userdata_);
796 gboolean gee_map_iterator_get_valid (GeeMapIterator* self);
797 static Block2Data* block2_data_ref (Block2Data* _data2_);
798 static void block2_data_unref (void * _userdata_);
799 gboolean gee_traversable_foreach (GeeTraversable* self, GeeForallFunc f, void* f_target);
800 static gboolean ___lambda29_ (Block2Data* _data2_, gpointer v);
801 static gboolean ____lambda29__gee_forall_func (gpointer g, gpointer self);
802 gboolean gee_map_iterator_foreach (GeeMapIterator* self, GeeForallMapFunc f, void* f_target);
803 static gboolean __lambda30_ (Block1Data* _data1_, gconstpointer key, GeeCollection* col);
804 static Block3Data* block3_data_ref (Block3Data* _data3_);
805 static void block3_data_unref (void * _userdata_);
806 static gboolean __lambda31_ (Block3Data* _data3_, gpointer v);
807 static gboolean ___lambda31__gee_forall_func (gpointer g, gpointer self);
808 static gboolean ___lambda30__gee_forall_map_func (gconstpointer k, gconstpointer v, gpointer self);
809 static void _vala_gee_abstract_multi_map_key_iterator_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
810 static void _vala_gee_abstract_multi_map_key_iterator_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
811 #define GEE_ABSTRACT_MULTI_MAP_VALUE_ITERATOR_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GEE_ABSTRACT_MULTI_MAP_TYPE_VALUE_ITERATOR, GeeAbstractMultiMapValueIteratorPrivate))
813 GEE_ABSTRACT_MULTI_MAP_VALUE_ITERATOR_DUMMY_PROPERTY,
814 GEE_ABSTRACT_MULTI_MAP_VALUE_ITERATOR_K_TYPE,
815 GEE_ABSTRACT_MULTI_MAP_VALUE_ITERATOR_K_DUP_FUNC,
816 GEE_ABSTRACT_MULTI_MAP_VALUE_ITERATOR_K_DESTROY_FUNC,
817 GEE_ABSTRACT_MULTI_MAP_VALUE_ITERATOR_V_TYPE,
818 GEE_ABSTRACT_MULTI_MAP_VALUE_ITERATOR_V_DUP_FUNC,
819 GEE_ABSTRACT_MULTI_MAP_VALUE_ITERATOR_V_DESTROY_FUNC
821 static gpointer gee_abstract_multi_map_value_iterator_real_get (GeeIterator* base);
822 static gboolean gee_abstract_multi_map_value_iterator_real_foreach (GeeTraversable* base, GeeForallFunc f, void* f_target);
823 static Block4Data* block4_data_ref (Block4Data* _data4_);
824 static void block4_data_unref (void * _userdata_);
825 static gboolean __lambda32_ (Block4Data* _data4_, gconstpointer key, GeeCollection* col);
826 static gboolean ___lambda32__gee_forall_map_func (gconstpointer k, gconstpointer v, gpointer self);
827 static void _vala_gee_abstract_multi_map_value_iterator_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
828 static void _vala_gee_abstract_multi_map_value_iterator_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
829 #define GEE_ABSTRACT_MULTI_MAP_MAP_ITERATOR_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GEE_ABSTRACT_MULTI_MAP_TYPE_MAP_ITERATOR, GeeAbstractMultiMapMapIteratorPrivate))
831 GEE_ABSTRACT_MULTI_MAP_MAP_ITERATOR_DUMMY_PROPERTY,
832 GEE_ABSTRACT_MULTI_MAP_MAP_ITERATOR_K_TYPE,
833 GEE_ABSTRACT_MULTI_MAP_MAP_ITERATOR_K_DUP_FUNC,
834 GEE_ABSTRACT_MULTI_MAP_MAP_ITERATOR_K_DESTROY_FUNC,
835 GEE_ABSTRACT_MULTI_MAP_MAP_ITERATOR_V_TYPE,
836 GEE_ABSTRACT_MULTI_MAP_MAP_ITERATOR_V_DUP_FUNC,
837 GEE_ABSTRACT_MULTI_MAP_MAP_ITERATOR_V_DESTROY_FUNC,
838 GEE_ABSTRACT_MULTI_MAP_MAP_ITERATOR_MUTABLE
840 static gpointer gee_abstract_multi_map_map_iterator_real_get_key (GeeMapIterator* base);
841 static gpointer gee_abstract_multi_map_map_iterator_real_get_value (GeeMapIterator* base);
842 static void gee_abstract_multi_map_map_iterator_real_set_value (GeeMapIterator* base, gconstpointer value);
843 gboolean gee_map_iterator_get_mutable (GeeMapIterator* self);
844 static void _vala_gee_abstract_multi_map_map_iterator_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
845 static void _vala_gee_abstract_multi_map_map_iterator_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
846 static void gee_abstract_multi_map_finalize (GObject* obj);
847 gboolean gee_multi_map_get_read_only (GeeMultiMap* self);
848 static void _vala_gee_abstract_multi_map_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
849 static void _vala_gee_abstract_multi_map_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
852 static gpointer _g_object_ref0 (gpointer self) {
853 return self ? g_object_ref (self) : NULL;
857 GeeAbstractMultiMap* gee_abstract_multi_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* storage_map) {
858 GeeAbstractMultiMap * self = NULL;
861 g_return_val_if_fail (storage_map != NULL, NULL);
862 self = (GeeAbstractMultiMap*) g_object_new (object_type, NULL);
863 self->priv->k_type = k_type;
864 self->priv->k_dup_func = k_dup_func;
865 self->priv->k_destroy_func = k_destroy_func;
866 self->priv->v_type = v_type;
867 self->priv->v_dup_func = v_dup_func;
868 self->priv->v_destroy_func = v_destroy_func;
869 _tmp0_ = storage_map;
870 _tmp1_ = _g_object_ref0 (_tmp0_);
871 _g_object_unref0 (self->_storage_map);
872 self->_storage_map = _tmp1_;
877 static GeeSet* gee_abstract_multi_map_real_get_keys (GeeMultiMap* base) {
878 GeeAbstractMultiMap * self;
879 GeeSet* result = NULL;
883 self = (GeeAbstractMultiMap*) base;
884 _tmp0_ = self->_storage_map;
885 _tmp1_ = gee_map_get_keys (_tmp0_);
892 static GeeMultiSet* gee_abstract_multi_map_real_get_all_keys (GeeMultiMap* base) {
893 GeeAbstractMultiMap * self;
894 GeeMultiSet* result = NULL;
895 GeeAbstractMultiMapAllKeys* _tmp0_;
896 self = (GeeAbstractMultiMap*) base;
897 _tmp0_ = gee_abstract_multi_map_all_keys_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, self);
898 result = (GeeMultiSet*) _tmp0_;
903 static GeeCollection* gee_abstract_multi_map_real_get_values (GeeMultiMap* base) {
904 GeeAbstractMultiMap * self;
905 GeeCollection* result = NULL;
906 GeeAbstractMultiMapValues* _tmp0_;
907 self = (GeeAbstractMultiMap*) base;
908 _tmp0_ = gee_abstract_multi_map_values_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, self);
909 result = (GeeCollection*) _tmp0_;
914 static gboolean gee_abstract_multi_map_real_contains (GeeMultiMap* base, gconstpointer key) {
915 GeeAbstractMultiMap * self;
916 gboolean result = FALSE;
918 gconstpointer _tmp1_;
919 gboolean _tmp2_ = FALSE;
920 self = (GeeAbstractMultiMap*) base;
921 _tmp0_ = self->_storage_map;
923 _tmp2_ = gee_map_has_key (_tmp0_, _tmp1_);
929 static GeeCollection* gee_abstract_multi_map_real_get (GeeMultiMap* base, gconstpointer key) {
930 GeeAbstractMultiMap * self;
931 GeeCollection* result = NULL;
933 gconstpointer _tmp1_;
934 gpointer _tmp2_ = NULL;
936 GeeCollection* _tmp3_ = NULL;
937 GeeCollection* _tmp4_;
938 self = (GeeAbstractMultiMap*) base;
939 _tmp0_ = self->_storage_map;
941 _tmp2_ = gee_map_get (_tmp0_, _tmp1_);
942 col = (GeeCollection*) _tmp2_;
944 if (_tmp4_ != NULL) {
945 GeeCollection* _tmp5_;
946 GeeCollection* _tmp6_;
947 GeeCollection* _tmp7_;
949 _tmp6_ = gee_collection_get_read_only_view (_tmp5_);
951 _g_object_unref0 (_tmp3_);
954 GeeSet* _tmp8_ = NULL;
955 _tmp8_ = gee_set_empty (self->priv->v_type, (GBoxedCopyFunc) self->priv->v_dup_func, self->priv->v_destroy_func);
956 _g_object_unref0 (_tmp3_);
957 _tmp3_ = (GeeCollection*) _tmp8_;
960 _g_object_unref0 (col);
965 static void gee_abstract_multi_map_real_set (GeeMultiMap* base, gconstpointer key, gconstpointer value) {
966 GeeAbstractMultiMap * self;
968 gconstpointer _tmp1_;
969 gboolean _tmp2_ = FALSE;
970 self = (GeeAbstractMultiMap*) base;
971 _tmp0_ = self->_storage_map;
973 _tmp2_ = gee_map_has_key (_tmp0_, _tmp1_);
976 gconstpointer _tmp4_;
977 gpointer _tmp5_ = NULL;
978 GeeCollection* _tmp6_;
979 gconstpointer _tmp7_;
980 gboolean _tmp8_ = FALSE;
982 _tmp3_ = self->_storage_map;
984 _tmp5_ = gee_map_get (_tmp3_, _tmp4_);
985 _tmp6_ = (GeeCollection*) _tmp5_;
987 _tmp8_ = gee_collection_add (_tmp6_, _tmp7_);
989 _g_object_unref0 (_tmp6_);
992 _tmp10_ = self->priv->_nitems;
993 self->priv->_nitems = _tmp10_ + 1;
996 GeeCollection* _tmp11_ = NULL;
998 GeeCollection* _tmp12_;
999 gconstpointer _tmp13_;
1001 gconstpointer _tmp15_;
1002 GeeCollection* _tmp16_;
1004 _tmp11_ = gee_abstract_multi_map_create_value_storage (self);
1008 gee_collection_add (_tmp12_, _tmp13_);
1009 _tmp14_ = self->_storage_map;
1012 gee_map_set (_tmp14_, _tmp15_, _tmp16_);
1013 _tmp17_ = self->priv->_nitems;
1014 self->priv->_nitems = _tmp17_ + 1;
1015 _g_object_unref0 (s);
1020 static gboolean gee_abstract_multi_map_real_remove (GeeMultiMap* base, gconstpointer key, gconstpointer value) {
1021 GeeAbstractMultiMap * self;
1022 gboolean result = FALSE;
1024 gconstpointer _tmp1_;
1025 gboolean _tmp2_ = FALSE;
1026 self = (GeeAbstractMultiMap*) base;
1027 _tmp0_ = self->_storage_map;
1029 _tmp2_ = gee_map_has_key (_tmp0_, _tmp1_);
1032 gconstpointer _tmp4_;
1033 gpointer _tmp5_ = NULL;
1034 GeeCollection* values;
1035 GeeCollection* _tmp6_;
1036 gconstpointer _tmp7_;
1037 gboolean _tmp8_ = FALSE;
1038 _tmp3_ = self->_storage_map;
1040 _tmp5_ = gee_map_get (_tmp3_, _tmp4_);
1041 values = (GeeCollection*) _tmp5_;
1044 _tmp8_ = gee_collection_contains (_tmp6_, _tmp7_);
1046 GeeCollection* _tmp9_;
1047 gconstpointer _tmp10_;
1049 GeeCollection* _tmp12_;
1054 gee_collection_remove (_tmp9_, _tmp10_);
1055 _tmp11_ = self->priv->_nitems;
1056 self->priv->_nitems = _tmp11_ - 1;
1058 _tmp13_ = gee_collection_get_size (_tmp12_);
1062 gconstpointer _tmp16_;
1063 _tmp15_ = self->_storage_map;
1065 gee_map_unset (_tmp15_, _tmp16_, NULL);
1068 _g_object_unref0 (values);
1071 _g_object_unref0 (values);
1078 static gboolean gee_abstract_multi_map_real_remove_all (GeeMultiMap* base, gconstpointer key) {
1079 GeeAbstractMultiMap * self;
1080 gboolean result = FALSE;
1082 gconstpointer _tmp1_;
1083 gboolean _tmp2_ = FALSE;
1084 self = (GeeAbstractMultiMap*) base;
1085 _tmp0_ = self->_storage_map;
1087 _tmp2_ = gee_map_has_key (_tmp0_, _tmp1_);
1090 gconstpointer _tmp4_;
1091 gpointer _tmp5_ = NULL;
1092 GeeCollection* _tmp6_;
1098 gconstpointer _tmp11_;
1099 gboolean _tmp12_ = FALSE;
1100 _tmp3_ = self->_storage_map;
1102 _tmp5_ = gee_map_get (_tmp3_, _tmp4_);
1103 _tmp6_ = (GeeCollection*) _tmp5_;
1104 _tmp7_ = gee_collection_get_size (_tmp6_);
1107 _g_object_unref0 (_tmp6_);
1109 _tmp10_ = self->_storage_map;
1111 _tmp12_ = gee_map_unset (_tmp10_, _tmp11_, NULL);
1115 _tmp13_ = self->priv->_nitems;
1117 self->priv->_nitems = _tmp13_ - _tmp14_;
1127 static void gee_abstract_multi_map_real_clear (GeeMultiMap* base) {
1128 GeeAbstractMultiMap * self;
1130 self = (GeeAbstractMultiMap*) base;
1131 _tmp0_ = self->_storage_map;
1132 gee_map_clear (_tmp0_);
1133 self->priv->_nitems = 0;
1137 static GeeMapIterator* gee_abstract_multi_map_real_map_iterator (GeeMultiMap* base) {
1138 GeeAbstractMultiMap * self;
1139 GeeMapIterator* result = NULL;
1141 GeeMapIterator* _tmp1_ = NULL;
1142 GeeMapIterator* _tmp2_;
1143 GeeAbstractMultiMapMapIterator* _tmp3_;
1144 GeeMapIterator* _tmp4_;
1145 self = (GeeAbstractMultiMap*) base;
1146 _tmp0_ = self->_storage_map;
1147 _tmp1_ = gee_map_map_iterator (_tmp0_);
1149 _tmp3_ = gee_abstract_multi_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_);
1150 _tmp4_ = (GeeMapIterator*) _tmp3_;
1151 _g_object_unref0 (_tmp2_);
1157 static GeeCollection* gee_abstract_multi_map_real_create_value_storage (GeeAbstractMultiMap* self) {
1158 g_critical ("Type `%s' does not implement abstract method `gee_abstract_multi_map_create_value_storage'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
1163 GeeCollection* gee_abstract_multi_map_create_value_storage (GeeAbstractMultiMap* self) {
1164 g_return_val_if_fail (self != NULL, NULL);
1165 return GEE_ABSTRACT_MULTI_MAP_GET_CLASS (self)->create_value_storage (self);
1169 static GeeMultiSet* gee_abstract_multi_map_real_create_multi_key_set (GeeAbstractMultiMap* self) {
1170 g_critical ("Type `%s' does not implement abstract method `gee_abstract_multi_map_create_multi_key_set'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
1175 GeeMultiSet* gee_abstract_multi_map_create_multi_key_set (GeeAbstractMultiMap* self) {
1176 g_return_val_if_fail (self != NULL, NULL);
1177 return GEE_ABSTRACT_MULTI_MAP_GET_CLASS (self)->create_multi_key_set (self);
1181 static GeeEqualDataFunc gee_abstract_multi_map_real_get_value_equal_func (GeeAbstractMultiMap* self, void** result_target, GDestroyNotify* result_target_destroy_notify) {
1182 g_critical ("Type `%s' does not implement abstract method `gee_abstract_multi_map_get_value_equal_func'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
1187 GeeEqualDataFunc gee_abstract_multi_map_get_value_equal_func (GeeAbstractMultiMap* self, void** result_target, GDestroyNotify* result_target_destroy_notify) {
1188 g_return_val_if_fail (self != NULL, NULL);
1189 return GEE_ABSTRACT_MULTI_MAP_GET_CLASS (self)->get_value_equal_func (self, result_target, result_target_destroy_notify);
1193 static void gee_abstract_multi_map_real_reserved0 (GeeAbstractMultiMap* self) {
1197 void gee_abstract_multi_map_reserved0 (GeeAbstractMultiMap* self) {
1198 g_return_if_fail (self != NULL);
1199 GEE_ABSTRACT_MULTI_MAP_GET_CLASS (self)->reserved0 (self);
1203 static void gee_abstract_multi_map_real_reserved1 (GeeAbstractMultiMap* self) {
1207 void gee_abstract_multi_map_reserved1 (GeeAbstractMultiMap* self) {
1208 g_return_if_fail (self != NULL);
1209 GEE_ABSTRACT_MULTI_MAP_GET_CLASS (self)->reserved1 (self);
1213 static void gee_abstract_multi_map_real_reserved2 (GeeAbstractMultiMap* self) {
1217 void gee_abstract_multi_map_reserved2 (GeeAbstractMultiMap* self) {
1218 g_return_if_fail (self != NULL);
1219 GEE_ABSTRACT_MULTI_MAP_GET_CLASS (self)->reserved2 (self);
1223 static void gee_abstract_multi_map_real_reserved3 (GeeAbstractMultiMap* self) {
1227 void gee_abstract_multi_map_reserved3 (GeeAbstractMultiMap* self) {
1228 g_return_if_fail (self != NULL);
1229 GEE_ABSTRACT_MULTI_MAP_GET_CLASS (self)->reserved3 (self);
1233 static void gee_abstract_multi_map_real_reserved4 (GeeAbstractMultiMap* self) {
1237 void gee_abstract_multi_map_reserved4 (GeeAbstractMultiMap* self) {
1238 g_return_if_fail (self != NULL);
1239 GEE_ABSTRACT_MULTI_MAP_GET_CLASS (self)->reserved4 (self);
1243 static void gee_abstract_multi_map_real_reserved5 (GeeAbstractMultiMap* self) {
1247 void gee_abstract_multi_map_reserved5 (GeeAbstractMultiMap* self) {
1248 g_return_if_fail (self != NULL);
1249 GEE_ABSTRACT_MULTI_MAP_GET_CLASS (self)->reserved5 (self);
1253 static void gee_abstract_multi_map_real_reserved6 (GeeAbstractMultiMap* self) {
1257 void gee_abstract_multi_map_reserved6 (GeeAbstractMultiMap* self) {
1258 g_return_if_fail (self != NULL);
1259 GEE_ABSTRACT_MULTI_MAP_GET_CLASS (self)->reserved6 (self);
1263 static void gee_abstract_multi_map_real_reserved7 (GeeAbstractMultiMap* self) {
1267 void gee_abstract_multi_map_reserved7 (GeeAbstractMultiMap* self) {
1268 g_return_if_fail (self != NULL);
1269 GEE_ABSTRACT_MULTI_MAP_GET_CLASS (self)->reserved7 (self);
1273 static void gee_abstract_multi_map_real_reserved8 (GeeAbstractMultiMap* self) {
1277 void gee_abstract_multi_map_reserved8 (GeeAbstractMultiMap* self) {
1278 g_return_if_fail (self != NULL);
1279 GEE_ABSTRACT_MULTI_MAP_GET_CLASS (self)->reserved8 (self);
1283 static gint gee_abstract_multi_map_real_get_size (GeeMultiMap* base) {
1285 GeeAbstractMultiMap* self;
1287 self = (GeeAbstractMultiMap*) base;
1288 _tmp0_ = self->priv->_nitems;
1294 static gboolean gee_abstract_multi_map_real_get_read_only (GeeMultiMap* base) {
1296 GeeAbstractMultiMap* self;
1297 self = (GeeAbstractMultiMap*) base;
1303 GeeMultiMap* gee_abstract_multi_map_get_read_only_view (GeeAbstractMultiMap* self) {
1304 g_return_val_if_fail (self != NULL, NULL);
1305 return GEE_ABSTRACT_MULTI_MAP_GET_CLASS (self)->get_read_only_view (self);
1309 static GeeMultiMap* gee_abstract_multi_map_real_get_read_only_view (GeeAbstractMultiMap* base) {
1310 GeeMultiMap* result;
1311 GeeAbstractMultiMap* self;
1312 GeeMultiMap* _tmp0_;
1313 GeeMultiMap* _tmp1_;
1314 GeeMultiMap* instance;
1315 GeeMultiMap* _tmp2_;
1317 _tmp0_ = self->priv->_read_only_view;
1318 _tmp1_ = _g_object_ref0 (_tmp0_);
1320 _tmp2_ = self->priv->_read_only_view;
1321 if (_tmp2_ == NULL) {
1322 GeeReadOnlyMultiMap* _tmp3_;
1323 GeeMultiMap* _tmp4_;
1324 GeeMultiMap* _tmp5_;
1325 _tmp3_ = gee_read_only_multi_map_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, (GeeMultiMap*) self);
1326 _g_object_unref0 (instance);
1327 instance = (GeeMultiMap*) _tmp3_;
1329 self->priv->_read_only_view = _tmp4_;
1331 g_object_add_weak_pointer ((GObject*) _tmp5_, (void**) (&self->priv->_read_only_view));
1338 static GeeAbstractMultiMapAllKeys* gee_abstract_multi_map_all_keys_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, GeeAbstractMultiMap* multi_map) {
1339 GeeAbstractMultiMapAllKeys * self = NULL;
1340 GeeAbstractMultiMap* _tmp0_;
1341 GeeAbstractMultiMap* _tmp1_;
1342 g_return_val_if_fail (multi_map != NULL, NULL);
1343 self = (GeeAbstractMultiMapAllKeys*) gee_abstract_collection_construct (object_type, k_type, (GBoxedCopyFunc) k_dup_func, k_destroy_func);
1344 self->priv->k_type = k_type;
1345 self->priv->k_dup_func = k_dup_func;
1346 self->priv->k_destroy_func = k_destroy_func;
1347 self->priv->v_type = v_type;
1348 self->priv->v_dup_func = v_dup_func;
1349 self->priv->v_destroy_func = v_destroy_func;
1351 _tmp1_ = _g_object_ref0 (_tmp0_);
1352 _g_object_unref0 (self->_multi_map);
1353 self->_multi_map = _tmp1_;
1358 static GeeAbstractMultiMapAllKeys* gee_abstract_multi_map_all_keys_new (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeAbstractMultiMap* multi_map) {
1359 return gee_abstract_multi_map_all_keys_construct (GEE_ABSTRACT_MULTI_MAP_TYPE_ALL_KEYS, k_type, k_dup_func, k_destroy_func, v_type, v_dup_func, v_destroy_func, multi_map);
1363 static GeeIterator* gee_abstract_multi_map_all_keys_real_iterator (GeeAbstractCollection* base) {
1364 GeeAbstractMultiMapAllKeys * self;
1365 GeeIterator* result = NULL;
1366 GeeAbstractMultiMap* _tmp0_;
1368 GeeMapIterator* _tmp2_ = NULL;
1369 GeeMapIterator* _tmp3_;
1370 GeeAbstractMultiMapKeyIterator* _tmp4_;
1371 GeeIterator* _tmp5_;
1372 self = (GeeAbstractMultiMapAllKeys*) base;
1373 _tmp0_ = self->_multi_map;
1374 _tmp1_ = _tmp0_->_storage_map;
1375 _tmp2_ = gee_map_map_iterator (_tmp1_);
1377 _tmp4_ = gee_abstract_multi_map_key_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, _tmp3_);
1378 _tmp5_ = (GeeIterator*) _tmp4_;
1379 _g_object_unref0 (_tmp3_);
1385 static gboolean gee_abstract_multi_map_all_keys_real_contains (GeeAbstractCollection* base, gconstpointer key) {
1386 GeeAbstractMultiMapAllKeys * self;
1387 gboolean result = FALSE;
1388 GeeAbstractMultiMap* _tmp0_;
1390 gconstpointer _tmp2_;
1391 gboolean _tmp3_ = FALSE;
1392 self = (GeeAbstractMultiMapAllKeys*) base;
1393 _tmp0_ = self->_multi_map;
1394 _tmp1_ = _tmp0_->_storage_map;
1396 _tmp3_ = gee_map_has_key (_tmp1_, _tmp2_);
1402 static gboolean gee_abstract_multi_map_all_keys_real_add (GeeAbstractCollection* base, gconstpointer key) {
1403 GeeAbstractMultiMapAllKeys * self;
1404 gboolean result = FALSE;
1405 self = (GeeAbstractMultiMapAllKeys*) base;
1406 g_assert_not_reached ();
1411 static gboolean gee_abstract_multi_map_all_keys_real_remove (GeeAbstractCollection* base, gconstpointer item) {
1412 GeeAbstractMultiMapAllKeys * self;
1413 gboolean result = FALSE;
1414 self = (GeeAbstractMultiMapAllKeys*) base;
1415 g_assert_not_reached ();
1420 static void gee_abstract_multi_map_all_keys_real_clear (GeeAbstractCollection* base) {
1421 GeeAbstractMultiMapAllKeys * self;
1422 self = (GeeAbstractMultiMapAllKeys*) base;
1423 g_assert_not_reached ();
1427 static gint gee_abstract_multi_map_all_keys_real_count (GeeMultiSet* base, gconstpointer item) {
1428 GeeAbstractMultiMapAllKeys * self;
1430 GeeAbstractMultiMap* _tmp0_;
1432 gconstpointer _tmp2_;
1433 gpointer _tmp3_ = NULL;
1434 GeeCollection* collection;
1436 GeeCollection* _tmp5_;
1438 self = (GeeAbstractMultiMapAllKeys*) base;
1439 _tmp0_ = self->_multi_map;
1440 _tmp1_ = _tmp0_->_storage_map;
1442 _tmp3_ = gee_map_get (_tmp1_, _tmp2_);
1443 collection = (GeeCollection*) _tmp3_;
1444 _tmp5_ = collection;
1445 if (_tmp5_ != NULL) {
1446 GeeCollection* _tmp6_;
1449 _tmp6_ = collection;
1450 _tmp7_ = gee_collection_get_size (_tmp6_);
1458 _g_object_unref0 (collection);
1463 static gint gee_abstract_multi_map_all_keys_real_get_size (GeeAbstractCollection* base) {
1465 GeeAbstractMultiMapAllKeys* self;
1466 GeeAbstractMultiMap* _tmp0_;
1469 self = (GeeAbstractMultiMapAllKeys*) base;
1470 _tmp0_ = self->_multi_map;
1471 _tmp1_ = gee_multi_map_get_size ((GeeMultiMap*) _tmp0_);
1478 static gboolean gee_abstract_multi_map_all_keys_real_get_read_only (GeeAbstractCollection* base) {
1480 GeeAbstractMultiMapAllKeys* self;
1481 self = (GeeAbstractMultiMapAllKeys*) base;
1487 static void gee_abstract_multi_map_all_keys_class_init (GeeAbstractMultiMapAllKeysClass * klass) {
1488 gee_abstract_multi_map_all_keys_parent_class = g_type_class_peek_parent (klass);
1489 g_type_class_add_private (klass, sizeof (GeeAbstractMultiMapAllKeysPrivate));
1490 GEE_ABSTRACT_COLLECTION_CLASS (klass)->iterator = gee_abstract_multi_map_all_keys_real_iterator;
1491 GEE_ABSTRACT_COLLECTION_CLASS (klass)->contains = gee_abstract_multi_map_all_keys_real_contains;
1492 GEE_ABSTRACT_COLLECTION_CLASS (klass)->add = gee_abstract_multi_map_all_keys_real_add;
1493 GEE_ABSTRACT_COLLECTION_CLASS (klass)->remove = gee_abstract_multi_map_all_keys_real_remove;
1494 GEE_ABSTRACT_COLLECTION_CLASS (klass)->clear = gee_abstract_multi_map_all_keys_real_clear;
1495 GEE_ABSTRACT_COLLECTION_CLASS (klass)->get_size = gee_abstract_multi_map_all_keys_real_get_size;
1496 GEE_ABSTRACT_COLLECTION_CLASS (klass)->get_read_only = gee_abstract_multi_map_all_keys_real_get_read_only;
1497 G_OBJECT_CLASS (klass)->get_property = _vala_gee_abstract_multi_map_all_keys_get_property;
1498 G_OBJECT_CLASS (klass)->set_property = _vala_gee_abstract_multi_map_all_keys_set_property;
1499 G_OBJECT_CLASS (klass)->finalize = gee_abstract_multi_map_all_keys_finalize;
1500 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_ABSTRACT_MULTI_MAP_ALL_KEYS_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));
1501 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_ABSTRACT_MULTI_MAP_ALL_KEYS_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));
1502 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_ABSTRACT_MULTI_MAP_ALL_KEYS_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));
1503 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_ABSTRACT_MULTI_MAP_ALL_KEYS_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));
1504 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_ABSTRACT_MULTI_MAP_ALL_KEYS_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));
1505 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_ABSTRACT_MULTI_MAP_ALL_KEYS_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));
1506 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_ABSTRACT_MULTI_MAP_ALL_KEYS_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));
1507 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_ABSTRACT_MULTI_MAP_ALL_KEYS_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));
1511 static GType gee_abstract_multi_map_all_keys_gee_multi_set_get_g_type (GeeAbstractMultiMapAllKeys* self) {
1512 return self->priv->k_type;
1516 static GBoxedCopyFunc gee_abstract_multi_map_all_keys_gee_multi_set_get_g_dup_func (GeeAbstractMultiMapAllKeys* self) {
1517 return self->priv->k_dup_func;
1521 static GDestroyNotify gee_abstract_multi_map_all_keys_gee_multi_set_get_g_destroy_func (GeeAbstractMultiMapAllKeys* self) {
1522 return self->priv->k_destroy_func;
1526 static void gee_abstract_multi_map_all_keys_gee_multi_set_interface_init (GeeMultiSetIface * iface) {
1527 gee_abstract_multi_map_all_keys_gee_multi_set_parent_iface = g_type_interface_peek_parent (iface);
1528 iface->count = (gint (*)(GeeMultiSet*, gconstpointer)) gee_abstract_multi_map_all_keys_real_count;
1529 iface->get_g_type = (GType(*)(GeeMultiSet*)) gee_abstract_multi_map_all_keys_gee_multi_set_get_g_type;
1530 iface->get_g_dup_func = (GBoxedCopyFunc(*)(GeeMultiSet*)) gee_abstract_multi_map_all_keys_gee_multi_set_get_g_dup_func;
1531 iface->get_g_destroy_func = (GDestroyNotify(*)(GeeMultiSet*)) gee_abstract_multi_map_all_keys_gee_multi_set_get_g_destroy_func;
1535 static void gee_abstract_multi_map_all_keys_instance_init (GeeAbstractMultiMapAllKeys * self) {
1536 self->priv = GEE_ABSTRACT_MULTI_MAP_ALL_KEYS_GET_PRIVATE (self);
1540 static void gee_abstract_multi_map_all_keys_finalize (GObject* obj) {
1541 GeeAbstractMultiMapAllKeys * self;
1542 self = G_TYPE_CHECK_INSTANCE_CAST (obj, GEE_ABSTRACT_MULTI_MAP_TYPE_ALL_KEYS, GeeAbstractMultiMapAllKeys);
1543 _g_object_unref0 (self->_multi_map);
1544 G_OBJECT_CLASS (gee_abstract_multi_map_all_keys_parent_class)->finalize (obj);
1548 static GType gee_abstract_multi_map_all_keys_get_type (void) {
1549 static volatile gsize gee_abstract_multi_map_all_keys_type_id__volatile = 0;
1550 if (g_once_init_enter (&gee_abstract_multi_map_all_keys_type_id__volatile)) {
1551 static const GTypeInfo g_define_type_info = { sizeof (GeeAbstractMultiMapAllKeysClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_abstract_multi_map_all_keys_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeAbstractMultiMapAllKeys), 0, (GInstanceInitFunc) gee_abstract_multi_map_all_keys_instance_init, NULL };
1552 static const GInterfaceInfo gee_multi_set_info = { (GInterfaceInitFunc) gee_abstract_multi_map_all_keys_gee_multi_set_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
1553 GType gee_abstract_multi_map_all_keys_type_id;
1554 gee_abstract_multi_map_all_keys_type_id = g_type_register_static (GEE_TYPE_ABSTRACT_COLLECTION, "GeeAbstractMultiMapAllKeys", &g_define_type_info, 0);
1555 g_type_add_interface_static (gee_abstract_multi_map_all_keys_type_id, GEE_TYPE_MULTI_SET, &gee_multi_set_info);
1556 g_once_init_leave (&gee_abstract_multi_map_all_keys_type_id__volatile, gee_abstract_multi_map_all_keys_type_id);
1558 return gee_abstract_multi_map_all_keys_type_id__volatile;
1562 static void _vala_gee_abstract_multi_map_all_keys_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
1563 GeeAbstractMultiMapAllKeys * self;
1564 self = G_TYPE_CHECK_INSTANCE_CAST (object, GEE_ABSTRACT_MULTI_MAP_TYPE_ALL_KEYS, GeeAbstractMultiMapAllKeys);
1565 switch (property_id) {
1566 case GEE_ABSTRACT_MULTI_MAP_ALL_KEYS_SIZE:
1567 g_value_set_int (value, gee_abstract_collection_get_size ((GeeAbstractCollection*) self));
1569 case GEE_ABSTRACT_MULTI_MAP_ALL_KEYS_READ_ONLY:
1570 g_value_set_boolean (value, gee_abstract_collection_get_read_only ((GeeAbstractCollection*) self));
1573 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
1579 static void _vala_gee_abstract_multi_map_all_keys_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
1580 GeeAbstractMultiMapAllKeys * self;
1581 self = G_TYPE_CHECK_INSTANCE_CAST (object, GEE_ABSTRACT_MULTI_MAP_TYPE_ALL_KEYS, GeeAbstractMultiMapAllKeys);
1582 switch (property_id) {
1583 case GEE_ABSTRACT_MULTI_MAP_ALL_KEYS_K_TYPE:
1584 self->priv->k_type = g_value_get_gtype (value);
1586 case GEE_ABSTRACT_MULTI_MAP_ALL_KEYS_K_DUP_FUNC:
1587 self->priv->k_dup_func = g_value_get_pointer (value);
1589 case GEE_ABSTRACT_MULTI_MAP_ALL_KEYS_K_DESTROY_FUNC:
1590 self->priv->k_destroy_func = g_value_get_pointer (value);
1592 case GEE_ABSTRACT_MULTI_MAP_ALL_KEYS_V_TYPE:
1593 self->priv->v_type = g_value_get_gtype (value);
1595 case GEE_ABSTRACT_MULTI_MAP_ALL_KEYS_V_DUP_FUNC:
1596 self->priv->v_dup_func = g_value_get_pointer (value);
1598 case GEE_ABSTRACT_MULTI_MAP_ALL_KEYS_V_DESTROY_FUNC:
1599 self->priv->v_destroy_func = g_value_get_pointer (value);
1602 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
1608 static GeeAbstractMultiMapValues* gee_abstract_multi_map_values_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, GeeAbstractMultiMap* multi_map) {
1609 GeeAbstractMultiMapValues * self = NULL;
1610 GeeAbstractMultiMap* _tmp0_;
1611 GeeAbstractMultiMap* _tmp1_;
1612 g_return_val_if_fail (multi_map != NULL, NULL);
1613 self = (GeeAbstractMultiMapValues*) gee_abstract_collection_construct (object_type, v_type, (GBoxedCopyFunc) v_dup_func, v_destroy_func);
1614 self->priv->k_type = k_type;
1615 self->priv->k_dup_func = k_dup_func;
1616 self->priv->k_destroy_func = k_destroy_func;
1617 self->priv->v_type = v_type;
1618 self->priv->v_dup_func = v_dup_func;
1619 self->priv->v_destroy_func = v_destroy_func;
1621 _tmp1_ = _g_object_ref0 (_tmp0_);
1622 _g_object_unref0 (self->_multi_map);
1623 self->_multi_map = _tmp1_;
1628 static GeeAbstractMultiMapValues* gee_abstract_multi_map_values_new (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeAbstractMultiMap* multi_map) {
1629 return gee_abstract_multi_map_values_construct (GEE_ABSTRACT_MULTI_MAP_TYPE_VALUES, k_type, k_dup_func, k_destroy_func, v_type, v_dup_func, v_destroy_func, multi_map);
1633 static GeeIterator* gee_abstract_multi_map_values_real_iterator (GeeAbstractCollection* base) {
1634 GeeAbstractMultiMapValues * self;
1635 GeeIterator* result = NULL;
1636 GeeAbstractMultiMap* _tmp0_;
1638 GeeMapIterator* _tmp2_ = NULL;
1639 GeeMapIterator* _tmp3_;
1640 GeeAbstractMultiMapValueIterator* _tmp4_;
1641 GeeIterator* _tmp5_;
1642 self = (GeeAbstractMultiMapValues*) base;
1643 _tmp0_ = self->_multi_map;
1644 _tmp1_ = _tmp0_->_storage_map;
1645 _tmp2_ = gee_map_map_iterator (_tmp1_);
1647 _tmp4_ = gee_abstract_multi_map_value_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, _tmp3_);
1648 _tmp5_ = (GeeIterator*) _tmp4_;
1649 _g_object_unref0 (_tmp3_);
1655 static gboolean gee_abstract_multi_map_values_real_contains (GeeAbstractCollection* base, gconstpointer value) {
1656 GeeAbstractMultiMapValues * self;
1657 gboolean result = FALSE;
1658 self = (GeeAbstractMultiMapValues*) base;
1660 GeeAbstractMultiMap* _tmp0_;
1662 GeeCollection* _tmp2_;
1663 GeeCollection* _tmp3_;
1664 GeeCollection* _tmp4_;
1665 GeeIterator* _tmp5_ = NULL;
1666 GeeIterator* _tmp6_;
1667 GeeIterator* _col_it;
1668 _tmp0_ = self->_multi_map;
1669 _tmp1_ = _tmp0_->_storage_map;
1670 _tmp2_ = gee_map_get_values (_tmp1_);
1673 _tmp5_ = gee_iterable_iterator ((GeeIterable*) _tmp4_);
1675 _g_object_unref0 (_tmp4_);
1678 GeeIterator* _tmp7_;
1679 gboolean _tmp8_ = FALSE;
1680 GeeIterator* _tmp9_;
1681 gpointer _tmp10_ = NULL;
1683 GeeCollection* _tmp11_;
1684 gconstpointer _tmp12_;
1685 gboolean _tmp13_ = FALSE;
1687 _tmp8_ = gee_iterator_next (_tmp7_);
1692 _tmp10_ = gee_iterator_get (_tmp9_);
1693 col = (GeeCollection*) _tmp10_;
1696 _tmp13_ = gee_collection_contains (_tmp11_, _tmp12_);
1699 _g_object_unref0 (col);
1700 _g_object_unref0 (_col_it);
1703 _g_object_unref0 (col);
1705 _g_object_unref0 (_col_it);
1712 static gboolean gee_abstract_multi_map_values_real_add (GeeAbstractCollection* base, gconstpointer key) {
1713 GeeAbstractMultiMapValues * self;
1714 gboolean result = FALSE;
1715 self = (GeeAbstractMultiMapValues*) base;
1716 g_assert_not_reached ();
1721 static gboolean gee_abstract_multi_map_values_real_remove (GeeAbstractCollection* base, gconstpointer item) {
1722 GeeAbstractMultiMapValues * self;
1723 gboolean result = FALSE;
1724 self = (GeeAbstractMultiMapValues*) base;
1725 g_assert_not_reached ();
1730 static void gee_abstract_multi_map_values_real_clear (GeeAbstractCollection* base) {
1731 GeeAbstractMultiMapValues * self;
1732 self = (GeeAbstractMultiMapValues*) base;
1733 g_assert_not_reached ();
1737 static gint gee_abstract_multi_map_values_real_get_size (GeeAbstractCollection* base) {
1739 GeeAbstractMultiMapValues* self;
1740 GeeAbstractMultiMap* _tmp0_;
1743 self = (GeeAbstractMultiMapValues*) base;
1744 _tmp0_ = self->_multi_map;
1745 _tmp1_ = gee_multi_map_get_size ((GeeMultiMap*) _tmp0_);
1752 static gboolean gee_abstract_multi_map_values_real_get_read_only (GeeAbstractCollection* base) {
1754 GeeAbstractMultiMapValues* self;
1755 self = (GeeAbstractMultiMapValues*) base;
1761 static void gee_abstract_multi_map_values_class_init (GeeAbstractMultiMapValuesClass * klass) {
1762 gee_abstract_multi_map_values_parent_class = g_type_class_peek_parent (klass);
1763 g_type_class_add_private (klass, sizeof (GeeAbstractMultiMapValuesPrivate));
1764 GEE_ABSTRACT_COLLECTION_CLASS (klass)->iterator = gee_abstract_multi_map_values_real_iterator;
1765 GEE_ABSTRACT_COLLECTION_CLASS (klass)->contains = gee_abstract_multi_map_values_real_contains;
1766 GEE_ABSTRACT_COLLECTION_CLASS (klass)->add = gee_abstract_multi_map_values_real_add;
1767 GEE_ABSTRACT_COLLECTION_CLASS (klass)->remove = gee_abstract_multi_map_values_real_remove;
1768 GEE_ABSTRACT_COLLECTION_CLASS (klass)->clear = gee_abstract_multi_map_values_real_clear;
1769 GEE_ABSTRACT_COLLECTION_CLASS (klass)->get_size = gee_abstract_multi_map_values_real_get_size;
1770 GEE_ABSTRACT_COLLECTION_CLASS (klass)->get_read_only = gee_abstract_multi_map_values_real_get_read_only;
1771 G_OBJECT_CLASS (klass)->get_property = _vala_gee_abstract_multi_map_values_get_property;
1772 G_OBJECT_CLASS (klass)->set_property = _vala_gee_abstract_multi_map_values_set_property;
1773 G_OBJECT_CLASS (klass)->finalize = gee_abstract_multi_map_values_finalize;
1774 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_ABSTRACT_MULTI_MAP_VALUES_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));
1775 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_ABSTRACT_MULTI_MAP_VALUES_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));
1776 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_ABSTRACT_MULTI_MAP_VALUES_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));
1777 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_ABSTRACT_MULTI_MAP_VALUES_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));
1778 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_ABSTRACT_MULTI_MAP_VALUES_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));
1779 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_ABSTRACT_MULTI_MAP_VALUES_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));
1780 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_ABSTRACT_MULTI_MAP_VALUES_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));
1781 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_ABSTRACT_MULTI_MAP_VALUES_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));
1785 static void gee_abstract_multi_map_values_instance_init (GeeAbstractMultiMapValues * self) {
1786 self->priv = GEE_ABSTRACT_MULTI_MAP_VALUES_GET_PRIVATE (self);
1790 static void gee_abstract_multi_map_values_finalize (GObject* obj) {
1791 GeeAbstractMultiMapValues * self;
1792 self = G_TYPE_CHECK_INSTANCE_CAST (obj, GEE_ABSTRACT_MULTI_MAP_TYPE_VALUES, GeeAbstractMultiMapValues);
1793 _g_object_unref0 (self->_multi_map);
1794 G_OBJECT_CLASS (gee_abstract_multi_map_values_parent_class)->finalize (obj);
1798 static GType gee_abstract_multi_map_values_get_type (void) {
1799 static volatile gsize gee_abstract_multi_map_values_type_id__volatile = 0;
1800 if (g_once_init_enter (&gee_abstract_multi_map_values_type_id__volatile)) {
1801 static const GTypeInfo g_define_type_info = { sizeof (GeeAbstractMultiMapValuesClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_abstract_multi_map_values_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeAbstractMultiMapValues), 0, (GInstanceInitFunc) gee_abstract_multi_map_values_instance_init, NULL };
1802 GType gee_abstract_multi_map_values_type_id;
1803 gee_abstract_multi_map_values_type_id = g_type_register_static (GEE_TYPE_ABSTRACT_COLLECTION, "GeeAbstractMultiMapValues", &g_define_type_info, 0);
1804 g_once_init_leave (&gee_abstract_multi_map_values_type_id__volatile, gee_abstract_multi_map_values_type_id);
1806 return gee_abstract_multi_map_values_type_id__volatile;
1810 static void _vala_gee_abstract_multi_map_values_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
1811 GeeAbstractMultiMapValues * self;
1812 self = G_TYPE_CHECK_INSTANCE_CAST (object, GEE_ABSTRACT_MULTI_MAP_TYPE_VALUES, GeeAbstractMultiMapValues);
1813 switch (property_id) {
1814 case GEE_ABSTRACT_MULTI_MAP_VALUES_SIZE:
1815 g_value_set_int (value, gee_abstract_collection_get_size ((GeeAbstractCollection*) self));
1817 case GEE_ABSTRACT_MULTI_MAP_VALUES_READ_ONLY:
1818 g_value_set_boolean (value, gee_abstract_collection_get_read_only ((GeeAbstractCollection*) self));
1821 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
1827 static void _vala_gee_abstract_multi_map_values_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
1828 GeeAbstractMultiMapValues * self;
1829 self = G_TYPE_CHECK_INSTANCE_CAST (object, GEE_ABSTRACT_MULTI_MAP_TYPE_VALUES, GeeAbstractMultiMapValues);
1830 switch (property_id) {
1831 case GEE_ABSTRACT_MULTI_MAP_VALUES_K_TYPE:
1832 self->priv->k_type = g_value_get_gtype (value);
1834 case GEE_ABSTRACT_MULTI_MAP_VALUES_K_DUP_FUNC:
1835 self->priv->k_dup_func = g_value_get_pointer (value);
1837 case GEE_ABSTRACT_MULTI_MAP_VALUES_K_DESTROY_FUNC:
1838 self->priv->k_destroy_func = g_value_get_pointer (value);
1840 case GEE_ABSTRACT_MULTI_MAP_VALUES_V_TYPE:
1841 self->priv->v_type = g_value_get_gtype (value);
1843 case GEE_ABSTRACT_MULTI_MAP_VALUES_V_DUP_FUNC:
1844 self->priv->v_dup_func = g_value_get_pointer (value);
1846 case GEE_ABSTRACT_MULTI_MAP_VALUES_V_DESTROY_FUNC:
1847 self->priv->v_destroy_func = g_value_get_pointer (value);
1850 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
1856 static GeeAbstractMultiMapMappingIterator* gee_abstract_multi_map_mapping_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* outer) {
1857 GeeAbstractMultiMapMappingIterator * self = NULL;
1858 GeeMapIterator* _tmp0_;
1859 GeeMapIterator* _tmp1_;
1860 self = (GeeAbstractMultiMapMappingIterator*) g_object_new (object_type, NULL);
1861 self->priv->k_type = k_type;
1862 self->priv->k_dup_func = k_dup_func;
1863 self->priv->k_destroy_func = k_destroy_func;
1864 self->priv->v_type = v_type;
1865 self->priv->v_dup_func = v_dup_func;
1866 self->priv->v_destroy_func = v_destroy_func;
1868 _tmp1_ = _g_object_ref0 (_tmp0_);
1869 _g_object_unref0 (self->outer);
1870 self->outer = _tmp1_;
1875 static GeeAbstractMultiMapMappingIterator* gee_abstract_multi_map_mapping_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* outer) {
1876 return gee_abstract_multi_map_mapping_iterator_construct (GEE_ABSTRACT_MULTI_MAP_TYPE_MAPPING_ITERATOR, k_type, k_dup_func, k_destroy_func, v_type, v_dup_func, v_destroy_func, outer);
1880 static gboolean gee_abstract_multi_map_mapping_iterator_next (GeeAbstractMultiMapMappingIterator* self) {
1881 gboolean result = FALSE;
1882 gboolean _tmp0_ = FALSE;
1883 GeeIterator* _tmp1_;
1885 g_return_val_if_fail (self != NULL, FALSE);
1886 _tmp1_ = self->inner;
1887 if (_tmp1_ != NULL) {
1888 GeeIterator* _tmp2_;
1889 gboolean _tmp3_ = FALSE;
1890 _tmp2_ = self->inner;
1891 _tmp3_ = gee_iterator_next (_tmp2_);
1901 GeeMapIterator* _tmp5_;
1902 gboolean _tmp6_ = FALSE;
1903 _tmp5_ = self->outer;
1904 _tmp6_ = gee_map_iterator_next (_tmp5_);
1906 GeeMapIterator* _tmp7_;
1907 gpointer _tmp8_ = NULL;
1908 GeeCollection* _tmp9_;
1909 GeeIterator* _tmp10_ = NULL;
1910 GeeIterator* _tmp11_;
1911 gboolean _tmp12_ = FALSE;
1912 _tmp7_ = self->outer;
1913 _tmp8_ = gee_map_iterator_get_value (_tmp7_);
1914 _tmp9_ = (GeeCollection*) _tmp8_;
1915 _tmp10_ = gee_iterable_iterator ((GeeIterable*) _tmp9_);
1916 _g_object_unref0 (self->inner);
1917 self->inner = _tmp10_;
1918 _g_object_unref0 (_tmp9_);
1919 _tmp11_ = self->inner;
1920 _tmp12_ = gee_iterator_next (_tmp11_);
1921 _vala_assert (_tmp12_, "inner.next ()");
1932 static gboolean gee_abstract_multi_map_mapping_iterator_has_next (GeeAbstractMultiMapMappingIterator* self) {
1933 gboolean result = FALSE;
1934 gboolean _tmp0_ = FALSE;
1935 GeeIterator* _tmp1_;
1936 gboolean _tmp2_ = FALSE;
1938 g_return_val_if_fail (self != NULL, FALSE);
1939 _tmp1_ = self->inner;
1940 _tmp2_ = gee_iterator_has_next (_tmp1_);
1944 GeeMapIterator* _tmp3_;
1945 gboolean _tmp4_ = FALSE;
1946 _tmp3_ = self->outer;
1947 _tmp4_ = gee_map_iterator_has_next (_tmp3_);
1956 static void gee_abstract_multi_map_mapping_iterator_remove (GeeAbstractMultiMapMappingIterator* self) {
1957 g_return_if_fail (self != NULL);
1958 g_assert_not_reached ();
1962 static void gee_abstract_multi_map_mapping_iterator_unset (GeeAbstractMultiMapMappingIterator* self) {
1963 GeeIterator* _tmp0_;
1964 GeeMapIterator* _tmp1_;
1965 gpointer _tmp2_ = NULL;
1966 GeeCollection* _tmp3_;
1970 g_return_if_fail (self != NULL);
1971 _tmp0_ = self->inner;
1972 gee_iterator_remove (_tmp0_);
1973 _tmp1_ = self->outer;
1974 _tmp2_ = gee_map_iterator_get_value (_tmp1_);
1975 _tmp3_ = (GeeCollection*) _tmp2_;
1976 _tmp4_ = gee_collection_get_is_empty (_tmp3_);
1979 _g_object_unref0 (_tmp3_);
1981 GeeMapIterator* _tmp7_;
1982 _tmp7_ = self->outer;
1983 gee_map_iterator_unset (_tmp7_);
1988 static gboolean gee_abstract_multi_map_mapping_iterator_get_read_only (GeeAbstractMultiMapMappingIterator* self) {
1989 g_return_val_if_fail (self != NULL, FALSE);
1990 return GEE_ABSTRACT_MULTI_MAP_MAPPING_ITERATOR_GET_CLASS (self)->get_read_only (self);
1994 static gboolean gee_abstract_multi_map_mapping_iterator_real_get_read_only (GeeAbstractMultiMapMappingIterator* base) {
1996 GeeAbstractMultiMapMappingIterator* self;
2003 static gboolean gee_abstract_multi_map_mapping_iterator_get_valid (GeeAbstractMultiMapMappingIterator* self) {
2005 gboolean _tmp0_ = FALSE;
2006 GeeIterator* _tmp1_;
2008 g_return_val_if_fail (self != NULL, FALSE);
2009 _tmp1_ = self->inner;
2010 if (_tmp1_ != NULL) {
2011 GeeIterator* _tmp2_;
2014 _tmp2_ = self->inner;
2015 _tmp3_ = gee_iterator_get_valid (_tmp2_);
2027 static void gee_abstract_multi_map_mapping_iterator_class_init (GeeAbstractMultiMapMappingIteratorClass * klass) {
2028 gee_abstract_multi_map_mapping_iterator_parent_class = g_type_class_peek_parent (klass);
2029 g_type_class_add_private (klass, sizeof (GeeAbstractMultiMapMappingIteratorPrivate));
2030 GEE_ABSTRACT_MULTI_MAP_MAPPING_ITERATOR_CLASS (klass)->get_read_only = gee_abstract_multi_map_mapping_iterator_real_get_read_only;
2031 G_OBJECT_CLASS (klass)->get_property = _vala_gee_abstract_multi_map_mapping_iterator_get_property;
2032 G_OBJECT_CLASS (klass)->set_property = _vala_gee_abstract_multi_map_mapping_iterator_set_property;
2033 G_OBJECT_CLASS (klass)->finalize = gee_abstract_multi_map_mapping_iterator_finalize;
2034 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_ABSTRACT_MULTI_MAP_MAPPING_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));
2035 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_ABSTRACT_MULTI_MAP_MAPPING_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));
2036 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_ABSTRACT_MULTI_MAP_MAPPING_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));
2037 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_ABSTRACT_MULTI_MAP_MAPPING_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));
2038 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_ABSTRACT_MULTI_MAP_MAPPING_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));
2039 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_ABSTRACT_MULTI_MAP_MAPPING_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));
2040 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_ABSTRACT_MULTI_MAP_MAPPING_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));
2041 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_ABSTRACT_MULTI_MAP_MAPPING_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));
2045 static void gee_abstract_multi_map_mapping_iterator_instance_init (GeeAbstractMultiMapMappingIterator * self) {
2046 self->priv = GEE_ABSTRACT_MULTI_MAP_MAPPING_ITERATOR_GET_PRIVATE (self);
2051 static void gee_abstract_multi_map_mapping_iterator_finalize (GObject* obj) {
2052 GeeAbstractMultiMapMappingIterator * self;
2053 self = G_TYPE_CHECK_INSTANCE_CAST (obj, GEE_ABSTRACT_MULTI_MAP_TYPE_MAPPING_ITERATOR, GeeAbstractMultiMapMappingIterator);
2054 _g_object_unref0 (self->outer);
2055 _g_object_unref0 (self->inner);
2056 G_OBJECT_CLASS (gee_abstract_multi_map_mapping_iterator_parent_class)->finalize (obj);
2060 static GType gee_abstract_multi_map_mapping_iterator_get_type (void) {
2061 static volatile gsize gee_abstract_multi_map_mapping_iterator_type_id__volatile = 0;
2062 if (g_once_init_enter (&gee_abstract_multi_map_mapping_iterator_type_id__volatile)) {
2063 static const GTypeInfo g_define_type_info = { sizeof (GeeAbstractMultiMapMappingIteratorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_abstract_multi_map_mapping_iterator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeAbstractMultiMapMappingIterator), 0, (GInstanceInitFunc) gee_abstract_multi_map_mapping_iterator_instance_init, NULL };
2064 GType gee_abstract_multi_map_mapping_iterator_type_id;
2065 gee_abstract_multi_map_mapping_iterator_type_id = g_type_register_static (G_TYPE_OBJECT, "GeeAbstractMultiMapMappingIterator", &g_define_type_info, 0);
2066 g_once_init_leave (&gee_abstract_multi_map_mapping_iterator_type_id__volatile, gee_abstract_multi_map_mapping_iterator_type_id);
2068 return gee_abstract_multi_map_mapping_iterator_type_id__volatile;
2072 static void _vala_gee_abstract_multi_map_mapping_iterator_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
2073 GeeAbstractMultiMapMappingIterator * self;
2074 self = G_TYPE_CHECK_INSTANCE_CAST (object, GEE_ABSTRACT_MULTI_MAP_TYPE_MAPPING_ITERATOR, GeeAbstractMultiMapMappingIterator);
2075 switch (property_id) {
2076 case GEE_ABSTRACT_MULTI_MAP_MAPPING_ITERATOR_READ_ONLY:
2077 g_value_set_boolean (value, gee_abstract_multi_map_mapping_iterator_get_read_only (self));
2079 case GEE_ABSTRACT_MULTI_MAP_MAPPING_ITERATOR_VALID:
2080 g_value_set_boolean (value, gee_abstract_multi_map_mapping_iterator_get_valid (self));
2083 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
2089 static void _vala_gee_abstract_multi_map_mapping_iterator_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
2090 GeeAbstractMultiMapMappingIterator * self;
2091 self = G_TYPE_CHECK_INSTANCE_CAST (object, GEE_ABSTRACT_MULTI_MAP_TYPE_MAPPING_ITERATOR, GeeAbstractMultiMapMappingIterator);
2092 switch (property_id) {
2093 case GEE_ABSTRACT_MULTI_MAP_MAPPING_ITERATOR_K_TYPE:
2094 self->priv->k_type = g_value_get_gtype (value);
2096 case GEE_ABSTRACT_MULTI_MAP_MAPPING_ITERATOR_K_DUP_FUNC:
2097 self->priv->k_dup_func = g_value_get_pointer (value);
2099 case GEE_ABSTRACT_MULTI_MAP_MAPPING_ITERATOR_K_DESTROY_FUNC:
2100 self->priv->k_destroy_func = g_value_get_pointer (value);
2102 case GEE_ABSTRACT_MULTI_MAP_MAPPING_ITERATOR_V_TYPE:
2103 self->priv->v_type = g_value_get_gtype (value);
2105 case GEE_ABSTRACT_MULTI_MAP_MAPPING_ITERATOR_V_DUP_FUNC:
2106 self->priv->v_dup_func = g_value_get_pointer (value);
2108 case GEE_ABSTRACT_MULTI_MAP_MAPPING_ITERATOR_V_DESTROY_FUNC:
2109 self->priv->v_destroy_func = g_value_get_pointer (value);
2112 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
2118 static GeeAbstractMultiMapKeyIterator* gee_abstract_multi_map_key_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* outer) {
2119 GeeAbstractMultiMapKeyIterator * self = NULL;
2120 GeeMapIterator* _tmp0_;
2122 self = (GeeAbstractMultiMapKeyIterator*) gee_abstract_multi_map_mapping_iterator_construct (object_type, k_type, (GBoxedCopyFunc) k_dup_func, k_destroy_func, v_type, (GBoxedCopyFunc) v_dup_func, v_destroy_func, _tmp0_);
2123 self->priv->k_type = k_type;
2124 self->priv->k_dup_func = k_dup_func;
2125 self->priv->k_destroy_func = k_destroy_func;
2126 self->priv->v_type = v_type;
2127 self->priv->v_dup_func = v_dup_func;
2128 self->priv->v_destroy_func = v_destroy_func;
2133 static GeeAbstractMultiMapKeyIterator* gee_abstract_multi_map_key_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* outer) {
2134 return gee_abstract_multi_map_key_iterator_construct (GEE_ABSTRACT_MULTI_MAP_TYPE_KEY_ITERATOR, k_type, k_dup_func, k_destroy_func, v_type, v_dup_func, v_destroy_func, outer);
2138 static gpointer gee_abstract_multi_map_key_iterator_real_get (GeeIterator* base) {
2139 GeeAbstractMultiMapKeyIterator * self;
2140 gpointer result = NULL;
2143 GeeMapIterator* _tmp2_;
2144 gpointer _tmp3_ = NULL;
2145 self = (GeeAbstractMultiMapKeyIterator*) base;
2146 _tmp0_ = gee_iterator_get_valid ((GeeIterator*) self);
2148 _vala_assert (_tmp1_, "valid");
2149 _tmp2_ = ((GeeAbstractMultiMapMappingIterator*) self)->outer;
2150 _tmp3_ = gee_map_iterator_get_key (_tmp2_);
2156 static Block1Data* block1_data_ref (Block1Data* _data1_) {
2157 g_atomic_int_inc (&_data1_->_ref_count_);
2162 static void block1_data_unref (void * _userdata_) {
2163 Block1Data* _data1_;
2164 _data1_ = (Block1Data*) _userdata_;
2165 if (g_atomic_int_dec_and_test (&_data1_->_ref_count_)) {
2166 GeeAbstractMultiMapKeyIterator * self;
2167 self = _data1_->self;
2168 _g_object_unref0 (self);
2169 g_slice_free (Block1Data, _data1_);
2174 static Block2Data* block2_data_ref (Block2Data* _data2_) {
2175 g_atomic_int_inc (&_data2_->_ref_count_);
2180 static void block2_data_unref (void * _userdata_) {
2181 Block2Data* _data2_;
2182 _data2_ = (Block2Data*) _userdata_;
2183 if (g_atomic_int_dec_and_test (&_data2_->_ref_count_)) {
2184 GeeAbstractMultiMapKeyIterator * self;
2185 self = _data2_->_data1_->self;
2186 ((_data2_->key == NULL) || (self->priv->k_destroy_func == NULL)) ? NULL : (_data2_->key = (self->priv->k_destroy_func (_data2_->key), NULL));
2187 block1_data_unref (_data2_->_data1_);
2188 _data2_->_data1_ = NULL;
2189 g_slice_free (Block2Data, _data2_);
2194 static gboolean ___lambda29_ (Block2Data* _data2_, gpointer v) {
2195 Block1Data* _data1_;
2196 GeeAbstractMultiMapKeyIterator * self;
2197 gboolean result = FALSE;
2198 GeeForallFunc _tmp0_;
2199 void* _tmp0__target;
2200 gconstpointer _tmp1_;
2202 gboolean _tmp3_ = FALSE;
2203 _data1_ = _data2_->_data1_;
2204 self = _data1_->self;
2205 _tmp0_ = _data1_->f;
2206 _tmp0__target = _data1_->f_target;
2207 _tmp1_ = _data2_->key;
2208 _tmp2_ = ((_tmp1_ != NULL) && (self->priv->k_dup_func != NULL)) ? self->priv->k_dup_func ((gpointer) _tmp1_) : ((gpointer) _tmp1_);
2209 _tmp3_ = _tmp0_ (_tmp2_, _tmp0__target);
2211 ((v == NULL) || (self->priv->v_destroy_func == NULL)) ? NULL : (v = (self->priv->v_destroy_func (v), NULL));
2216 static gboolean ____lambda29__gee_forall_func (gpointer g, gpointer self) {
2218 result = ___lambda29_ (self, g);
2223 static Block3Data* block3_data_ref (Block3Data* _data3_) {
2224 g_atomic_int_inc (&_data3_->_ref_count_);
2229 static void block3_data_unref (void * _userdata_) {
2230 Block3Data* _data3_;
2231 _data3_ = (Block3Data*) _userdata_;
2232 if (g_atomic_int_dec_and_test (&_data3_->_ref_count_)) {
2233 GeeAbstractMultiMapKeyIterator * self;
2234 self = _data3_->_data1_->self;
2235 ((_data3_->key == NULL) || (self->priv->k_destroy_func == NULL)) ? NULL : (_data3_->key = (self->priv->k_destroy_func (_data3_->key), NULL));
2236 block1_data_unref (_data3_->_data1_);
2237 _data3_->_data1_ = NULL;
2238 g_slice_free (Block3Data, _data3_);
2243 static gboolean __lambda31_ (Block3Data* _data3_, gpointer v) {
2244 Block1Data* _data1_;
2245 GeeAbstractMultiMapKeyIterator * self;
2246 gboolean result = FALSE;
2247 GeeForallFunc _tmp0_;
2248 void* _tmp0__target;
2249 gconstpointer _tmp1_;
2251 gboolean _tmp3_ = FALSE;
2252 _data1_ = _data3_->_data1_;
2253 self = _data1_->self;
2254 _tmp0_ = _data1_->f;
2255 _tmp0__target = _data1_->f_target;
2256 _tmp1_ = _data3_->key;
2257 _tmp2_ = ((_tmp1_ != NULL) && (self->priv->k_dup_func != NULL)) ? self->priv->k_dup_func ((gpointer) _tmp1_) : ((gpointer) _tmp1_);
2258 _tmp3_ = _tmp0_ (_tmp2_, _tmp0__target);
2260 ((v == NULL) || (self->priv->v_destroy_func == NULL)) ? NULL : (v = (self->priv->v_destroy_func (v), NULL));
2265 static gboolean ___lambda31__gee_forall_func (gpointer g, gpointer self) {
2267 result = __lambda31_ (self, g);
2272 static gboolean __lambda30_ (Block1Data* _data1_, gconstpointer key, GeeCollection* col) {
2273 GeeAbstractMultiMapKeyIterator * self;
2274 gboolean result = FALSE;
2275 Block3Data* _data3_;
2276 gconstpointer _tmp0_;
2278 GeeCollection* _tmp2_;
2279 gboolean _tmp3_ = FALSE;
2280 self = _data1_->self;
2281 g_return_val_if_fail (col != NULL, FALSE);
2282 _data3_ = g_slice_new0 (Block3Data);
2283 _data3_->_ref_count_ = 1;
2284 _data3_->_data1_ = block1_data_ref (_data1_);
2286 _tmp1_ = ((_tmp0_ != NULL) && (self->priv->k_dup_func != NULL)) ? self->priv->k_dup_func ((gpointer) _tmp0_) : ((gpointer) _tmp0_);
2287 ((_data3_->key == NULL) || (self->priv->k_destroy_func == NULL)) ? NULL : (_data3_->key = (self->priv->k_destroy_func (_data3_->key), NULL));
2288 _data3_->key = _tmp1_;
2290 _tmp3_ = gee_traversable_foreach ((GeeTraversable*) _tmp2_, ___lambda31__gee_forall_func, _data3_);
2292 block3_data_unref (_data3_);
2298 static gboolean ___lambda30__gee_forall_map_func (gconstpointer k, gconstpointer v, gpointer self) {
2300 result = __lambda30_ (self, k, v);
2305 static gboolean gee_abstract_multi_map_key_iterator_real_foreach (GeeTraversable* base, GeeForallFunc f, void* f_target) {
2306 GeeAbstractMultiMapKeyIterator * self;
2307 gboolean result = FALSE;
2308 Block1Data* _data1_;
2309 GeeForallFunc _tmp0_;
2310 void* _tmp0__target;
2311 gboolean _tmp1_ = FALSE;
2312 GeeIterator* _tmp2_;
2314 GeeMapIterator* _tmp12_;
2315 gboolean _tmp13_ = FALSE;
2316 self = (GeeAbstractMultiMapKeyIterator*) base;
2317 _data1_ = g_slice_new0 (Block1Data);
2318 _data1_->_ref_count_ = 1;
2319 _data1_->self = g_object_ref (self);
2321 _tmp0__target = f_target;
2322 _data1_->f = _tmp0_;
2323 _data1_->f_target = _tmp0__target;
2324 _tmp2_ = ((GeeAbstractMultiMapMappingIterator*) self)->inner;
2325 if (_tmp2_ != NULL) {
2326 GeeMapIterator* _tmp3_;
2329 _tmp3_ = ((GeeAbstractMultiMapMappingIterator*) self)->outer;
2330 _tmp4_ = gee_map_iterator_get_valid (_tmp3_);
2338 Block2Data* _data2_;
2339 GeeMapIterator* _tmp7_;
2340 gpointer _tmp8_ = NULL;
2341 GeeIterator* _tmp9_;
2342 gboolean _tmp10_ = FALSE;
2343 GeeMapIterator* _tmp11_;
2344 _data2_ = g_slice_new0 (Block2Data);
2345 _data2_->_ref_count_ = 1;
2346 _data2_->_data1_ = block1_data_ref (_data1_);
2347 _tmp7_ = ((GeeAbstractMultiMapMappingIterator*) self)->outer;
2348 _tmp8_ = gee_map_iterator_get_key (_tmp7_);
2349 _data2_->key = _tmp8_;
2350 _tmp9_ = ((GeeAbstractMultiMapMappingIterator*) self)->inner;
2351 _tmp10_ = gee_traversable_foreach ((GeeTraversable*) _tmp9_, ____lambda29__gee_forall_func, _data2_);
2354 block2_data_unref (_data2_);
2356 block1_data_unref (_data1_);
2360 _tmp11_ = ((GeeAbstractMultiMapMappingIterator*) self)->outer;
2361 gee_map_iterator_next (_tmp11_);
2362 block2_data_unref (_data2_);
2365 _tmp12_ = ((GeeAbstractMultiMapMappingIterator*) self)->outer;
2366 _tmp13_ = gee_map_iterator_foreach (_tmp12_, ___lambda30__gee_forall_map_func, _data1_);
2368 block1_data_unref (_data1_);
2374 static void gee_abstract_multi_map_key_iterator_class_init (GeeAbstractMultiMapKeyIteratorClass * klass) {
2375 gee_abstract_multi_map_key_iterator_parent_class = g_type_class_peek_parent (klass);
2376 g_type_class_add_private (klass, sizeof (GeeAbstractMultiMapKeyIteratorPrivate));
2377 G_OBJECT_CLASS (klass)->get_property = _vala_gee_abstract_multi_map_key_iterator_get_property;
2378 G_OBJECT_CLASS (klass)->set_property = _vala_gee_abstract_multi_map_key_iterator_set_property;
2379 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_ABSTRACT_MULTI_MAP_KEY_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));
2380 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_ABSTRACT_MULTI_MAP_KEY_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));
2381 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_ABSTRACT_MULTI_MAP_KEY_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));
2382 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_ABSTRACT_MULTI_MAP_KEY_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));
2383 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_ABSTRACT_MULTI_MAP_KEY_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));
2384 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_ABSTRACT_MULTI_MAP_KEY_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));
2388 static GType gee_abstract_multi_map_key_iterator_gee_traversable_get_g_type (GeeAbstractMultiMapKeyIterator* self) {
2389 return self->priv->k_type;
2393 static GBoxedCopyFunc gee_abstract_multi_map_key_iterator_gee_traversable_get_g_dup_func (GeeAbstractMultiMapKeyIterator* self) {
2394 return self->priv->k_dup_func;
2398 static GDestroyNotify gee_abstract_multi_map_key_iterator_gee_traversable_get_g_destroy_func (GeeAbstractMultiMapKeyIterator* self) {
2399 return self->priv->k_destroy_func;
2403 static void gee_abstract_multi_map_key_iterator_gee_traversable_interface_init (GeeTraversableIface * iface) {
2404 gee_abstract_multi_map_key_iterator_gee_traversable_parent_iface = g_type_interface_peek_parent (iface);
2405 iface->foreach = (gboolean (*)(GeeTraversable*, GeeForallFunc, void*)) gee_abstract_multi_map_key_iterator_real_foreach;
2406 iface->get_g_type = (GType(*)(GeeTraversable*)) gee_abstract_multi_map_key_iterator_gee_traversable_get_g_type;
2407 iface->get_g_dup_func = (GBoxedCopyFunc(*)(GeeTraversable*)) gee_abstract_multi_map_key_iterator_gee_traversable_get_g_dup_func;
2408 iface->get_g_destroy_func = (GDestroyNotify(*)(GeeTraversable*)) gee_abstract_multi_map_key_iterator_gee_traversable_get_g_destroy_func;
2412 static void gee_abstract_multi_map_key_iterator_gee_iterator_interface_init (GeeIteratorIface * iface) {
2413 gee_abstract_multi_map_key_iterator_gee_iterator_parent_iface = g_type_interface_peek_parent (iface);
2414 iface->get = (gpointer (*)(GeeIterator*)) gee_abstract_multi_map_key_iterator_real_get;
2415 iface->next = (gboolean (*)(GeeIterator*)) gee_abstract_multi_map_mapping_iterator_next;
2416 iface->has_next = (gboolean (*)(GeeIterator*)) gee_abstract_multi_map_mapping_iterator_has_next;
2417 iface->remove = (void (*)(GeeIterator*)) gee_abstract_multi_map_mapping_iterator_remove;
2418 iface->get_valid = (gboolean (*) (GeeIterator *)) gee_abstract_multi_map_mapping_iterator_get_valid;
2419 iface->get_read_only = (gboolean (*) (GeeIterator *)) gee_abstract_multi_map_mapping_iterator_get_read_only;
2423 static void gee_abstract_multi_map_key_iterator_instance_init (GeeAbstractMultiMapKeyIterator * self) {
2424 self->priv = GEE_ABSTRACT_MULTI_MAP_KEY_ITERATOR_GET_PRIVATE (self);
2428 static GType gee_abstract_multi_map_key_iterator_get_type (void) {
2429 static volatile gsize gee_abstract_multi_map_key_iterator_type_id__volatile = 0;
2430 if (g_once_init_enter (&gee_abstract_multi_map_key_iterator_type_id__volatile)) {
2431 static const GTypeInfo g_define_type_info = { sizeof (GeeAbstractMultiMapKeyIteratorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_abstract_multi_map_key_iterator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeAbstractMultiMapKeyIterator), 0, (GInstanceInitFunc) gee_abstract_multi_map_key_iterator_instance_init, NULL };
2432 static const GInterfaceInfo gee_traversable_info = { (GInterfaceInitFunc) gee_abstract_multi_map_key_iterator_gee_traversable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
2433 static const GInterfaceInfo gee_iterator_info = { (GInterfaceInitFunc) gee_abstract_multi_map_key_iterator_gee_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
2434 GType gee_abstract_multi_map_key_iterator_type_id;
2435 gee_abstract_multi_map_key_iterator_type_id = g_type_register_static (GEE_ABSTRACT_MULTI_MAP_TYPE_MAPPING_ITERATOR, "GeeAbstractMultiMapKeyIterator", &g_define_type_info, 0);
2436 g_type_add_interface_static (gee_abstract_multi_map_key_iterator_type_id, GEE_TYPE_TRAVERSABLE, &gee_traversable_info);
2437 g_type_add_interface_static (gee_abstract_multi_map_key_iterator_type_id, GEE_TYPE_ITERATOR, &gee_iterator_info);
2438 g_once_init_leave (&gee_abstract_multi_map_key_iterator_type_id__volatile, gee_abstract_multi_map_key_iterator_type_id);
2440 return gee_abstract_multi_map_key_iterator_type_id__volatile;
2444 static void _vala_gee_abstract_multi_map_key_iterator_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
2445 GeeAbstractMultiMapKeyIterator * self;
2446 self = G_TYPE_CHECK_INSTANCE_CAST (object, GEE_ABSTRACT_MULTI_MAP_TYPE_KEY_ITERATOR, GeeAbstractMultiMapKeyIterator);
2447 switch (property_id) {
2449 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
2455 static void _vala_gee_abstract_multi_map_key_iterator_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
2456 GeeAbstractMultiMapKeyIterator * self;
2457 self = G_TYPE_CHECK_INSTANCE_CAST (object, GEE_ABSTRACT_MULTI_MAP_TYPE_KEY_ITERATOR, GeeAbstractMultiMapKeyIterator);
2458 switch (property_id) {
2459 case GEE_ABSTRACT_MULTI_MAP_KEY_ITERATOR_K_TYPE:
2460 self->priv->k_type = g_value_get_gtype (value);
2462 case GEE_ABSTRACT_MULTI_MAP_KEY_ITERATOR_K_DUP_FUNC:
2463 self->priv->k_dup_func = g_value_get_pointer (value);
2465 case GEE_ABSTRACT_MULTI_MAP_KEY_ITERATOR_K_DESTROY_FUNC:
2466 self->priv->k_destroy_func = g_value_get_pointer (value);
2468 case GEE_ABSTRACT_MULTI_MAP_KEY_ITERATOR_V_TYPE:
2469 self->priv->v_type = g_value_get_gtype (value);
2471 case GEE_ABSTRACT_MULTI_MAP_KEY_ITERATOR_V_DUP_FUNC:
2472 self->priv->v_dup_func = g_value_get_pointer (value);
2474 case GEE_ABSTRACT_MULTI_MAP_KEY_ITERATOR_V_DESTROY_FUNC:
2475 self->priv->v_destroy_func = g_value_get_pointer (value);
2478 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
2484 static GeeAbstractMultiMapValueIterator* gee_abstract_multi_map_value_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* outer) {
2485 GeeAbstractMultiMapValueIterator * self = NULL;
2486 GeeMapIterator* _tmp0_;
2488 self = (GeeAbstractMultiMapValueIterator*) gee_abstract_multi_map_mapping_iterator_construct (object_type, k_type, (GBoxedCopyFunc) k_dup_func, k_destroy_func, v_type, (GBoxedCopyFunc) v_dup_func, v_destroy_func, _tmp0_);
2489 self->priv->k_type = k_type;
2490 self->priv->k_dup_func = k_dup_func;
2491 self->priv->k_destroy_func = k_destroy_func;
2492 self->priv->v_type = v_type;
2493 self->priv->v_dup_func = v_dup_func;
2494 self->priv->v_destroy_func = v_destroy_func;
2499 static GeeAbstractMultiMapValueIterator* gee_abstract_multi_map_value_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* outer) {
2500 return gee_abstract_multi_map_value_iterator_construct (GEE_ABSTRACT_MULTI_MAP_TYPE_VALUE_ITERATOR, k_type, k_dup_func, k_destroy_func, v_type, v_dup_func, v_destroy_func, outer);
2504 static gpointer gee_abstract_multi_map_value_iterator_real_get (GeeIterator* base) {
2505 GeeAbstractMultiMapValueIterator * self;
2506 gpointer result = NULL;
2509 GeeIterator* _tmp2_;
2510 gpointer _tmp3_ = NULL;
2511 self = (GeeAbstractMultiMapValueIterator*) base;
2512 _tmp0_ = gee_iterator_get_valid ((GeeIterator*) self);
2514 _vala_assert (_tmp1_, "valid");
2515 _tmp2_ = ((GeeAbstractMultiMapMappingIterator*) self)->inner;
2516 _tmp3_ = gee_iterator_get (_tmp2_);
2522 static Block4Data* block4_data_ref (Block4Data* _data4_) {
2523 g_atomic_int_inc (&_data4_->_ref_count_);
2528 static void block4_data_unref (void * _userdata_) {
2529 Block4Data* _data4_;
2530 _data4_ = (Block4Data*) _userdata_;
2531 if (g_atomic_int_dec_and_test (&_data4_->_ref_count_)) {
2532 GeeAbstractMultiMapValueIterator * self;
2533 self = _data4_->self;
2534 _g_object_unref0 (self);
2535 g_slice_free (Block4Data, _data4_);
2540 static gboolean __lambda32_ (Block4Data* _data4_, gconstpointer key, GeeCollection* col) {
2541 GeeAbstractMultiMapValueIterator * self;
2542 gboolean result = FALSE;
2543 GeeCollection* _tmp0_;
2544 GeeForallFunc _tmp1_;
2545 void* _tmp1__target;
2546 gboolean _tmp2_ = FALSE;
2547 self = _data4_->self;
2548 g_return_val_if_fail (col != NULL, FALSE);
2550 _tmp1_ = _data4_->f;
2551 _tmp1__target = _data4_->f_target;
2552 _tmp2_ = gee_traversable_foreach ((GeeTraversable*) _tmp0_, _tmp1_, _tmp1__target);
2558 static gboolean ___lambda32__gee_forall_map_func (gconstpointer k, gconstpointer v, gpointer self) {
2560 result = __lambda32_ (self, k, v);
2565 static gboolean gee_abstract_multi_map_value_iterator_real_foreach (GeeTraversable* base, GeeForallFunc f, void* f_target) {
2566 GeeAbstractMultiMapValueIterator * self;
2567 gboolean result = FALSE;
2568 Block4Data* _data4_;
2569 GeeForallFunc _tmp0_;
2570 void* _tmp0__target;
2571 gboolean _tmp1_ = FALSE;
2572 GeeIterator* _tmp2_;
2574 GeeMapIterator* _tmp11_;
2575 gboolean _tmp12_ = FALSE;
2576 self = (GeeAbstractMultiMapValueIterator*) base;
2577 _data4_ = g_slice_new0 (Block4Data);
2578 _data4_->_ref_count_ = 1;
2579 _data4_->self = g_object_ref (self);
2581 _tmp0__target = f_target;
2582 _data4_->f = _tmp0_;
2583 _data4_->f_target = _tmp0__target;
2584 _tmp2_ = ((GeeAbstractMultiMapMappingIterator*) self)->inner;
2585 if (_tmp2_ != NULL) {
2586 GeeMapIterator* _tmp3_;
2589 _tmp3_ = ((GeeAbstractMultiMapMappingIterator*) self)->outer;
2590 _tmp4_ = gee_map_iterator_get_valid (_tmp3_);
2598 GeeIterator* _tmp7_;
2599 GeeForallFunc _tmp8_;
2600 void* _tmp8__target;
2601 gboolean _tmp9_ = FALSE;
2602 GeeMapIterator* _tmp10_;
2603 _tmp7_ = ((GeeAbstractMultiMapMappingIterator*) self)->inner;
2604 _tmp8_ = _data4_->f;
2605 _tmp8__target = _data4_->f_target;
2606 _tmp9_ = gee_traversable_foreach ((GeeTraversable*) _tmp7_, _tmp8_, _tmp8__target);
2609 block4_data_unref (_data4_);
2613 _tmp10_ = ((GeeAbstractMultiMapMappingIterator*) self)->outer;
2614 gee_map_iterator_next (_tmp10_);
2616 _tmp11_ = ((GeeAbstractMultiMapMappingIterator*) self)->outer;
2617 _tmp12_ = gee_map_iterator_foreach (_tmp11_, ___lambda32__gee_forall_map_func, _data4_);
2619 block4_data_unref (_data4_);
2625 static void gee_abstract_multi_map_value_iterator_class_init (GeeAbstractMultiMapValueIteratorClass * klass) {
2626 gee_abstract_multi_map_value_iterator_parent_class = g_type_class_peek_parent (klass);
2627 g_type_class_add_private (klass, sizeof (GeeAbstractMultiMapValueIteratorPrivate));
2628 G_OBJECT_CLASS (klass)->get_property = _vala_gee_abstract_multi_map_value_iterator_get_property;
2629 G_OBJECT_CLASS (klass)->set_property = _vala_gee_abstract_multi_map_value_iterator_set_property;
2630 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_ABSTRACT_MULTI_MAP_VALUE_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));
2631 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_ABSTRACT_MULTI_MAP_VALUE_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));
2632 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_ABSTRACT_MULTI_MAP_VALUE_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));
2633 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_ABSTRACT_MULTI_MAP_VALUE_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));
2634 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_ABSTRACT_MULTI_MAP_VALUE_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));
2635 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_ABSTRACT_MULTI_MAP_VALUE_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));
2639 static GType gee_abstract_multi_map_value_iterator_gee_traversable_get_g_type (GeeAbstractMultiMapValueIterator* self) {
2640 return self->priv->v_type;
2644 static GBoxedCopyFunc gee_abstract_multi_map_value_iterator_gee_traversable_get_g_dup_func (GeeAbstractMultiMapValueIterator* self) {
2645 return self->priv->v_dup_func;
2649 static GDestroyNotify gee_abstract_multi_map_value_iterator_gee_traversable_get_g_destroy_func (GeeAbstractMultiMapValueIterator* self) {
2650 return self->priv->v_destroy_func;
2654 static void gee_abstract_multi_map_value_iterator_gee_traversable_interface_init (GeeTraversableIface * iface) {
2655 gee_abstract_multi_map_value_iterator_gee_traversable_parent_iface = g_type_interface_peek_parent (iface);
2656 iface->foreach = (gboolean (*)(GeeTraversable*, GeeForallFunc, void*)) gee_abstract_multi_map_value_iterator_real_foreach;
2657 iface->get_g_type = (GType(*)(GeeTraversable*)) gee_abstract_multi_map_value_iterator_gee_traversable_get_g_type;
2658 iface->get_g_dup_func = (GBoxedCopyFunc(*)(GeeTraversable*)) gee_abstract_multi_map_value_iterator_gee_traversable_get_g_dup_func;
2659 iface->get_g_destroy_func = (GDestroyNotify(*)(GeeTraversable*)) gee_abstract_multi_map_value_iterator_gee_traversable_get_g_destroy_func;
2663 static void gee_abstract_multi_map_value_iterator_gee_iterator_interface_init (GeeIteratorIface * iface) {
2664 gee_abstract_multi_map_value_iterator_gee_iterator_parent_iface = g_type_interface_peek_parent (iface);
2665 iface->get = (gpointer (*)(GeeIterator*)) gee_abstract_multi_map_value_iterator_real_get;
2666 iface->next = (gboolean (*)(GeeIterator*)) gee_abstract_multi_map_mapping_iterator_next;
2667 iface->has_next = (gboolean (*)(GeeIterator*)) gee_abstract_multi_map_mapping_iterator_has_next;
2668 iface->remove = (void (*)(GeeIterator*)) gee_abstract_multi_map_mapping_iterator_remove;
2669 iface->get_valid = (gboolean (*) (GeeIterator *)) gee_abstract_multi_map_mapping_iterator_get_valid;
2670 iface->get_read_only = (gboolean (*) (GeeIterator *)) gee_abstract_multi_map_mapping_iterator_get_read_only;
2674 static void gee_abstract_multi_map_value_iterator_instance_init (GeeAbstractMultiMapValueIterator * self) {
2675 self->priv = GEE_ABSTRACT_MULTI_MAP_VALUE_ITERATOR_GET_PRIVATE (self);
2679 static GType gee_abstract_multi_map_value_iterator_get_type (void) {
2680 static volatile gsize gee_abstract_multi_map_value_iterator_type_id__volatile = 0;
2681 if (g_once_init_enter (&gee_abstract_multi_map_value_iterator_type_id__volatile)) {
2682 static const GTypeInfo g_define_type_info = { sizeof (GeeAbstractMultiMapValueIteratorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_abstract_multi_map_value_iterator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeAbstractMultiMapValueIterator), 0, (GInstanceInitFunc) gee_abstract_multi_map_value_iterator_instance_init, NULL };
2683 static const GInterfaceInfo gee_traversable_info = { (GInterfaceInitFunc) gee_abstract_multi_map_value_iterator_gee_traversable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
2684 static const GInterfaceInfo gee_iterator_info = { (GInterfaceInitFunc) gee_abstract_multi_map_value_iterator_gee_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
2685 GType gee_abstract_multi_map_value_iterator_type_id;
2686 gee_abstract_multi_map_value_iterator_type_id = g_type_register_static (GEE_ABSTRACT_MULTI_MAP_TYPE_MAPPING_ITERATOR, "GeeAbstractMultiMapValueIterator", &g_define_type_info, 0);
2687 g_type_add_interface_static (gee_abstract_multi_map_value_iterator_type_id, GEE_TYPE_TRAVERSABLE, &gee_traversable_info);
2688 g_type_add_interface_static (gee_abstract_multi_map_value_iterator_type_id, GEE_TYPE_ITERATOR, &gee_iterator_info);
2689 g_once_init_leave (&gee_abstract_multi_map_value_iterator_type_id__volatile, gee_abstract_multi_map_value_iterator_type_id);
2691 return gee_abstract_multi_map_value_iterator_type_id__volatile;
2695 static void _vala_gee_abstract_multi_map_value_iterator_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
2696 GeeAbstractMultiMapValueIterator * self;
2697 self = G_TYPE_CHECK_INSTANCE_CAST (object, GEE_ABSTRACT_MULTI_MAP_TYPE_VALUE_ITERATOR, GeeAbstractMultiMapValueIterator);
2698 switch (property_id) {
2700 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
2706 static void _vala_gee_abstract_multi_map_value_iterator_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
2707 GeeAbstractMultiMapValueIterator * self;
2708 self = G_TYPE_CHECK_INSTANCE_CAST (object, GEE_ABSTRACT_MULTI_MAP_TYPE_VALUE_ITERATOR, GeeAbstractMultiMapValueIterator);
2709 switch (property_id) {
2710 case GEE_ABSTRACT_MULTI_MAP_VALUE_ITERATOR_K_TYPE:
2711 self->priv->k_type = g_value_get_gtype (value);
2713 case GEE_ABSTRACT_MULTI_MAP_VALUE_ITERATOR_K_DUP_FUNC:
2714 self->priv->k_dup_func = g_value_get_pointer (value);
2716 case GEE_ABSTRACT_MULTI_MAP_VALUE_ITERATOR_K_DESTROY_FUNC:
2717 self->priv->k_destroy_func = g_value_get_pointer (value);
2719 case GEE_ABSTRACT_MULTI_MAP_VALUE_ITERATOR_V_TYPE:
2720 self->priv->v_type = g_value_get_gtype (value);
2722 case GEE_ABSTRACT_MULTI_MAP_VALUE_ITERATOR_V_DUP_FUNC:
2723 self->priv->v_dup_func = g_value_get_pointer (value);
2725 case GEE_ABSTRACT_MULTI_MAP_VALUE_ITERATOR_V_DESTROY_FUNC:
2726 self->priv->v_destroy_func = g_value_get_pointer (value);
2729 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
2735 static GeeAbstractMultiMapMapIterator* gee_abstract_multi_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* outer) {
2736 GeeAbstractMultiMapMapIterator * self = NULL;
2737 GeeMapIterator* _tmp0_;
2739 self = (GeeAbstractMultiMapMapIterator*) gee_abstract_multi_map_mapping_iterator_construct (object_type, k_type, (GBoxedCopyFunc) k_dup_func, k_destroy_func, v_type, (GBoxedCopyFunc) v_dup_func, v_destroy_func, _tmp0_);
2740 self->priv->k_type = k_type;
2741 self->priv->k_dup_func = k_dup_func;
2742 self->priv->k_destroy_func = k_destroy_func;
2743 self->priv->v_type = v_type;
2744 self->priv->v_dup_func = v_dup_func;
2745 self->priv->v_destroy_func = v_destroy_func;
2750 static GeeAbstractMultiMapMapIterator* gee_abstract_multi_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* outer) {
2751 return gee_abstract_multi_map_map_iterator_construct (GEE_ABSTRACT_MULTI_MAP_TYPE_MAP_ITERATOR, k_type, k_dup_func, k_destroy_func, v_type, v_dup_func, v_destroy_func, outer);
2755 static gpointer gee_abstract_multi_map_map_iterator_real_get_key (GeeMapIterator* base) {
2756 GeeAbstractMultiMapMapIterator * self;
2757 gpointer result = NULL;
2760 GeeMapIterator* _tmp2_;
2761 gpointer _tmp3_ = NULL;
2762 self = (GeeAbstractMultiMapMapIterator*) base;
2763 _tmp0_ = gee_map_iterator_get_valid ((GeeMapIterator*) self);
2765 _vala_assert (_tmp1_, "valid");
2766 _tmp2_ = ((GeeAbstractMultiMapMappingIterator*) self)->outer;
2767 _tmp3_ = gee_map_iterator_get_key (_tmp2_);
2773 static gpointer gee_abstract_multi_map_map_iterator_real_get_value (GeeMapIterator* base) {
2774 GeeAbstractMultiMapMapIterator * self;
2775 gpointer result = NULL;
2778 GeeIterator* _tmp2_;
2779 gpointer _tmp3_ = NULL;
2780 self = (GeeAbstractMultiMapMapIterator*) base;
2781 _tmp0_ = gee_map_iterator_get_valid ((GeeMapIterator*) self);
2783 _vala_assert (_tmp1_, "valid");
2784 _tmp2_ = ((GeeAbstractMultiMapMappingIterator*) self)->inner;
2785 _tmp3_ = gee_iterator_get (_tmp2_);
2791 static void gee_abstract_multi_map_map_iterator_real_set_value (GeeMapIterator* base, gconstpointer value) {
2792 GeeAbstractMultiMapMapIterator * self;
2793 self = (GeeAbstractMultiMapMapIterator*) base;
2794 g_assert_not_reached ();
2798 static gboolean gee_abstract_multi_map_map_iterator_real_get_mutable (GeeMapIterator* base) {
2800 GeeAbstractMultiMapMapIterator* self;
2801 self = (GeeAbstractMultiMapMapIterator*) base;
2807 static void gee_abstract_multi_map_map_iterator_class_init (GeeAbstractMultiMapMapIteratorClass * klass) {
2808 gee_abstract_multi_map_map_iterator_parent_class = g_type_class_peek_parent (klass);
2809 g_type_class_add_private (klass, sizeof (GeeAbstractMultiMapMapIteratorPrivate));
2810 G_OBJECT_CLASS (klass)->get_property = _vala_gee_abstract_multi_map_map_iterator_get_property;
2811 G_OBJECT_CLASS (klass)->set_property = _vala_gee_abstract_multi_map_map_iterator_set_property;
2812 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_ABSTRACT_MULTI_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));
2813 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_ABSTRACT_MULTI_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));
2814 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_ABSTRACT_MULTI_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));
2815 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_ABSTRACT_MULTI_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));
2816 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_ABSTRACT_MULTI_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));
2817 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_ABSTRACT_MULTI_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));
2818 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_ABSTRACT_MULTI_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));
2822 static GType gee_abstract_multi_map_map_iterator_gee_map_iterator_get_k_type (GeeAbstractMultiMapMapIterator* self) {
2823 return self->priv->k_type;
2827 static GBoxedCopyFunc gee_abstract_multi_map_map_iterator_gee_map_iterator_get_k_dup_func (GeeAbstractMultiMapMapIterator* self) {
2828 return self->priv->k_dup_func;
2832 static GDestroyNotify gee_abstract_multi_map_map_iterator_gee_map_iterator_get_k_destroy_func (GeeAbstractMultiMapMapIterator* self) {
2833 return self->priv->k_destroy_func;
2837 static GType gee_abstract_multi_map_map_iterator_gee_map_iterator_get_v_type (GeeAbstractMultiMapMapIterator* self) {
2838 return self->priv->v_type;
2842 static GBoxedCopyFunc gee_abstract_multi_map_map_iterator_gee_map_iterator_get_v_dup_func (GeeAbstractMultiMapMapIterator* self) {
2843 return self->priv->v_dup_func;
2847 static GDestroyNotify gee_abstract_multi_map_map_iterator_gee_map_iterator_get_v_destroy_func (GeeAbstractMultiMapMapIterator* self) {
2848 return self->priv->v_destroy_func;
2852 static void gee_abstract_multi_map_map_iterator_gee_map_iterator_interface_init (GeeMapIteratorIface * iface) {
2853 gee_abstract_multi_map_map_iterator_gee_map_iterator_parent_iface = g_type_interface_peek_parent (iface);
2854 iface->get_key = (gpointer (*)(GeeMapIterator*)) gee_abstract_multi_map_map_iterator_real_get_key;
2855 iface->get_value = (gpointer (*)(GeeMapIterator*)) gee_abstract_multi_map_map_iterator_real_get_value;
2856 iface->set_value = (void (*)(GeeMapIterator*, gconstpointer)) gee_abstract_multi_map_map_iterator_real_set_value;
2857 iface->get_k_type = (GType(*)(GeeMapIterator*)) gee_abstract_multi_map_map_iterator_gee_map_iterator_get_k_type;
2858 iface->get_k_dup_func = (GBoxedCopyFunc(*)(GeeMapIterator*)) gee_abstract_multi_map_map_iterator_gee_map_iterator_get_k_dup_func;
2859 iface->get_k_destroy_func = (GDestroyNotify(*)(GeeMapIterator*)) gee_abstract_multi_map_map_iterator_gee_map_iterator_get_k_destroy_func;
2860 iface->get_v_type = (GType(*)(GeeMapIterator*)) gee_abstract_multi_map_map_iterator_gee_map_iterator_get_v_type;
2861 iface->get_v_dup_func = (GBoxedCopyFunc(*)(GeeMapIterator*)) gee_abstract_multi_map_map_iterator_gee_map_iterator_get_v_dup_func;
2862 iface->get_v_destroy_func = (GDestroyNotify(*)(GeeMapIterator*)) gee_abstract_multi_map_map_iterator_gee_map_iterator_get_v_destroy_func;
2863 iface->next = (gboolean (*)(GeeMapIterator*)) gee_abstract_multi_map_mapping_iterator_next;
2864 iface->has_next = (gboolean (*)(GeeMapIterator*)) gee_abstract_multi_map_mapping_iterator_has_next;
2865 iface->unset = (void (*)(GeeMapIterator*)) gee_abstract_multi_map_mapping_iterator_unset;
2866 iface->get_mutable = gee_abstract_multi_map_map_iterator_real_get_mutable;
2867 iface->get_valid = (gboolean (*) (GeeMapIterator *)) gee_abstract_multi_map_mapping_iterator_get_valid;
2868 iface->get_read_only = (gboolean (*) (GeeMapIterator *)) gee_abstract_multi_map_mapping_iterator_get_read_only;
2872 static void gee_abstract_multi_map_map_iterator_instance_init (GeeAbstractMultiMapMapIterator * self) {
2873 self->priv = GEE_ABSTRACT_MULTI_MAP_MAP_ITERATOR_GET_PRIVATE (self);
2877 static GType gee_abstract_multi_map_map_iterator_get_type (void) {
2878 static volatile gsize gee_abstract_multi_map_map_iterator_type_id__volatile = 0;
2879 if (g_once_init_enter (&gee_abstract_multi_map_map_iterator_type_id__volatile)) {
2880 static const GTypeInfo g_define_type_info = { sizeof (GeeAbstractMultiMapMapIteratorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_abstract_multi_map_map_iterator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeAbstractMultiMapMapIterator), 0, (GInstanceInitFunc) gee_abstract_multi_map_map_iterator_instance_init, NULL };
2881 static const GInterfaceInfo gee_map_iterator_info = { (GInterfaceInitFunc) gee_abstract_multi_map_map_iterator_gee_map_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
2882 GType gee_abstract_multi_map_map_iterator_type_id;
2883 gee_abstract_multi_map_map_iterator_type_id = g_type_register_static (GEE_ABSTRACT_MULTI_MAP_TYPE_MAPPING_ITERATOR, "GeeAbstractMultiMapMapIterator", &g_define_type_info, 0);
2884 g_type_add_interface_static (gee_abstract_multi_map_map_iterator_type_id, GEE_TYPE_MAP_ITERATOR, &gee_map_iterator_info);
2885 g_once_init_leave (&gee_abstract_multi_map_map_iterator_type_id__volatile, gee_abstract_multi_map_map_iterator_type_id);
2887 return gee_abstract_multi_map_map_iterator_type_id__volatile;
2891 static void _vala_gee_abstract_multi_map_map_iterator_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
2892 GeeAbstractMultiMapMapIterator * self;
2893 self = G_TYPE_CHECK_INSTANCE_CAST (object, GEE_ABSTRACT_MULTI_MAP_TYPE_MAP_ITERATOR, GeeAbstractMultiMapMapIterator);
2894 switch (property_id) {
2895 case GEE_ABSTRACT_MULTI_MAP_MAP_ITERATOR_MUTABLE:
2896 g_value_set_boolean (value, gee_map_iterator_get_mutable ((GeeMapIterator*) self));
2899 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
2905 static void _vala_gee_abstract_multi_map_map_iterator_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
2906 GeeAbstractMultiMapMapIterator * self;
2907 self = G_TYPE_CHECK_INSTANCE_CAST (object, GEE_ABSTRACT_MULTI_MAP_TYPE_MAP_ITERATOR, GeeAbstractMultiMapMapIterator);
2908 switch (property_id) {
2909 case GEE_ABSTRACT_MULTI_MAP_MAP_ITERATOR_K_TYPE:
2910 self->priv->k_type = g_value_get_gtype (value);
2912 case GEE_ABSTRACT_MULTI_MAP_MAP_ITERATOR_K_DUP_FUNC:
2913 self->priv->k_dup_func = g_value_get_pointer (value);
2915 case GEE_ABSTRACT_MULTI_MAP_MAP_ITERATOR_K_DESTROY_FUNC:
2916 self->priv->k_destroy_func = g_value_get_pointer (value);
2918 case GEE_ABSTRACT_MULTI_MAP_MAP_ITERATOR_V_TYPE:
2919 self->priv->v_type = g_value_get_gtype (value);
2921 case GEE_ABSTRACT_MULTI_MAP_MAP_ITERATOR_V_DUP_FUNC:
2922 self->priv->v_dup_func = g_value_get_pointer (value);
2924 case GEE_ABSTRACT_MULTI_MAP_MAP_ITERATOR_V_DESTROY_FUNC:
2925 self->priv->v_destroy_func = g_value_get_pointer (value);
2928 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
2934 static void gee_abstract_multi_map_class_init (GeeAbstractMultiMapClass * klass) {
2935 gee_abstract_multi_map_parent_class = g_type_class_peek_parent (klass);
2936 g_type_class_add_private (klass, sizeof (GeeAbstractMultiMapPrivate));
2937 GEE_ABSTRACT_MULTI_MAP_CLASS (klass)->create_value_storage = gee_abstract_multi_map_real_create_value_storage;
2938 GEE_ABSTRACT_MULTI_MAP_CLASS (klass)->create_multi_key_set = gee_abstract_multi_map_real_create_multi_key_set;
2939 GEE_ABSTRACT_MULTI_MAP_CLASS (klass)->get_value_equal_func = gee_abstract_multi_map_real_get_value_equal_func;
2940 GEE_ABSTRACT_MULTI_MAP_CLASS (klass)->reserved0 = gee_abstract_multi_map_real_reserved0;
2941 GEE_ABSTRACT_MULTI_MAP_CLASS (klass)->reserved1 = gee_abstract_multi_map_real_reserved1;
2942 GEE_ABSTRACT_MULTI_MAP_CLASS (klass)->reserved2 = gee_abstract_multi_map_real_reserved2;
2943 GEE_ABSTRACT_MULTI_MAP_CLASS (klass)->reserved3 = gee_abstract_multi_map_real_reserved3;
2944 GEE_ABSTRACT_MULTI_MAP_CLASS (klass)->reserved4 = gee_abstract_multi_map_real_reserved4;
2945 GEE_ABSTRACT_MULTI_MAP_CLASS (klass)->reserved5 = gee_abstract_multi_map_real_reserved5;
2946 GEE_ABSTRACT_MULTI_MAP_CLASS (klass)->reserved6 = gee_abstract_multi_map_real_reserved6;
2947 GEE_ABSTRACT_MULTI_MAP_CLASS (klass)->reserved7 = gee_abstract_multi_map_real_reserved7;
2948 GEE_ABSTRACT_MULTI_MAP_CLASS (klass)->reserved8 = gee_abstract_multi_map_real_reserved8;
2949 GEE_ABSTRACT_MULTI_MAP_CLASS (klass)->get_read_only_view = gee_abstract_multi_map_real_get_read_only_view;
2950 G_OBJECT_CLASS (klass)->get_property = _vala_gee_abstract_multi_map_get_property;
2951 G_OBJECT_CLASS (klass)->set_property = _vala_gee_abstract_multi_map_set_property;
2952 G_OBJECT_CLASS (klass)->finalize = gee_abstract_multi_map_finalize;
2953 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_ABSTRACT_MULTI_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));
2954 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_ABSTRACT_MULTI_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));
2955 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_ABSTRACT_MULTI_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));
2956 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_ABSTRACT_MULTI_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));
2957 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_ABSTRACT_MULTI_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));
2958 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_ABSTRACT_MULTI_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));
2959 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_ABSTRACT_MULTI_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));
2960 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_ABSTRACT_MULTI_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));
2964 static GType gee_abstract_multi_map_gee_multi_map_get_k_type (GeeAbstractMultiMap* self) {
2965 return self->priv->k_type;
2969 static GBoxedCopyFunc gee_abstract_multi_map_gee_multi_map_get_k_dup_func (GeeAbstractMultiMap* self) {
2970 return self->priv->k_dup_func;
2974 static GDestroyNotify gee_abstract_multi_map_gee_multi_map_get_k_destroy_func (GeeAbstractMultiMap* self) {
2975 return self->priv->k_destroy_func;
2979 static GType gee_abstract_multi_map_gee_multi_map_get_v_type (GeeAbstractMultiMap* self) {
2980 return self->priv->v_type;
2984 static GBoxedCopyFunc gee_abstract_multi_map_gee_multi_map_get_v_dup_func (GeeAbstractMultiMap* self) {
2985 return self->priv->v_dup_func;
2989 static GDestroyNotify gee_abstract_multi_map_gee_multi_map_get_v_destroy_func (GeeAbstractMultiMap* self) {
2990 return self->priv->v_destroy_func;
2994 static void gee_abstract_multi_map_gee_multi_map_interface_init (GeeMultiMapIface * iface) {
2995 gee_abstract_multi_map_gee_multi_map_parent_iface = g_type_interface_peek_parent (iface);
2996 iface->get_keys = (GeeSet* (*)(GeeMultiMap*)) gee_abstract_multi_map_real_get_keys;
2997 iface->get_all_keys = (GeeMultiSet* (*)(GeeMultiMap*)) gee_abstract_multi_map_real_get_all_keys;
2998 iface->get_values = (GeeCollection* (*)(GeeMultiMap*)) gee_abstract_multi_map_real_get_values;
2999 iface->contains = (gboolean (*)(GeeMultiMap*, gconstpointer)) gee_abstract_multi_map_real_contains;
3000 iface->get = (GeeCollection* (*)(GeeMultiMap*, gconstpointer)) gee_abstract_multi_map_real_get;
3001 iface->set = (void (*)(GeeMultiMap*, gconstpointer, gconstpointer)) gee_abstract_multi_map_real_set;
3002 iface->remove = (gboolean (*)(GeeMultiMap*, gconstpointer, gconstpointer)) gee_abstract_multi_map_real_remove;
3003 iface->remove_all = (gboolean (*)(GeeMultiMap*, gconstpointer)) gee_abstract_multi_map_real_remove_all;
3004 iface->clear = (void (*)(GeeMultiMap*)) gee_abstract_multi_map_real_clear;
3005 iface->map_iterator = (GeeMapIterator* (*)(GeeMultiMap*)) gee_abstract_multi_map_real_map_iterator;
3006 iface->get_k_type = (GType(*)(GeeMultiMap*)) gee_abstract_multi_map_gee_multi_map_get_k_type;
3007 iface->get_k_dup_func = (GBoxedCopyFunc(*)(GeeMultiMap*)) gee_abstract_multi_map_gee_multi_map_get_k_dup_func;
3008 iface->get_k_destroy_func = (GDestroyNotify(*)(GeeMultiMap*)) gee_abstract_multi_map_gee_multi_map_get_k_destroy_func;
3009 iface->get_v_type = (GType(*)(GeeMultiMap*)) gee_abstract_multi_map_gee_multi_map_get_v_type;
3010 iface->get_v_dup_func = (GBoxedCopyFunc(*)(GeeMultiMap*)) gee_abstract_multi_map_gee_multi_map_get_v_dup_func;
3011 iface->get_v_destroy_func = (GDestroyNotify(*)(GeeMultiMap*)) gee_abstract_multi_map_gee_multi_map_get_v_destroy_func;
3012 iface->get_size = gee_abstract_multi_map_real_get_size;
3013 iface->get_read_only = gee_abstract_multi_map_real_get_read_only;
3014 iface->get_read_only_view = (GeeMultiMap* (*) (GeeMultiMap *)) gee_abstract_multi_map_get_read_only_view;
3018 static void gee_abstract_multi_map_instance_init (GeeAbstractMultiMap * self) {
3019 self->priv = GEE_ABSTRACT_MULTI_MAP_GET_PRIVATE (self);
3020 self->priv->_nitems = 0;
3024 static void gee_abstract_multi_map_finalize (GObject* obj) {
3025 GeeAbstractMultiMap * self;
3026 self = G_TYPE_CHECK_INSTANCE_CAST (obj, GEE_TYPE_ABSTRACT_MULTI_MAP, GeeAbstractMultiMap);
3027 _g_object_unref0 (self->_storage_map);
3028 G_OBJECT_CLASS (gee_abstract_multi_map_parent_class)->finalize (obj);
3033 * Skeletal implementation of the {@link MultiMap} interface.
3038 GType gee_abstract_multi_map_get_type (void) {
3039 static volatile gsize gee_abstract_multi_map_type_id__volatile = 0;
3040 if (g_once_init_enter (&gee_abstract_multi_map_type_id__volatile)) {
3041 static const GTypeInfo g_define_type_info = { sizeof (GeeAbstractMultiMapClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_abstract_multi_map_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeAbstractMultiMap), 0, (GInstanceInitFunc) gee_abstract_multi_map_instance_init, NULL };
3042 static const GInterfaceInfo gee_multi_map_info = { (GInterfaceInitFunc) gee_abstract_multi_map_gee_multi_map_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
3043 GType gee_abstract_multi_map_type_id;
3044 gee_abstract_multi_map_type_id = g_type_register_static (G_TYPE_OBJECT, "GeeAbstractMultiMap", &g_define_type_info, G_TYPE_FLAG_ABSTRACT);
3045 g_type_add_interface_static (gee_abstract_multi_map_type_id, GEE_TYPE_MULTI_MAP, &gee_multi_map_info);
3046 g_once_init_leave (&gee_abstract_multi_map_type_id__volatile, gee_abstract_multi_map_type_id);
3048 return gee_abstract_multi_map_type_id__volatile;
3052 static void _vala_gee_abstract_multi_map_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
3053 GeeAbstractMultiMap * self;
3054 self = G_TYPE_CHECK_INSTANCE_CAST (object, GEE_TYPE_ABSTRACT_MULTI_MAP, GeeAbstractMultiMap);
3055 switch (property_id) {
3056 case GEE_ABSTRACT_MULTI_MAP_SIZE:
3057 g_value_set_int (value, gee_multi_map_get_size ((GeeMultiMap*) self));
3059 case GEE_ABSTRACT_MULTI_MAP_READ_ONLY:
3060 g_value_set_boolean (value, gee_multi_map_get_read_only ((GeeMultiMap*) self));
3063 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
3069 static void _vala_gee_abstract_multi_map_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
3070 GeeAbstractMultiMap * self;
3071 self = G_TYPE_CHECK_INSTANCE_CAST (object, GEE_TYPE_ABSTRACT_MULTI_MAP, GeeAbstractMultiMap);
3072 switch (property_id) {
3073 case GEE_ABSTRACT_MULTI_MAP_K_TYPE:
3074 self->priv->k_type = g_value_get_gtype (value);
3076 case GEE_ABSTRACT_MULTI_MAP_K_DUP_FUNC:
3077 self->priv->k_dup_func = g_value_get_pointer (value);
3079 case GEE_ABSTRACT_MULTI_MAP_K_DESTROY_FUNC:
3080 self->priv->k_destroy_func = g_value_get_pointer (value);
3082 case GEE_ABSTRACT_MULTI_MAP_V_TYPE:
3083 self->priv->v_type = g_value_get_gtype (value);
3085 case GEE_ABSTRACT_MULTI_MAP_V_DUP_FUNC:
3086 self->priv->v_dup_func = g_value_get_pointer (value);
3088 case GEE_ABSTRACT_MULTI_MAP_V_DESTROY_FUNC:
3089 self->priv->v_destroy_func = g_value_get_pointer (value);
3092 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);