Update Changelog
[profile/ivi/libgee.git] / gee / readonlybidirsortedmap.c
1 /* readonlybidirsortedmap.c generated by valac 0.18.0, the Vala compiler
2  * generated from readonlybidirsortedmap.vala, do not modify */
3
4 /* readonlybidirsortedmap.vala
5  *
6  * Copyright (C) 2012  Maciej Piechotka
7  *
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.
12
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.
17
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
21  *
22  * Author:
23  *      Maciej Piechotka <uzytkownik2@gmail.com>
24  */
25
26 #include <glib.h>
27 #include <glib-object.h>
28
29
30 #define GEE_TYPE_TRAVERSABLE (gee_traversable_get_type ())
31 #define GEE_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversable))
32 #define GEE_IS_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_TRAVERSABLE))
33 #define GEE_TRAVERSABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversableIface))
34
35 typedef struct _GeeTraversable GeeTraversable;
36 typedef struct _GeeTraversableIface GeeTraversableIface;
37
38 #define GEE_TRAVERSABLE_TYPE_STREAM (gee_traversable_stream_get_type ())
39
40 #define GEE_TYPE_LAZY (gee_lazy_get_type ())
41 #define GEE_LAZY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LAZY, GeeLazy))
42 #define GEE_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_LAZY, GeeLazyClass))
43 #define GEE_IS_LAZY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LAZY))
44 #define GEE_IS_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_LAZY))
45 #define GEE_LAZY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_LAZY, GeeLazyClass))
46
47 typedef struct _GeeLazy GeeLazy;
48 typedef struct _GeeLazyClass GeeLazyClass;
49
50 #define GEE_TYPE_ITERATOR (gee_iterator_get_type ())
51 #define GEE_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERATOR, GeeIterator))
52 #define GEE_IS_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERATOR))
53 #define GEE_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERATOR, GeeIteratorIface))
54
55 typedef struct _GeeIterator GeeIterator;
56 typedef struct _GeeIteratorIface GeeIteratorIface;
57
58 #define GEE_TYPE_ITERABLE (gee_iterable_get_type ())
59 #define GEE_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERABLE, GeeIterable))
60 #define GEE_IS_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERABLE))
61 #define GEE_ITERABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERABLE, GeeIterableIface))
62
63 typedef struct _GeeIterable GeeIterable;
64 typedef struct _GeeIterableIface GeeIterableIface;
65
66 #define GEE_TYPE_MAP (gee_map_get_type ())
67 #define GEE_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_MAP, GeeMap))
68 #define GEE_IS_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_MAP))
69 #define GEE_MAP_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_MAP, GeeMapIface))
70
71 typedef struct _GeeMap GeeMap;
72 typedef struct _GeeMapIface GeeMapIface;
73
74 #define GEE_TYPE_MAP_ITERATOR (gee_map_iterator_get_type ())
75 #define GEE_MAP_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_MAP_ITERATOR, GeeMapIterator))
76 #define GEE_IS_MAP_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_MAP_ITERATOR))
77 #define GEE_MAP_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_MAP_ITERATOR, GeeMapIteratorIface))
78
79 typedef struct _GeeMapIterator GeeMapIterator;
80 typedef struct _GeeMapIteratorIface GeeMapIteratorIface;
81
82 #define GEE_TYPE_COLLECTION (gee_collection_get_type ())
83 #define GEE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_COLLECTION, GeeCollection))
84 #define GEE_IS_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_COLLECTION))
85 #define GEE_COLLECTION_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_COLLECTION, GeeCollectionIface))
86
87 typedef struct _GeeCollection GeeCollection;
88 typedef struct _GeeCollectionIface GeeCollectionIface;
89
90 #define GEE_TYPE_SET (gee_set_get_type ())
91 #define GEE_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_SET, GeeSet))
92 #define GEE_IS_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_SET))
93 #define GEE_SET_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_SET, GeeSetIface))
94
95 typedef struct _GeeSet GeeSet;
96 typedef struct _GeeSetIface GeeSetIface;
97
98 #define GEE_MAP_TYPE_ENTRY (gee_map_entry_get_type ())
99 #define GEE_MAP_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_MAP_TYPE_ENTRY, GeeMapEntry))
100 #define GEE_MAP_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_MAP_TYPE_ENTRY, GeeMapEntryClass))
101 #define GEE_MAP_IS_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_MAP_TYPE_ENTRY))
102 #define GEE_MAP_IS_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_MAP_TYPE_ENTRY))
103 #define GEE_MAP_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_MAP_TYPE_ENTRY, GeeMapEntryClass))
104
105 typedef struct _GeeMapEntry GeeMapEntry;
106 typedef struct _GeeMapEntryClass GeeMapEntryClass;
107
108 #define GEE_TYPE_READ_ONLY_MAP (gee_read_only_map_get_type ())
109 #define GEE_READ_ONLY_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_READ_ONLY_MAP, GeeReadOnlyMap))
110 #define GEE_READ_ONLY_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_READ_ONLY_MAP, GeeReadOnlyMapClass))
111 #define GEE_IS_READ_ONLY_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_READ_ONLY_MAP))
112 #define GEE_IS_READ_ONLY_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_READ_ONLY_MAP))
113 #define GEE_READ_ONLY_MAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_READ_ONLY_MAP, GeeReadOnlyMapClass))
114
115 typedef struct _GeeReadOnlyMap GeeReadOnlyMap;
116 typedef struct _GeeReadOnlyMapClass GeeReadOnlyMapClass;
117 typedef struct _GeeReadOnlyMapPrivate GeeReadOnlyMapPrivate;
118
119 #define GEE_TYPE_SORTED_MAP (gee_sorted_map_get_type ())
120 #define GEE_SORTED_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_SORTED_MAP, GeeSortedMap))
121 #define GEE_IS_SORTED_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_SORTED_MAP))
122 #define GEE_SORTED_MAP_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_SORTED_MAP, GeeSortedMapIface))
123
124 typedef struct _GeeSortedMap GeeSortedMap;
125 typedef struct _GeeSortedMapIface GeeSortedMapIface;
126
127 #define GEE_TYPE_SORTED_SET (gee_sorted_set_get_type ())
128 #define GEE_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_SORTED_SET, GeeSortedSet))
129 #define GEE_IS_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_SORTED_SET))
130 #define GEE_SORTED_SET_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_SORTED_SET, GeeSortedSetIface))
131
132 typedef struct _GeeSortedSet GeeSortedSet;
133 typedef struct _GeeSortedSetIface GeeSortedSetIface;
134
135 #define GEE_TYPE_READ_ONLY_SORTED_MAP (gee_read_only_sorted_map_get_type ())
136 #define GEE_READ_ONLY_SORTED_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_READ_ONLY_SORTED_MAP, GeeReadOnlySortedMap))
137 #define GEE_READ_ONLY_SORTED_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_READ_ONLY_SORTED_MAP, GeeReadOnlySortedMapClass))
138 #define GEE_IS_READ_ONLY_SORTED_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_READ_ONLY_SORTED_MAP))
139 #define GEE_IS_READ_ONLY_SORTED_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_READ_ONLY_SORTED_MAP))
140 #define GEE_READ_ONLY_SORTED_MAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_READ_ONLY_SORTED_MAP, GeeReadOnlySortedMapClass))
141
142 typedef struct _GeeReadOnlySortedMap GeeReadOnlySortedMap;
143 typedef struct _GeeReadOnlySortedMapClass GeeReadOnlySortedMapClass;
144 typedef struct _GeeReadOnlySortedMapPrivate GeeReadOnlySortedMapPrivate;
145
146 #define GEE_TYPE_BIDIR_SORTED_MAP (gee_bidir_sorted_map_get_type ())
147 #define GEE_BIDIR_SORTED_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_BIDIR_SORTED_MAP, GeeBidirSortedMap))
148 #define GEE_IS_BIDIR_SORTED_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_BIDIR_SORTED_MAP))
149 #define GEE_BIDIR_SORTED_MAP_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_BIDIR_SORTED_MAP, GeeBidirSortedMapIface))
150
151 typedef struct _GeeBidirSortedMap GeeBidirSortedMap;
152 typedef struct _GeeBidirSortedMapIface GeeBidirSortedMapIface;
153
154 #define GEE_TYPE_BIDIR_MAP_ITERATOR (gee_bidir_map_iterator_get_type ())
155 #define GEE_BIDIR_MAP_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_BIDIR_MAP_ITERATOR, GeeBidirMapIterator))
156 #define GEE_IS_BIDIR_MAP_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_BIDIR_MAP_ITERATOR))
157 #define GEE_BIDIR_MAP_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_BIDIR_MAP_ITERATOR, GeeBidirMapIteratorIface))
158
159 typedef struct _GeeBidirMapIterator GeeBidirMapIterator;
160 typedef struct _GeeBidirMapIteratorIface GeeBidirMapIteratorIface;
161
162 #define GEE_TYPE_READ_ONLY_BIDIR_SORTED_MAP (gee_read_only_bidir_sorted_map_get_type ())
163 #define GEE_READ_ONLY_BIDIR_SORTED_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_READ_ONLY_BIDIR_SORTED_MAP, GeeReadOnlyBidirSortedMap))
164 #define GEE_READ_ONLY_BIDIR_SORTED_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_READ_ONLY_BIDIR_SORTED_MAP, GeeReadOnlyBidirSortedMapClass))
165 #define GEE_IS_READ_ONLY_BIDIR_SORTED_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_READ_ONLY_BIDIR_SORTED_MAP))
166 #define GEE_IS_READ_ONLY_BIDIR_SORTED_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_READ_ONLY_BIDIR_SORTED_MAP))
167 #define GEE_READ_ONLY_BIDIR_SORTED_MAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_READ_ONLY_BIDIR_SORTED_MAP, GeeReadOnlyBidirSortedMapClass))
168
169 typedef struct _GeeReadOnlyBidirSortedMap GeeReadOnlyBidirSortedMap;
170 typedef struct _GeeReadOnlyBidirSortedMapClass GeeReadOnlyBidirSortedMapClass;
171 typedef struct _GeeReadOnlyBidirSortedMapPrivate GeeReadOnlyBidirSortedMapPrivate;
172
173 #define GEE_READ_ONLY_MAP_TYPE_MAP_ITERATOR (gee_read_only_map_map_iterator_get_type ())
174 #define GEE_READ_ONLY_MAP_MAP_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_READ_ONLY_MAP_TYPE_MAP_ITERATOR, GeeReadOnlyMapMapIterator))
175 #define GEE_READ_ONLY_MAP_MAP_ITERATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_READ_ONLY_MAP_TYPE_MAP_ITERATOR, GeeReadOnlyMapMapIteratorClass))
176 #define GEE_READ_ONLY_MAP_IS_MAP_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_READ_ONLY_MAP_TYPE_MAP_ITERATOR))
177 #define GEE_READ_ONLY_MAP_IS_MAP_ITERATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_READ_ONLY_MAP_TYPE_MAP_ITERATOR))
178 #define GEE_READ_ONLY_MAP_MAP_ITERATOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_READ_ONLY_MAP_TYPE_MAP_ITERATOR, GeeReadOnlyMapMapIteratorClass))
179
180 typedef struct _GeeReadOnlyMapMapIterator GeeReadOnlyMapMapIterator;
181 typedef struct _GeeReadOnlyMapMapIteratorClass GeeReadOnlyMapMapIteratorClass;
182
183 #define GEE_READ_ONLY_BIDIR_SORTED_MAP_TYPE_BIDIR_MAP_ITERATOR (gee_read_only_bidir_sorted_map_bidir_map_iterator_get_type ())
184 #define GEE_READ_ONLY_BIDIR_SORTED_MAP_BIDIR_MAP_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_READ_ONLY_BIDIR_SORTED_MAP_TYPE_BIDIR_MAP_ITERATOR, GeeReadOnlyBidirSortedMapBidirMapIterator))
185 #define GEE_READ_ONLY_BIDIR_SORTED_MAP_BIDIR_MAP_ITERATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_READ_ONLY_BIDIR_SORTED_MAP_TYPE_BIDIR_MAP_ITERATOR, GeeReadOnlyBidirSortedMapBidirMapIteratorClass))
186 #define GEE_READ_ONLY_BIDIR_SORTED_MAP_IS_BIDIR_MAP_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_READ_ONLY_BIDIR_SORTED_MAP_TYPE_BIDIR_MAP_ITERATOR))
187 #define GEE_READ_ONLY_BIDIR_SORTED_MAP_IS_BIDIR_MAP_ITERATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_READ_ONLY_BIDIR_SORTED_MAP_TYPE_BIDIR_MAP_ITERATOR))
188 #define GEE_READ_ONLY_BIDIR_SORTED_MAP_BIDIR_MAP_ITERATOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_READ_ONLY_BIDIR_SORTED_MAP_TYPE_BIDIR_MAP_ITERATOR, GeeReadOnlyBidirSortedMapBidirMapIteratorClass))
189
190 typedef struct _GeeReadOnlyBidirSortedMapBidirMapIterator GeeReadOnlyBidirSortedMapBidirMapIterator;
191 typedef struct _GeeReadOnlyBidirSortedMapBidirMapIteratorClass GeeReadOnlyBidirSortedMapBidirMapIteratorClass;
192 #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
193 typedef struct _GeeReadOnlyMapMapIteratorPrivate GeeReadOnlyMapMapIteratorPrivate;
194 typedef struct _GeeReadOnlyBidirSortedMapBidirMapIteratorPrivate GeeReadOnlyBidirSortedMapBidirMapIteratorPrivate;
195
196 typedef gboolean (*GeeForallFunc) (gpointer g, void* user_data);
197 typedef enum  {
198         GEE_TRAVERSABLE_STREAM_YIELD,
199         GEE_TRAVERSABLE_STREAM_CONTINUE,
200         GEE_TRAVERSABLE_STREAM_END
201 } GeeTraversableStream;
202
203 typedef GeeTraversableStream (*GeeStreamFunc) (GeeTraversableStream state, GeeLazy* g, GeeLazy** lazy, void* user_data);
204 struct _GeeIteratorIface {
205         GTypeInterface parent_iface;
206         gboolean (*next) (GeeIterator* self);
207         gboolean (*has_next) (GeeIterator* self);
208         gpointer (*get) (GeeIterator* self);
209         void (*remove) (GeeIterator* self);
210         gboolean (*get_valid) (GeeIterator* self);
211         gboolean (*get_read_only) (GeeIterator* self);
212 };
213
214 typedef gpointer (*GeeFoldFunc) (gpointer g, gpointer a, void* user_data);
215 typedef gpointer (*GeeMapFunc) (gpointer g, void* user_data);
216 typedef gboolean (*GeePredicate) (gconstpointer g, void* user_data);
217 struct _GeeTraversableIface {
218         GTypeInterface parent_iface;
219         GType (*get_g_type) (GeeTraversable* self);
220         GBoxedCopyFunc (*get_g_dup_func) (GeeTraversable* self);
221         GDestroyNotify (*get_g_destroy_func) (GeeTraversable* self);
222         gboolean (*foreach) (GeeTraversable* self, GeeForallFunc f, void* f_target);
223         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);
224         gpointer (*fold) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, void* f_target, gpointer seed);
225         GeeIterator* (*map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeMapFunc f, void* f_target);
226         GeeIterator* (*scan) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, void* f_target, gpointer seed);
227         GeeIterator* (*filter) (GeeTraversable* self, GeePredicate pred, void* pred_target, GDestroyNotify pred_target_destroy_notify);
228         GeeIterator* (*chop) (GeeTraversable* self, gint offset, gint length);
229         GType (*get_element_type) (GeeTraversable* self);
230 };
231
232 struct _GeeIterableIface {
233         GTypeInterface parent_iface;
234         GType (*get_g_type) (GeeIterable* self);
235         GBoxedCopyFunc (*get_g_dup_func) (GeeIterable* self);
236         GDestroyNotify (*get_g_destroy_func) (GeeIterable* self);
237         GeeIterator* (*iterator) (GeeIterable* self);
238 };
239
240 typedef gpointer (*GeeFoldMapFunc) (gconstpointer k, gconstpointer v, gpointer a, void* user_data);
241 typedef gboolean (*GeeForallMapFunc) (gconstpointer k, gconstpointer v, void* user_data);
242 struct _GeeMapIteratorIface {
243         GTypeInterface parent_iface;
244         GType (*get_k_type) (GeeMapIterator* self);
245         GBoxedCopyFunc (*get_k_dup_func) (GeeMapIterator* self);
246         GDestroyNotify (*get_k_destroy_func) (GeeMapIterator* self);
247         GType (*get_v_type) (GeeMapIterator* self);
248         GBoxedCopyFunc (*get_v_dup_func) (GeeMapIterator* self);
249         GDestroyNotify (*get_v_destroy_func) (GeeMapIterator* self);
250         gboolean (*next) (GeeMapIterator* self);
251         gboolean (*has_next) (GeeMapIterator* self);
252         gpointer (*get_key) (GeeMapIterator* self);
253         gpointer (*get_value) (GeeMapIterator* self);
254         void (*set_value) (GeeMapIterator* self, gconstpointer value);
255         void (*unset) (GeeMapIterator* self);
256         gpointer (*fold) (GeeMapIterator* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldMapFunc f, void* f_target, gpointer seed);
257         gboolean (*foreach) (GeeMapIterator* self, GeeForallMapFunc f, void* f_target);
258         gboolean (*get_valid) (GeeMapIterator* self);
259         gboolean (*get_mutable) (GeeMapIterator* self);
260         gboolean (*get_read_only) (GeeMapIterator* self);
261 };
262
263 struct _GeeCollectionIface {
264         GTypeInterface parent_iface;
265         GType (*get_g_type) (GeeCollection* self);
266         GBoxedCopyFunc (*get_g_dup_func) (GeeCollection* self);
267         GDestroyNotify (*get_g_destroy_func) (GeeCollection* self);
268         gboolean (*contains) (GeeCollection* self, gconstpointer item);
269         gboolean (*add) (GeeCollection* self, gconstpointer item);
270         gboolean (*remove) (GeeCollection* self, gconstpointer item);
271         void (*clear) (GeeCollection* self);
272         gboolean (*add_all) (GeeCollection* self, GeeCollection* collection);
273         gboolean (*contains_all) (GeeCollection* self, GeeCollection* collection);
274         gboolean (*remove_all) (GeeCollection* self, GeeCollection* collection);
275         gboolean (*retain_all) (GeeCollection* self, GeeCollection* collection);
276         gpointer* (*to_array) (GeeCollection* self, int* result_length1);
277         gint (*get_size) (GeeCollection* self);
278         gboolean (*get_is_empty) (GeeCollection* self);
279         gboolean (*get_read_only) (GeeCollection* self);
280         GeeCollection* (*get_read_only_view) (GeeCollection* self);
281 };
282
283 struct _GeeSetIface {
284         GTypeInterface parent_iface;
285         GType (*get_g_type) (GeeSet* self);
286         GBoxedCopyFunc (*get_g_dup_func) (GeeSet* self);
287         GDestroyNotify (*get_g_destroy_func) (GeeSet* self);
288         GeeSet* (*get_read_only_view) (GeeSet* self);
289 };
290
291 struct _GeeMapIface {
292         GTypeInterface parent_iface;
293         GType (*get_k_type) (GeeMap* self);
294         GBoxedCopyFunc (*get_k_dup_func) (GeeMap* self);
295         GDestroyNotify (*get_k_destroy_func) (GeeMap* self);
296         GType (*get_v_type) (GeeMap* self);
297         GBoxedCopyFunc (*get_v_dup_func) (GeeMap* self);
298         GDestroyNotify (*get_v_destroy_func) (GeeMap* self);
299         gboolean (*has_key) (GeeMap* self, gconstpointer key);
300         gboolean (*has) (GeeMap* self, gconstpointer key, gconstpointer value);
301         gpointer (*get) (GeeMap* self, gconstpointer key);
302         void (*set) (GeeMap* self, gconstpointer key, gconstpointer value);
303         gboolean (*unset) (GeeMap* self, gconstpointer key, gpointer* value);
304         void (*clear) (GeeMap* self);
305         GeeMapIterator* (*map_iterator) (GeeMap* self);
306         void (*set_all) (GeeMap* self, GeeMap* map);
307         gboolean (*unset_all) (GeeMap* self, GeeMap* map);
308         gboolean (*has_all) (GeeMap* self, GeeMap* map);
309         gint (*get_size) (GeeMap* self);
310         gboolean (*get_is_empty) (GeeMap* self);
311         gboolean (*get_read_only) (GeeMap* self);
312         GeeSet* (*get_keys) (GeeMap* self);
313         GeeCollection* (*get_values) (GeeMap* self);
314         GeeSet* (*get_entries) (GeeMap* self);
315         GeeMap* (*get_read_only_view) (GeeMap* self);
316 };
317
318 struct _GeeReadOnlyMap {
319         GObject parent_instance;
320         GeeReadOnlyMapPrivate * priv;
321         GeeMap* _map;
322 };
323
324 struct _GeeReadOnlyMapClass {
325         GObjectClass parent_class;
326         GeeMap* (*get_read_only_view) (GeeReadOnlyMap* self);
327 };
328
329 struct _GeeSortedSetIface {
330         GTypeInterface parent_iface;
331         GType (*get_g_type) (GeeSortedSet* self);
332         GBoxedCopyFunc (*get_g_dup_func) (GeeSortedSet* self);
333         GDestroyNotify (*get_g_destroy_func) (GeeSortedSet* self);
334         gpointer (*first) (GeeSortedSet* self);
335         gpointer (*last) (GeeSortedSet* self);
336         GeeIterator* (*iterator_at) (GeeSortedSet* self, gconstpointer element);
337         gpointer (*lower) (GeeSortedSet* self, gconstpointer element);
338         gpointer (*higher) (GeeSortedSet* self, gconstpointer element);
339         gpointer (*floor) (GeeSortedSet* self, gconstpointer element);
340         gpointer (*ceil) (GeeSortedSet* self, gconstpointer element);
341         GeeSortedSet* (*head_set) (GeeSortedSet* self, gconstpointer before);
342         GeeSortedSet* (*tail_set) (GeeSortedSet* self, gconstpointer after);
343         GeeSortedSet* (*sub_set) (GeeSortedSet* self, gconstpointer from, gconstpointer to);
344         GeeSortedSet* (*get_read_only_view) (GeeSortedSet* self);
345 };
346
347 struct _GeeSortedMapIface {
348         GTypeInterface parent_iface;
349         GeeSortedMap* (*head_map) (GeeSortedMap* self, gconstpointer before);
350         GeeSortedMap* (*tail_map) (GeeSortedMap* self, gconstpointer after);
351         GeeSortedMap* (*sub_map) (GeeSortedMap* self, gconstpointer before, gconstpointer after);
352         GeeSortedSet* (*get_ascending_keys) (GeeSortedMap* self);
353         GeeSortedSet* (*get_ascending_entries) (GeeSortedMap* self);
354         GeeSortedMap* (*get_read_only_view) (GeeSortedMap* self);
355 };
356
357 struct _GeeReadOnlySortedMap {
358         GeeReadOnlyMap parent_instance;
359         GeeReadOnlySortedMapPrivate * priv;
360 };
361
362 struct _GeeReadOnlySortedMapClass {
363         GeeReadOnlyMapClass parent_class;
364 };
365
366 struct _GeeBidirMapIteratorIface {
367         GTypeInterface parent_iface;
368         GType (*get_k_type) (GeeBidirMapIterator* self);
369         GBoxedCopyFunc (*get_k_dup_func) (GeeBidirMapIterator* self);
370         GDestroyNotify (*get_k_destroy_func) (GeeBidirMapIterator* self);
371         GType (*get_v_type) (GeeBidirMapIterator* self);
372         GBoxedCopyFunc (*get_v_dup_func) (GeeBidirMapIterator* self);
373         GDestroyNotify (*get_v_destroy_func) (GeeBidirMapIterator* self);
374         gboolean (*previous) (GeeBidirMapIterator* self);
375         gboolean (*has_previous) (GeeBidirMapIterator* self);
376         gboolean (*first) (GeeBidirMapIterator* self);
377         gboolean (*last) (GeeBidirMapIterator* self);
378 };
379
380 struct _GeeBidirSortedMapIface {
381         GTypeInterface parent_iface;
382         GType (*get_k_type) (GeeBidirSortedMap* self);
383         GBoxedCopyFunc (*get_k_dup_func) (GeeBidirSortedMap* self);
384         GDestroyNotify (*get_k_destroy_func) (GeeBidirSortedMap* self);
385         GType (*get_v_type) (GeeBidirSortedMap* self);
386         GBoxedCopyFunc (*get_v_dup_func) (GeeBidirSortedMap* self);
387         GDestroyNotify (*get_v_destroy_func) (GeeBidirSortedMap* self);
388         GeeBidirMapIterator* (*bidir_map_iterator) (GeeBidirSortedMap* self);
389         GeeBidirSortedMap* (*get_read_only_view) (GeeBidirSortedMap* self);
390 };
391
392 struct _GeeReadOnlyBidirSortedMap {
393         GeeReadOnlySortedMap parent_instance;
394         GeeReadOnlyBidirSortedMapPrivate * priv;
395 };
396
397 struct _GeeReadOnlyBidirSortedMapClass {
398         GeeReadOnlySortedMapClass parent_class;
399 };
400
401 struct _GeeReadOnlyBidirSortedMapPrivate {
402         GType k_type;
403         GBoxedCopyFunc k_dup_func;
404         GDestroyNotify k_destroy_func;
405         GType v_type;
406         GBoxedCopyFunc v_dup_func;
407         GDestroyNotify v_destroy_func;
408 };
409
410 struct _GeeReadOnlyMapMapIterator {
411         GObject parent_instance;
412         GeeReadOnlyMapMapIteratorPrivate * priv;
413         GeeMapIterator* _iter;
414 };
415
416 struct _GeeReadOnlyMapMapIteratorClass {
417         GObjectClass parent_class;
418 };
419
420 struct _GeeReadOnlyBidirSortedMapBidirMapIterator {
421         GeeReadOnlyMapMapIterator parent_instance;
422         GeeReadOnlyBidirSortedMapBidirMapIteratorPrivate * priv;
423 };
424
425 struct _GeeReadOnlyBidirSortedMapBidirMapIteratorClass {
426         GeeReadOnlyMapMapIteratorClass parent_class;
427 };
428
429 struct _GeeReadOnlyBidirSortedMapBidirMapIteratorPrivate {
430         GType k_type;
431         GBoxedCopyFunc k_dup_func;
432         GDestroyNotify k_destroy_func;
433         GType v_type;
434         GBoxedCopyFunc v_dup_func;
435         GDestroyNotify v_destroy_func;
436 };
437
438
439 static gpointer gee_read_only_bidir_sorted_map_parent_class = NULL;
440 static gpointer gee_read_only_bidir_sorted_map_bidir_map_iterator_parent_class = NULL;
441 static GeeBidirMapIteratorIface* gee_read_only_bidir_sorted_map_bidir_map_iterator_gee_bidir_map_iterator_parent_iface = NULL;
442 static GeeBidirSortedMapIface* gee_read_only_bidir_sorted_map_gee_bidir_sorted_map_parent_iface = NULL;
443
444 GType gee_traversable_stream_get_type (void) G_GNUC_CONST;
445 gpointer gee_lazy_ref (gpointer instance);
446 void gee_lazy_unref (gpointer instance);
447 GParamSpec* gee_param_spec_lazy (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
448 void gee_value_set_lazy (GValue* value, gpointer v_object);
449 void gee_value_take_lazy (GValue* value, gpointer v_object);
450 gpointer gee_value_get_lazy (const GValue* value);
451 GType gee_lazy_get_type (void) G_GNUC_CONST;
452 GType gee_iterator_get_type (void) G_GNUC_CONST;
453 GType gee_traversable_get_type (void) G_GNUC_CONST;
454 GType gee_iterable_get_type (void) G_GNUC_CONST;
455 GType gee_map_iterator_get_type (void) G_GNUC_CONST;
456 GType gee_collection_get_type (void) G_GNUC_CONST;
457 GType gee_set_get_type (void) G_GNUC_CONST;
458 GType gee_map_entry_get_type (void) G_GNUC_CONST;
459 GType gee_map_get_type (void) G_GNUC_CONST;
460 GType gee_read_only_map_get_type (void) G_GNUC_CONST;
461 GType gee_sorted_set_get_type (void) G_GNUC_CONST;
462 GType gee_sorted_map_get_type (void) G_GNUC_CONST;
463 GType gee_read_only_sorted_map_get_type (void) G_GNUC_CONST;
464 GType gee_bidir_map_iterator_get_type (void) G_GNUC_CONST;
465 GType gee_bidir_sorted_map_get_type (void) G_GNUC_CONST;
466 GType gee_read_only_bidir_sorted_map_get_type (void) G_GNUC_CONST;
467 #define GEE_READ_ONLY_BIDIR_SORTED_MAP_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GEE_TYPE_READ_ONLY_BIDIR_SORTED_MAP, GeeReadOnlyBidirSortedMapPrivate))
468 enum  {
469         GEE_READ_ONLY_BIDIR_SORTED_MAP_DUMMY_PROPERTY,
470         GEE_READ_ONLY_BIDIR_SORTED_MAP_K_TYPE,
471         GEE_READ_ONLY_BIDIR_SORTED_MAP_K_DUP_FUNC,
472         GEE_READ_ONLY_BIDIR_SORTED_MAP_K_DESTROY_FUNC,
473         GEE_READ_ONLY_BIDIR_SORTED_MAP_V_TYPE,
474         GEE_READ_ONLY_BIDIR_SORTED_MAP_V_DUP_FUNC,
475         GEE_READ_ONLY_BIDIR_SORTED_MAP_V_DESTROY_FUNC
476 };
477 GeeReadOnlyBidirSortedMap* gee_read_only_bidir_sorted_map_new (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeBidirSortedMap* map);
478 GeeReadOnlyBidirSortedMap* gee_read_only_bidir_sorted_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, GeeBidirSortedMap* map);
479 GeeReadOnlySortedMap* gee_read_only_sorted_map_new (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeMap* map);
480 GeeReadOnlySortedMap* gee_read_only_sorted_map_construct (GType object_type, GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeMap* map);
481 static GeeBidirMapIterator* gee_read_only_bidir_sorted_map_real_bidir_map_iterator (GeeBidirSortedMap* base);
482 GeeBidirMapIterator* gee_bidir_sorted_map_bidir_map_iterator (GeeBidirSortedMap* self);
483 GeeReadOnlyBidirSortedMapBidirMapIterator* gee_read_only_bidir_sorted_map_bidir_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, GeeBidirMapIterator* iterator);
484 GeeReadOnlyBidirSortedMapBidirMapIterator* gee_read_only_bidir_sorted_map_bidir_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, GeeBidirMapIterator* iterator);
485 GType gee_read_only_map_map_iterator_get_type (void) G_GNUC_CONST;
486 GType gee_read_only_bidir_sorted_map_bidir_map_iterator_get_type (void) G_GNUC_CONST;
487 #define GEE_READ_ONLY_BIDIR_SORTED_MAP_BIDIR_MAP_ITERATOR_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GEE_READ_ONLY_BIDIR_SORTED_MAP_TYPE_BIDIR_MAP_ITERATOR, GeeReadOnlyBidirSortedMapBidirMapIteratorPrivate))
488 enum  {
489         GEE_READ_ONLY_BIDIR_SORTED_MAP_BIDIR_MAP_ITERATOR_DUMMY_PROPERTY,
490         GEE_READ_ONLY_BIDIR_SORTED_MAP_BIDIR_MAP_ITERATOR_K_TYPE,
491         GEE_READ_ONLY_BIDIR_SORTED_MAP_BIDIR_MAP_ITERATOR_K_DUP_FUNC,
492         GEE_READ_ONLY_BIDIR_SORTED_MAP_BIDIR_MAP_ITERATOR_K_DESTROY_FUNC,
493         GEE_READ_ONLY_BIDIR_SORTED_MAP_BIDIR_MAP_ITERATOR_V_TYPE,
494         GEE_READ_ONLY_BIDIR_SORTED_MAP_BIDIR_MAP_ITERATOR_V_DUP_FUNC,
495         GEE_READ_ONLY_BIDIR_SORTED_MAP_BIDIR_MAP_ITERATOR_V_DESTROY_FUNC
496 };
497 GeeReadOnlyMapMapIterator* gee_read_only_map_map_iterator_new (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeMapIterator* iterator);
498 GeeReadOnlyMapMapIterator* gee_read_only_map_map_iterator_construct (GType object_type, GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeMapIterator* iterator);
499 static gboolean gee_read_only_bidir_sorted_map_bidir_map_iterator_real_first (GeeBidirMapIterator* base);
500 gboolean gee_bidir_map_iterator_first (GeeBidirMapIterator* self);
501 static gboolean gee_read_only_bidir_sorted_map_bidir_map_iterator_real_previous (GeeBidirMapIterator* base);
502 gboolean gee_bidir_map_iterator_previous (GeeBidirMapIterator* self);
503 static gboolean gee_read_only_bidir_sorted_map_bidir_map_iterator_real_has_previous (GeeBidirMapIterator* base);
504 gboolean gee_bidir_map_iterator_has_previous (GeeBidirMapIterator* self);
505 static gboolean gee_read_only_bidir_sorted_map_bidir_map_iterator_real_last (GeeBidirMapIterator* base);
506 gboolean gee_bidir_map_iterator_last (GeeBidirMapIterator* self);
507 static void _vala_gee_read_only_bidir_sorted_map_bidir_map_iterator_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
508 static void _vala_gee_read_only_bidir_sorted_map_bidir_map_iterator_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
509 GeeMap* gee_read_only_map_get_read_only_view (GeeReadOnlyMap* self);
510 static void _vala_gee_read_only_bidir_sorted_map_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
511 static void _vala_gee_read_only_bidir_sorted_map_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
512
513
514 /**
515  * Constructs a read-only map that mirrors the content of the specified map.
516  *
517  * @param set the set to decorate.
518  */
519 GeeReadOnlyBidirSortedMap* gee_read_only_bidir_sorted_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, GeeBidirSortedMap* map) {
520         GeeReadOnlyBidirSortedMap * self = NULL;
521         GeeBidirSortedMap* _tmp0_;
522         g_return_val_if_fail (map != NULL, NULL);
523         _tmp0_ = map;
524         self = (GeeReadOnlyBidirSortedMap*) gee_read_only_sorted_map_construct (object_type, k_type, (GBoxedCopyFunc) k_dup_func, k_destroy_func, v_type, (GBoxedCopyFunc) v_dup_func, v_destroy_func, (GeeMap*) _tmp0_);
525         self->priv->k_type = k_type;
526         self->priv->k_dup_func = k_dup_func;
527         self->priv->k_destroy_func = k_destroy_func;
528         self->priv->v_type = v_type;
529         self->priv->v_dup_func = v_dup_func;
530         self->priv->v_destroy_func = v_destroy_func;
531         return self;
532 }
533
534
535 GeeReadOnlyBidirSortedMap* gee_read_only_bidir_sorted_map_new (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeBidirSortedMap* map) {
536         return gee_read_only_bidir_sorted_map_construct (GEE_TYPE_READ_ONLY_BIDIR_SORTED_MAP, k_type, k_dup_func, k_destroy_func, v_type, v_dup_func, v_destroy_func, map);
537 }
538
539
540 /**
541  * {@inheritDoc}
542  */
543 static GeeBidirMapIterator* gee_read_only_bidir_sorted_map_real_bidir_map_iterator (GeeBidirSortedMap* base) {
544         GeeReadOnlyBidirSortedMap * self;
545         GeeBidirMapIterator* result = NULL;
546         GeeMap* _tmp0_;
547         GeeBidirMapIterator* _tmp1_ = NULL;
548         GeeBidirMapIterator* _tmp2_;
549         GeeReadOnlyBidirSortedMapBidirMapIterator* _tmp3_;
550         GeeBidirMapIterator* _tmp4_;
551         self = (GeeReadOnlyBidirSortedMap*) base;
552         _tmp0_ = ((GeeReadOnlyMap*) self)->_map;
553         _tmp1_ = gee_bidir_sorted_map_bidir_map_iterator (G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, GEE_TYPE_BIDIR_SORTED_MAP) ? ((GeeBidirSortedMap*) _tmp0_) : NULL);
554         _tmp2_ = _tmp1_;
555         _tmp3_ = gee_read_only_bidir_sorted_map_bidir_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_);
556         _tmp4_ = (GeeBidirMapIterator*) _tmp3_;
557         _g_object_unref0 (_tmp2_);
558         result = _tmp4_;
559         return result;
560 }
561
562
563 GeeReadOnlyBidirSortedMapBidirMapIterator* gee_read_only_bidir_sorted_map_bidir_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, GeeBidirMapIterator* iterator) {
564         GeeReadOnlyBidirSortedMapBidirMapIterator * self = NULL;
565         GeeBidirMapIterator* _tmp0_;
566         g_return_val_if_fail (iterator != NULL, NULL);
567         _tmp0_ = iterator;
568         self = (GeeReadOnlyBidirSortedMapBidirMapIterator*) gee_read_only_map_map_iterator_construct (object_type, k_type, (GBoxedCopyFunc) k_dup_func, k_destroy_func, v_type, (GBoxedCopyFunc) v_dup_func, v_destroy_func, (GeeMapIterator*) _tmp0_);
569         self->priv->k_type = k_type;
570         self->priv->k_dup_func = k_dup_func;
571         self->priv->k_destroy_func = k_destroy_func;
572         self->priv->v_type = v_type;
573         self->priv->v_dup_func = v_dup_func;
574         self->priv->v_destroy_func = v_destroy_func;
575         return self;
576 }
577
578
579 GeeReadOnlyBidirSortedMapBidirMapIterator* gee_read_only_bidir_sorted_map_bidir_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, GeeBidirMapIterator* iterator) {
580         return gee_read_only_bidir_sorted_map_bidir_map_iterator_construct (GEE_READ_ONLY_BIDIR_SORTED_MAP_TYPE_BIDIR_MAP_ITERATOR, k_type, k_dup_func, k_destroy_func, v_type, v_dup_func, v_destroy_func, iterator);
581 }
582
583
584 static gboolean gee_read_only_bidir_sorted_map_bidir_map_iterator_real_first (GeeBidirMapIterator* base) {
585         GeeReadOnlyBidirSortedMapBidirMapIterator * self;
586         gboolean result = FALSE;
587         GeeMapIterator* _tmp0_;
588         gboolean _tmp1_ = FALSE;
589         self = (GeeReadOnlyBidirSortedMapBidirMapIterator*) base;
590         _tmp0_ = ((GeeReadOnlyMapMapIterator*) self)->_iter;
591         _tmp1_ = gee_bidir_map_iterator_first (G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, GEE_TYPE_BIDIR_MAP_ITERATOR) ? ((GeeBidirMapIterator*) _tmp0_) : NULL);
592         result = _tmp1_;
593         return result;
594 }
595
596
597 static gboolean gee_read_only_bidir_sorted_map_bidir_map_iterator_real_previous (GeeBidirMapIterator* base) {
598         GeeReadOnlyBidirSortedMapBidirMapIterator * self;
599         gboolean result = FALSE;
600         GeeMapIterator* _tmp0_;
601         gboolean _tmp1_ = FALSE;
602         self = (GeeReadOnlyBidirSortedMapBidirMapIterator*) base;
603         _tmp0_ = ((GeeReadOnlyMapMapIterator*) self)->_iter;
604         _tmp1_ = gee_bidir_map_iterator_previous (G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, GEE_TYPE_BIDIR_MAP_ITERATOR) ? ((GeeBidirMapIterator*) _tmp0_) : NULL);
605         result = _tmp1_;
606         return result;
607 }
608
609
610 static gboolean gee_read_only_bidir_sorted_map_bidir_map_iterator_real_has_previous (GeeBidirMapIterator* base) {
611         GeeReadOnlyBidirSortedMapBidirMapIterator * self;
612         gboolean result = FALSE;
613         GeeMapIterator* _tmp0_;
614         gboolean _tmp1_ = FALSE;
615         self = (GeeReadOnlyBidirSortedMapBidirMapIterator*) base;
616         _tmp0_ = ((GeeReadOnlyMapMapIterator*) self)->_iter;
617         _tmp1_ = gee_bidir_map_iterator_has_previous (G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, GEE_TYPE_BIDIR_MAP_ITERATOR) ? ((GeeBidirMapIterator*) _tmp0_) : NULL);
618         result = _tmp1_;
619         return result;
620 }
621
622
623 static gboolean gee_read_only_bidir_sorted_map_bidir_map_iterator_real_last (GeeBidirMapIterator* base) {
624         GeeReadOnlyBidirSortedMapBidirMapIterator * self;
625         gboolean result = FALSE;
626         GeeMapIterator* _tmp0_;
627         gboolean _tmp1_ = FALSE;
628         self = (GeeReadOnlyBidirSortedMapBidirMapIterator*) base;
629         _tmp0_ = ((GeeReadOnlyMapMapIterator*) self)->_iter;
630         _tmp1_ = gee_bidir_map_iterator_last (G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, GEE_TYPE_BIDIR_MAP_ITERATOR) ? ((GeeBidirMapIterator*) _tmp0_) : NULL);
631         result = _tmp1_;
632         return result;
633 }
634
635
636 static void gee_read_only_bidir_sorted_map_bidir_map_iterator_class_init (GeeReadOnlyBidirSortedMapBidirMapIteratorClass * klass) {
637         gee_read_only_bidir_sorted_map_bidir_map_iterator_parent_class = g_type_class_peek_parent (klass);
638         g_type_class_add_private (klass, sizeof (GeeReadOnlyBidirSortedMapBidirMapIteratorPrivate));
639         G_OBJECT_CLASS (klass)->get_property = _vala_gee_read_only_bidir_sorted_map_bidir_map_iterator_get_property;
640         G_OBJECT_CLASS (klass)->set_property = _vala_gee_read_only_bidir_sorted_map_bidir_map_iterator_set_property;
641         g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_READ_ONLY_BIDIR_SORTED_MAP_BIDIR_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));
642         g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_READ_ONLY_BIDIR_SORTED_MAP_BIDIR_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));
643         g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_READ_ONLY_BIDIR_SORTED_MAP_BIDIR_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));
644         g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_READ_ONLY_BIDIR_SORTED_MAP_BIDIR_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));
645         g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_READ_ONLY_BIDIR_SORTED_MAP_BIDIR_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));
646         g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_READ_ONLY_BIDIR_SORTED_MAP_BIDIR_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));
647 }
648
649
650 static GType gee_read_only_bidir_sorted_map_bidir_map_iterator_gee_bidir_map_iterator_get_k_type (GeeReadOnlyBidirSortedMapBidirMapIterator* self) {
651         return self->priv->k_type;
652 }
653
654
655 static GBoxedCopyFunc gee_read_only_bidir_sorted_map_bidir_map_iterator_gee_bidir_map_iterator_get_k_dup_func (GeeReadOnlyBidirSortedMapBidirMapIterator* self) {
656         return self->priv->k_dup_func;
657 }
658
659
660 static GDestroyNotify gee_read_only_bidir_sorted_map_bidir_map_iterator_gee_bidir_map_iterator_get_k_destroy_func (GeeReadOnlyBidirSortedMapBidirMapIterator* self) {
661         return self->priv->k_destroy_func;
662 }
663
664
665 static GType gee_read_only_bidir_sorted_map_bidir_map_iterator_gee_bidir_map_iterator_get_v_type (GeeReadOnlyBidirSortedMapBidirMapIterator* self) {
666         return self->priv->v_type;
667 }
668
669
670 static GBoxedCopyFunc gee_read_only_bidir_sorted_map_bidir_map_iterator_gee_bidir_map_iterator_get_v_dup_func (GeeReadOnlyBidirSortedMapBidirMapIterator* self) {
671         return self->priv->v_dup_func;
672 }
673
674
675 static GDestroyNotify gee_read_only_bidir_sorted_map_bidir_map_iterator_gee_bidir_map_iterator_get_v_destroy_func (GeeReadOnlyBidirSortedMapBidirMapIterator* self) {
676         return self->priv->v_destroy_func;
677 }
678
679
680 static void gee_read_only_bidir_sorted_map_bidir_map_iterator_gee_bidir_map_iterator_interface_init (GeeBidirMapIteratorIface * iface) {
681         gee_read_only_bidir_sorted_map_bidir_map_iterator_gee_bidir_map_iterator_parent_iface = g_type_interface_peek_parent (iface);
682         iface->first = (gboolean (*)(GeeBidirMapIterator*)) gee_read_only_bidir_sorted_map_bidir_map_iterator_real_first;
683         iface->previous = (gboolean (*)(GeeBidirMapIterator*)) gee_read_only_bidir_sorted_map_bidir_map_iterator_real_previous;
684         iface->has_previous = (gboolean (*)(GeeBidirMapIterator*)) gee_read_only_bidir_sorted_map_bidir_map_iterator_real_has_previous;
685         iface->last = (gboolean (*)(GeeBidirMapIterator*)) gee_read_only_bidir_sorted_map_bidir_map_iterator_real_last;
686         iface->get_k_type = (GType(*)(GeeBidirMapIterator*)) gee_read_only_bidir_sorted_map_bidir_map_iterator_gee_bidir_map_iterator_get_k_type;
687         iface->get_k_dup_func = (GBoxedCopyFunc(*)(GeeBidirMapIterator*)) gee_read_only_bidir_sorted_map_bidir_map_iterator_gee_bidir_map_iterator_get_k_dup_func;
688         iface->get_k_destroy_func = (GDestroyNotify(*)(GeeBidirMapIterator*)) gee_read_only_bidir_sorted_map_bidir_map_iterator_gee_bidir_map_iterator_get_k_destroy_func;
689         iface->get_v_type = (GType(*)(GeeBidirMapIterator*)) gee_read_only_bidir_sorted_map_bidir_map_iterator_gee_bidir_map_iterator_get_v_type;
690         iface->get_v_dup_func = (GBoxedCopyFunc(*)(GeeBidirMapIterator*)) gee_read_only_bidir_sorted_map_bidir_map_iterator_gee_bidir_map_iterator_get_v_dup_func;
691         iface->get_v_destroy_func = (GDestroyNotify(*)(GeeBidirMapIterator*)) gee_read_only_bidir_sorted_map_bidir_map_iterator_gee_bidir_map_iterator_get_v_destroy_func;
692 }
693
694
695 static void gee_read_only_bidir_sorted_map_bidir_map_iterator_instance_init (GeeReadOnlyBidirSortedMapBidirMapIterator * self) {
696         self->priv = GEE_READ_ONLY_BIDIR_SORTED_MAP_BIDIR_MAP_ITERATOR_GET_PRIVATE (self);
697 }
698
699
700 GType gee_read_only_bidir_sorted_map_bidir_map_iterator_get_type (void) {
701         static volatile gsize gee_read_only_bidir_sorted_map_bidir_map_iterator_type_id__volatile = 0;
702         if (g_once_init_enter (&gee_read_only_bidir_sorted_map_bidir_map_iterator_type_id__volatile)) {
703                 static const GTypeInfo g_define_type_info = { sizeof (GeeReadOnlyBidirSortedMapBidirMapIteratorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_read_only_bidir_sorted_map_bidir_map_iterator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeReadOnlyBidirSortedMapBidirMapIterator), 0, (GInstanceInitFunc) gee_read_only_bidir_sorted_map_bidir_map_iterator_instance_init, NULL };
704                 static const GInterfaceInfo gee_bidir_map_iterator_info = { (GInterfaceInitFunc) gee_read_only_bidir_sorted_map_bidir_map_iterator_gee_bidir_map_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
705                 GType gee_read_only_bidir_sorted_map_bidir_map_iterator_type_id;
706                 gee_read_only_bidir_sorted_map_bidir_map_iterator_type_id = g_type_register_static (GEE_READ_ONLY_MAP_TYPE_MAP_ITERATOR, "GeeReadOnlyBidirSortedMapBidirMapIterator", &g_define_type_info, 0);
707                 g_type_add_interface_static (gee_read_only_bidir_sorted_map_bidir_map_iterator_type_id, GEE_TYPE_BIDIR_MAP_ITERATOR, &gee_bidir_map_iterator_info);
708                 g_once_init_leave (&gee_read_only_bidir_sorted_map_bidir_map_iterator_type_id__volatile, gee_read_only_bidir_sorted_map_bidir_map_iterator_type_id);
709         }
710         return gee_read_only_bidir_sorted_map_bidir_map_iterator_type_id__volatile;
711 }
712
713
714 static void _vala_gee_read_only_bidir_sorted_map_bidir_map_iterator_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
715         GeeReadOnlyBidirSortedMapBidirMapIterator * self;
716         self = G_TYPE_CHECK_INSTANCE_CAST (object, GEE_READ_ONLY_BIDIR_SORTED_MAP_TYPE_BIDIR_MAP_ITERATOR, GeeReadOnlyBidirSortedMapBidirMapIterator);
717         switch (property_id) {
718                 default:
719                 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
720                 break;
721         }
722 }
723
724
725 static void _vala_gee_read_only_bidir_sorted_map_bidir_map_iterator_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
726         GeeReadOnlyBidirSortedMapBidirMapIterator * self;
727         self = G_TYPE_CHECK_INSTANCE_CAST (object, GEE_READ_ONLY_BIDIR_SORTED_MAP_TYPE_BIDIR_MAP_ITERATOR, GeeReadOnlyBidirSortedMapBidirMapIterator);
728         switch (property_id) {
729                 case GEE_READ_ONLY_BIDIR_SORTED_MAP_BIDIR_MAP_ITERATOR_K_TYPE:
730                 self->priv->k_type = g_value_get_gtype (value);
731                 break;
732                 case GEE_READ_ONLY_BIDIR_SORTED_MAP_BIDIR_MAP_ITERATOR_K_DUP_FUNC:
733                 self->priv->k_dup_func = g_value_get_pointer (value);
734                 break;
735                 case GEE_READ_ONLY_BIDIR_SORTED_MAP_BIDIR_MAP_ITERATOR_K_DESTROY_FUNC:
736                 self->priv->k_destroy_func = g_value_get_pointer (value);
737                 break;
738                 case GEE_READ_ONLY_BIDIR_SORTED_MAP_BIDIR_MAP_ITERATOR_V_TYPE:
739                 self->priv->v_type = g_value_get_gtype (value);
740                 break;
741                 case GEE_READ_ONLY_BIDIR_SORTED_MAP_BIDIR_MAP_ITERATOR_V_DUP_FUNC:
742                 self->priv->v_dup_func = g_value_get_pointer (value);
743                 break;
744                 case GEE_READ_ONLY_BIDIR_SORTED_MAP_BIDIR_MAP_ITERATOR_V_DESTROY_FUNC:
745                 self->priv->v_destroy_func = g_value_get_pointer (value);
746                 break;
747                 default:
748                 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
749                 break;
750         }
751 }
752
753
754 static void gee_read_only_bidir_sorted_map_class_init (GeeReadOnlyBidirSortedMapClass * klass) {
755         gee_read_only_bidir_sorted_map_parent_class = g_type_class_peek_parent (klass);
756         g_type_class_add_private (klass, sizeof (GeeReadOnlyBidirSortedMapPrivate));
757         G_OBJECT_CLASS (klass)->get_property = _vala_gee_read_only_bidir_sorted_map_get_property;
758         G_OBJECT_CLASS (klass)->set_property = _vala_gee_read_only_bidir_sorted_map_set_property;
759         g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_READ_ONLY_BIDIR_SORTED_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));
760         g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_READ_ONLY_BIDIR_SORTED_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));
761         g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_READ_ONLY_BIDIR_SORTED_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));
762         g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_READ_ONLY_BIDIR_SORTED_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));
763         g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_READ_ONLY_BIDIR_SORTED_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));
764         g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_READ_ONLY_BIDIR_SORTED_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));
765 }
766
767
768 static GType gee_read_only_bidir_sorted_map_gee_bidir_sorted_map_get_k_type (GeeReadOnlyBidirSortedMap* self) {
769         return self->priv->k_type;
770 }
771
772
773 static GBoxedCopyFunc gee_read_only_bidir_sorted_map_gee_bidir_sorted_map_get_k_dup_func (GeeReadOnlyBidirSortedMap* self) {
774         return self->priv->k_dup_func;
775 }
776
777
778 static GDestroyNotify gee_read_only_bidir_sorted_map_gee_bidir_sorted_map_get_k_destroy_func (GeeReadOnlyBidirSortedMap* self) {
779         return self->priv->k_destroy_func;
780 }
781
782
783 static GType gee_read_only_bidir_sorted_map_gee_bidir_sorted_map_get_v_type (GeeReadOnlyBidirSortedMap* self) {
784         return self->priv->v_type;
785 }
786
787
788 static GBoxedCopyFunc gee_read_only_bidir_sorted_map_gee_bidir_sorted_map_get_v_dup_func (GeeReadOnlyBidirSortedMap* self) {
789         return self->priv->v_dup_func;
790 }
791
792
793 static GDestroyNotify gee_read_only_bidir_sorted_map_gee_bidir_sorted_map_get_v_destroy_func (GeeReadOnlyBidirSortedMap* self) {
794         return self->priv->v_destroy_func;
795 }
796
797
798 static void gee_read_only_bidir_sorted_map_gee_bidir_sorted_map_interface_init (GeeBidirSortedMapIface * iface) {
799         gee_read_only_bidir_sorted_map_gee_bidir_sorted_map_parent_iface = g_type_interface_peek_parent (iface);
800         iface->bidir_map_iterator = (GeeBidirMapIterator* (*)(GeeBidirSortedMap*)) gee_read_only_bidir_sorted_map_real_bidir_map_iterator;
801         iface->get_k_type = (GType(*)(GeeBidirSortedMap*)) gee_read_only_bidir_sorted_map_gee_bidir_sorted_map_get_k_type;
802         iface->get_k_dup_func = (GBoxedCopyFunc(*)(GeeBidirSortedMap*)) gee_read_only_bidir_sorted_map_gee_bidir_sorted_map_get_k_dup_func;
803         iface->get_k_destroy_func = (GDestroyNotify(*)(GeeBidirSortedMap*)) gee_read_only_bidir_sorted_map_gee_bidir_sorted_map_get_k_destroy_func;
804         iface->get_v_type = (GType(*)(GeeBidirSortedMap*)) gee_read_only_bidir_sorted_map_gee_bidir_sorted_map_get_v_type;
805         iface->get_v_dup_func = (GBoxedCopyFunc(*)(GeeBidirSortedMap*)) gee_read_only_bidir_sorted_map_gee_bidir_sorted_map_get_v_dup_func;
806         iface->get_v_destroy_func = (GDestroyNotify(*)(GeeBidirSortedMap*)) gee_read_only_bidir_sorted_map_gee_bidir_sorted_map_get_v_destroy_func;
807         iface->get_read_only_view = (GeeBidirSortedMap* (*) (GeeBidirSortedMap *)) gee_read_only_map_get_read_only_view;
808 }
809
810
811 static void gee_read_only_bidir_sorted_map_instance_init (GeeReadOnlyBidirSortedMap * self) {
812         self->priv = GEE_READ_ONLY_BIDIR_SORTED_MAP_GET_PRIVATE (self);
813 }
814
815
816 /**
817  * Read-only view for {@link BidirSortedMap} collections.
818  *
819  * This class decorates any class which implements the {@link BidirSortedMap}
820  * interface by making it read only. Any method which normally modify data will
821  * throw an error.
822  *
823  * @see BidirSortedMap
824  */
825 GType gee_read_only_bidir_sorted_map_get_type (void) {
826         static volatile gsize gee_read_only_bidir_sorted_map_type_id__volatile = 0;
827         if (g_once_init_enter (&gee_read_only_bidir_sorted_map_type_id__volatile)) {
828                 static const GTypeInfo g_define_type_info = { sizeof (GeeReadOnlyBidirSortedMapClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_read_only_bidir_sorted_map_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeReadOnlyBidirSortedMap), 0, (GInstanceInitFunc) gee_read_only_bidir_sorted_map_instance_init, NULL };
829                 static const GInterfaceInfo gee_bidir_sorted_map_info = { (GInterfaceInitFunc) gee_read_only_bidir_sorted_map_gee_bidir_sorted_map_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
830                 GType gee_read_only_bidir_sorted_map_type_id;
831                 gee_read_only_bidir_sorted_map_type_id = g_type_register_static (GEE_TYPE_READ_ONLY_SORTED_MAP, "GeeReadOnlyBidirSortedMap", &g_define_type_info, 0);
832                 g_type_add_interface_static (gee_read_only_bidir_sorted_map_type_id, GEE_TYPE_BIDIR_SORTED_MAP, &gee_bidir_sorted_map_info);
833                 g_once_init_leave (&gee_read_only_bidir_sorted_map_type_id__volatile, gee_read_only_bidir_sorted_map_type_id);
834         }
835         return gee_read_only_bidir_sorted_map_type_id__volatile;
836 }
837
838
839 static void _vala_gee_read_only_bidir_sorted_map_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
840         GeeReadOnlyBidirSortedMap * self;
841         self = G_TYPE_CHECK_INSTANCE_CAST (object, GEE_TYPE_READ_ONLY_BIDIR_SORTED_MAP, GeeReadOnlyBidirSortedMap);
842         switch (property_id) {
843                 default:
844                 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
845                 break;
846         }
847 }
848
849
850 static void _vala_gee_read_only_bidir_sorted_map_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
851         GeeReadOnlyBidirSortedMap * self;
852         self = G_TYPE_CHECK_INSTANCE_CAST (object, GEE_TYPE_READ_ONLY_BIDIR_SORTED_MAP, GeeReadOnlyBidirSortedMap);
853         switch (property_id) {
854                 case GEE_READ_ONLY_BIDIR_SORTED_MAP_K_TYPE:
855                 self->priv->k_type = g_value_get_gtype (value);
856                 break;
857                 case GEE_READ_ONLY_BIDIR_SORTED_MAP_K_DUP_FUNC:
858                 self->priv->k_dup_func = g_value_get_pointer (value);
859                 break;
860                 case GEE_READ_ONLY_BIDIR_SORTED_MAP_K_DESTROY_FUNC:
861                 self->priv->k_destroy_func = g_value_get_pointer (value);
862                 break;
863                 case GEE_READ_ONLY_BIDIR_SORTED_MAP_V_TYPE:
864                 self->priv->v_type = g_value_get_gtype (value);
865                 break;
866                 case GEE_READ_ONLY_BIDIR_SORTED_MAP_V_DUP_FUNC:
867                 self->priv->v_dup_func = g_value_get_pointer (value);
868                 break;
869                 case GEE_READ_ONLY_BIDIR_SORTED_MAP_V_DESTROY_FUNC:
870                 self->priv->v_destroy_func = g_value_get_pointer (value);
871                 break;
872                 default:
873                 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
874                 break;
875         }
876 }
877
878
879