Update Changelog
[profile/ivi/libgee.git] / gee / readonlybidirsortedset.c
1 /* readonlybidirsortedset.c generated by valac 0.18.0, the Vala compiler
2  * generated from readonlybidirsortedset.vala, do not modify */
3
4 /* readonlybidirsortedset.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_COLLECTION (gee_collection_get_type ())
67 #define GEE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_COLLECTION, GeeCollection))
68 #define GEE_IS_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_COLLECTION))
69 #define GEE_COLLECTION_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_COLLECTION, GeeCollectionIface))
70
71 typedef struct _GeeCollection GeeCollection;
72 typedef struct _GeeCollectionIface GeeCollectionIface;
73
74 #define GEE_TYPE_READ_ONLY_COLLECTION (gee_read_only_collection_get_type ())
75 #define GEE_READ_ONLY_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_READ_ONLY_COLLECTION, GeeReadOnlyCollection))
76 #define GEE_READ_ONLY_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_READ_ONLY_COLLECTION, GeeReadOnlyCollectionClass))
77 #define GEE_IS_READ_ONLY_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_READ_ONLY_COLLECTION))
78 #define GEE_IS_READ_ONLY_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_READ_ONLY_COLLECTION))
79 #define GEE_READ_ONLY_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_READ_ONLY_COLLECTION, GeeReadOnlyCollectionClass))
80
81 typedef struct _GeeReadOnlyCollection GeeReadOnlyCollection;
82 typedef struct _GeeReadOnlyCollectionClass GeeReadOnlyCollectionClass;
83 typedef struct _GeeReadOnlyCollectionPrivate GeeReadOnlyCollectionPrivate;
84
85 #define GEE_TYPE_SET (gee_set_get_type ())
86 #define GEE_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_SET, GeeSet))
87 #define GEE_IS_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_SET))
88 #define GEE_SET_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_SET, GeeSetIface))
89
90 typedef struct _GeeSet GeeSet;
91 typedef struct _GeeSetIface GeeSetIface;
92
93 #define GEE_TYPE_READ_ONLY_SET (gee_read_only_set_get_type ())
94 #define GEE_READ_ONLY_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_READ_ONLY_SET, GeeReadOnlySet))
95 #define GEE_READ_ONLY_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_READ_ONLY_SET, GeeReadOnlySetClass))
96 #define GEE_IS_READ_ONLY_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_READ_ONLY_SET))
97 #define GEE_IS_READ_ONLY_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_READ_ONLY_SET))
98 #define GEE_READ_ONLY_SET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_READ_ONLY_SET, GeeReadOnlySetClass))
99
100 typedef struct _GeeReadOnlySet GeeReadOnlySet;
101 typedef struct _GeeReadOnlySetClass GeeReadOnlySetClass;
102 typedef struct _GeeReadOnlySetPrivate GeeReadOnlySetPrivate;
103
104 #define GEE_TYPE_SORTED_SET (gee_sorted_set_get_type ())
105 #define GEE_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_SORTED_SET, GeeSortedSet))
106 #define GEE_IS_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_SORTED_SET))
107 #define GEE_SORTED_SET_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_SORTED_SET, GeeSortedSetIface))
108
109 typedef struct _GeeSortedSet GeeSortedSet;
110 typedef struct _GeeSortedSetIface GeeSortedSetIface;
111
112 #define GEE_TYPE_READ_ONLY_SORTED_SET (gee_read_only_sorted_set_get_type ())
113 #define GEE_READ_ONLY_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_READ_ONLY_SORTED_SET, GeeReadOnlySortedSet))
114 #define GEE_READ_ONLY_SORTED_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_READ_ONLY_SORTED_SET, GeeReadOnlySortedSetClass))
115 #define GEE_IS_READ_ONLY_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_READ_ONLY_SORTED_SET))
116 #define GEE_IS_READ_ONLY_SORTED_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_READ_ONLY_SORTED_SET))
117 #define GEE_READ_ONLY_SORTED_SET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_READ_ONLY_SORTED_SET, GeeReadOnlySortedSetClass))
118
119 typedef struct _GeeReadOnlySortedSet GeeReadOnlySortedSet;
120 typedef struct _GeeReadOnlySortedSetClass GeeReadOnlySortedSetClass;
121 typedef struct _GeeReadOnlySortedSetPrivate GeeReadOnlySortedSetPrivate;
122
123 #define GEE_TYPE_BIDIR_SORTED_SET (gee_bidir_sorted_set_get_type ())
124 #define GEE_BIDIR_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_BIDIR_SORTED_SET, GeeBidirSortedSet))
125 #define GEE_IS_BIDIR_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_BIDIR_SORTED_SET))
126 #define GEE_BIDIR_SORTED_SET_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_BIDIR_SORTED_SET, GeeBidirSortedSetIface))
127
128 typedef struct _GeeBidirSortedSet GeeBidirSortedSet;
129 typedef struct _GeeBidirSortedSetIface GeeBidirSortedSetIface;
130
131 #define GEE_TYPE_BIDIR_ITERATOR (gee_bidir_iterator_get_type ())
132 #define GEE_BIDIR_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_BIDIR_ITERATOR, GeeBidirIterator))
133 #define GEE_IS_BIDIR_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_BIDIR_ITERATOR))
134 #define GEE_BIDIR_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_BIDIR_ITERATOR, GeeBidirIteratorIface))
135
136 typedef struct _GeeBidirIterator GeeBidirIterator;
137 typedef struct _GeeBidirIteratorIface GeeBidirIteratorIface;
138
139 #define GEE_TYPE_READ_ONLY_BIDIR_SORTED_SET (gee_read_only_bidir_sorted_set_get_type ())
140 #define GEE_READ_ONLY_BIDIR_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_READ_ONLY_BIDIR_SORTED_SET, GeeReadOnlyBidirSortedSet))
141 #define GEE_READ_ONLY_BIDIR_SORTED_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_READ_ONLY_BIDIR_SORTED_SET, GeeReadOnlyBidirSortedSetClass))
142 #define GEE_IS_READ_ONLY_BIDIR_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_READ_ONLY_BIDIR_SORTED_SET))
143 #define GEE_IS_READ_ONLY_BIDIR_SORTED_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_READ_ONLY_BIDIR_SORTED_SET))
144 #define GEE_READ_ONLY_BIDIR_SORTED_SET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_READ_ONLY_BIDIR_SORTED_SET, GeeReadOnlyBidirSortedSetClass))
145
146 typedef struct _GeeReadOnlyBidirSortedSet GeeReadOnlyBidirSortedSet;
147 typedef struct _GeeReadOnlyBidirSortedSetClass GeeReadOnlyBidirSortedSetClass;
148 typedef struct _GeeReadOnlyBidirSortedSetPrivate GeeReadOnlyBidirSortedSetPrivate;
149
150 #define GEE_READ_ONLY_COLLECTION_TYPE_ITERATOR (gee_read_only_collection_iterator_get_type ())
151 #define GEE_READ_ONLY_COLLECTION_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_READ_ONLY_COLLECTION_TYPE_ITERATOR, GeeReadOnlyCollectionIterator))
152 #define GEE_READ_ONLY_COLLECTION_ITERATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_READ_ONLY_COLLECTION_TYPE_ITERATOR, GeeReadOnlyCollectionIteratorClass))
153 #define GEE_READ_ONLY_COLLECTION_IS_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_READ_ONLY_COLLECTION_TYPE_ITERATOR))
154 #define GEE_READ_ONLY_COLLECTION_IS_ITERATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_READ_ONLY_COLLECTION_TYPE_ITERATOR))
155 #define GEE_READ_ONLY_COLLECTION_ITERATOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_READ_ONLY_COLLECTION_TYPE_ITERATOR, GeeReadOnlyCollectionIteratorClass))
156
157 typedef struct _GeeReadOnlyCollectionIterator GeeReadOnlyCollectionIterator;
158 typedef struct _GeeReadOnlyCollectionIteratorClass GeeReadOnlyCollectionIteratorClass;
159
160 #define GEE_READ_ONLY_BIDIR_SORTED_SET_TYPE_BIDIR_ITERATOR (gee_read_only_bidir_sorted_set_bidir_iterator_get_type ())
161 #define GEE_READ_ONLY_BIDIR_SORTED_SET_BIDIR_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_READ_ONLY_BIDIR_SORTED_SET_TYPE_BIDIR_ITERATOR, GeeReadOnlyBidirSortedSetBidirIterator))
162 #define GEE_READ_ONLY_BIDIR_SORTED_SET_BIDIR_ITERATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_READ_ONLY_BIDIR_SORTED_SET_TYPE_BIDIR_ITERATOR, GeeReadOnlyBidirSortedSetBidirIteratorClass))
163 #define GEE_READ_ONLY_BIDIR_SORTED_SET_IS_BIDIR_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_READ_ONLY_BIDIR_SORTED_SET_TYPE_BIDIR_ITERATOR))
164 #define GEE_READ_ONLY_BIDIR_SORTED_SET_IS_BIDIR_ITERATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_READ_ONLY_BIDIR_SORTED_SET_TYPE_BIDIR_ITERATOR))
165 #define GEE_READ_ONLY_BIDIR_SORTED_SET_BIDIR_ITERATOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_READ_ONLY_BIDIR_SORTED_SET_TYPE_BIDIR_ITERATOR, GeeReadOnlyBidirSortedSetBidirIteratorClass))
166
167 typedef struct _GeeReadOnlyBidirSortedSetBidirIterator GeeReadOnlyBidirSortedSetBidirIterator;
168 typedef struct _GeeReadOnlyBidirSortedSetBidirIteratorClass GeeReadOnlyBidirSortedSetBidirIteratorClass;
169 #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
170 typedef struct _GeeReadOnlyCollectionIteratorPrivate GeeReadOnlyCollectionIteratorPrivate;
171 typedef struct _GeeReadOnlyBidirSortedSetBidirIteratorPrivate GeeReadOnlyBidirSortedSetBidirIteratorPrivate;
172
173 typedef gboolean (*GeeForallFunc) (gpointer g, void* user_data);
174 typedef enum  {
175         GEE_TRAVERSABLE_STREAM_YIELD,
176         GEE_TRAVERSABLE_STREAM_CONTINUE,
177         GEE_TRAVERSABLE_STREAM_END
178 } GeeTraversableStream;
179
180 typedef GeeTraversableStream (*GeeStreamFunc) (GeeTraversableStream state, GeeLazy* g, GeeLazy** lazy, void* user_data);
181 struct _GeeIteratorIface {
182         GTypeInterface parent_iface;
183         gboolean (*next) (GeeIterator* self);
184         gboolean (*has_next) (GeeIterator* self);
185         gpointer (*get) (GeeIterator* self);
186         void (*remove) (GeeIterator* self);
187         gboolean (*get_valid) (GeeIterator* self);
188         gboolean (*get_read_only) (GeeIterator* self);
189 };
190
191 typedef gpointer (*GeeFoldFunc) (gpointer g, gpointer a, void* user_data);
192 typedef gpointer (*GeeMapFunc) (gpointer g, void* user_data);
193 typedef gboolean (*GeePredicate) (gconstpointer g, void* user_data);
194 struct _GeeTraversableIface {
195         GTypeInterface parent_iface;
196         GType (*get_g_type) (GeeTraversable* self);
197         GBoxedCopyFunc (*get_g_dup_func) (GeeTraversable* self);
198         GDestroyNotify (*get_g_destroy_func) (GeeTraversable* self);
199         gboolean (*foreach) (GeeTraversable* self, GeeForallFunc f, void* f_target);
200         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);
201         gpointer (*fold) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, void* f_target, gpointer seed);
202         GeeIterator* (*map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeMapFunc f, void* f_target);
203         GeeIterator* (*scan) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, void* f_target, gpointer seed);
204         GeeIterator* (*filter) (GeeTraversable* self, GeePredicate pred, void* pred_target, GDestroyNotify pred_target_destroy_notify);
205         GeeIterator* (*chop) (GeeTraversable* self, gint offset, gint length);
206         GType (*get_element_type) (GeeTraversable* self);
207 };
208
209 struct _GeeIterableIface {
210         GTypeInterface parent_iface;
211         GType (*get_g_type) (GeeIterable* self);
212         GBoxedCopyFunc (*get_g_dup_func) (GeeIterable* self);
213         GDestroyNotify (*get_g_destroy_func) (GeeIterable* self);
214         GeeIterator* (*iterator) (GeeIterable* self);
215 };
216
217 struct _GeeCollectionIface {
218         GTypeInterface parent_iface;
219         GType (*get_g_type) (GeeCollection* self);
220         GBoxedCopyFunc (*get_g_dup_func) (GeeCollection* self);
221         GDestroyNotify (*get_g_destroy_func) (GeeCollection* self);
222         gboolean (*contains) (GeeCollection* self, gconstpointer item);
223         gboolean (*add) (GeeCollection* self, gconstpointer item);
224         gboolean (*remove) (GeeCollection* self, gconstpointer item);
225         void (*clear) (GeeCollection* self);
226         gboolean (*add_all) (GeeCollection* self, GeeCollection* collection);
227         gboolean (*contains_all) (GeeCollection* self, GeeCollection* collection);
228         gboolean (*remove_all) (GeeCollection* self, GeeCollection* collection);
229         gboolean (*retain_all) (GeeCollection* self, GeeCollection* collection);
230         gpointer* (*to_array) (GeeCollection* self, int* result_length1);
231         gint (*get_size) (GeeCollection* self);
232         gboolean (*get_is_empty) (GeeCollection* self);
233         gboolean (*get_read_only) (GeeCollection* self);
234         GeeCollection* (*get_read_only_view) (GeeCollection* self);
235 };
236
237 struct _GeeReadOnlyCollection {
238         GObject parent_instance;
239         GeeReadOnlyCollectionPrivate * priv;
240         GeeCollection* _collection;
241 };
242
243 struct _GeeReadOnlyCollectionClass {
244         GObjectClass parent_class;
245         GeeCollection* (*get_read_only_view) (GeeReadOnlyCollection* self);
246 };
247
248 struct _GeeSetIface {
249         GTypeInterface parent_iface;
250         GType (*get_g_type) (GeeSet* self);
251         GBoxedCopyFunc (*get_g_dup_func) (GeeSet* self);
252         GDestroyNotify (*get_g_destroy_func) (GeeSet* self);
253         GeeSet* (*get_read_only_view) (GeeSet* self);
254 };
255
256 struct _GeeReadOnlySet {
257         GeeReadOnlyCollection parent_instance;
258         GeeReadOnlySetPrivate * priv;
259 };
260
261 struct _GeeReadOnlySetClass {
262         GeeReadOnlyCollectionClass parent_class;
263         GeeSet* (*get_read_only_view) (GeeReadOnlySet* self);
264 };
265
266 struct _GeeSortedSetIface {
267         GTypeInterface parent_iface;
268         GType (*get_g_type) (GeeSortedSet* self);
269         GBoxedCopyFunc (*get_g_dup_func) (GeeSortedSet* self);
270         GDestroyNotify (*get_g_destroy_func) (GeeSortedSet* self);
271         gpointer (*first) (GeeSortedSet* self);
272         gpointer (*last) (GeeSortedSet* self);
273         GeeIterator* (*iterator_at) (GeeSortedSet* self, gconstpointer element);
274         gpointer (*lower) (GeeSortedSet* self, gconstpointer element);
275         gpointer (*higher) (GeeSortedSet* self, gconstpointer element);
276         gpointer (*floor) (GeeSortedSet* self, gconstpointer element);
277         gpointer (*ceil) (GeeSortedSet* self, gconstpointer element);
278         GeeSortedSet* (*head_set) (GeeSortedSet* self, gconstpointer before);
279         GeeSortedSet* (*tail_set) (GeeSortedSet* self, gconstpointer after);
280         GeeSortedSet* (*sub_set) (GeeSortedSet* self, gconstpointer from, gconstpointer to);
281         GeeSortedSet* (*get_read_only_view) (GeeSortedSet* self);
282 };
283
284 struct _GeeReadOnlySortedSet {
285         GeeReadOnlySet parent_instance;
286         GeeReadOnlySortedSetPrivate * priv;
287 };
288
289 struct _GeeReadOnlySortedSetClass {
290         GeeReadOnlySetClass parent_class;
291 };
292
293 struct _GeeBidirIteratorIface {
294         GTypeInterface parent_iface;
295         GType (*get_g_type) (GeeBidirIterator* self);
296         GBoxedCopyFunc (*get_g_dup_func) (GeeBidirIterator* self);
297         GDestroyNotify (*get_g_destroy_func) (GeeBidirIterator* self);
298         gboolean (*previous) (GeeBidirIterator* self);
299         gboolean (*has_previous) (GeeBidirIterator* self);
300         gboolean (*first) (GeeBidirIterator* self);
301         gboolean (*last) (GeeBidirIterator* self);
302 };
303
304 struct _GeeBidirSortedSetIface {
305         GTypeInterface parent_iface;
306         GType (*get_g_type) (GeeBidirSortedSet* self);
307         GBoxedCopyFunc (*get_g_dup_func) (GeeBidirSortedSet* self);
308         GDestroyNotify (*get_g_destroy_func) (GeeBidirSortedSet* self);
309         GeeBidirIterator* (*bidir_iterator) (GeeBidirSortedSet* self);
310         GeeBidirSortedSet* (*get_read_only_view) (GeeBidirSortedSet* self);
311 };
312
313 struct _GeeReadOnlyBidirSortedSet {
314         GeeReadOnlySortedSet parent_instance;
315         GeeReadOnlyBidirSortedSetPrivate * priv;
316 };
317
318 struct _GeeReadOnlyBidirSortedSetClass {
319         GeeReadOnlySortedSetClass parent_class;
320 };
321
322 struct _GeeReadOnlyBidirSortedSetPrivate {
323         GType g_type;
324         GBoxedCopyFunc g_dup_func;
325         GDestroyNotify g_destroy_func;
326 };
327
328 struct _GeeReadOnlyCollectionIterator {
329         GObject parent_instance;
330         GeeReadOnlyCollectionIteratorPrivate * priv;
331         GeeIterator* _iter;
332 };
333
334 struct _GeeReadOnlyCollectionIteratorClass {
335         GObjectClass parent_class;
336 };
337
338 struct _GeeReadOnlyBidirSortedSetBidirIterator {
339         GeeReadOnlyCollectionIterator parent_instance;
340         GeeReadOnlyBidirSortedSetBidirIteratorPrivate * priv;
341 };
342
343 struct _GeeReadOnlyBidirSortedSetBidirIteratorClass {
344         GeeReadOnlyCollectionIteratorClass parent_class;
345 };
346
347 struct _GeeReadOnlyBidirSortedSetBidirIteratorPrivate {
348         GType g_type;
349         GBoxedCopyFunc g_dup_func;
350         GDestroyNotify g_destroy_func;
351 };
352
353
354 static gpointer gee_read_only_bidir_sorted_set_parent_class = NULL;
355 static gpointer gee_read_only_bidir_sorted_set_bidir_iterator_parent_class = NULL;
356 static GeeBidirIteratorIface* gee_read_only_bidir_sorted_set_bidir_iterator_gee_bidir_iterator_parent_iface = NULL;
357 static GeeBidirSortedSetIface* gee_read_only_bidir_sorted_set_gee_bidir_sorted_set_parent_iface = NULL;
358
359 GType gee_traversable_stream_get_type (void) G_GNUC_CONST;
360 gpointer gee_lazy_ref (gpointer instance);
361 void gee_lazy_unref (gpointer instance);
362 GParamSpec* gee_param_spec_lazy (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
363 void gee_value_set_lazy (GValue* value, gpointer v_object);
364 void gee_value_take_lazy (GValue* value, gpointer v_object);
365 gpointer gee_value_get_lazy (const GValue* value);
366 GType gee_lazy_get_type (void) G_GNUC_CONST;
367 GType gee_iterator_get_type (void) G_GNUC_CONST;
368 GType gee_traversable_get_type (void) G_GNUC_CONST;
369 GType gee_iterable_get_type (void) G_GNUC_CONST;
370 GType gee_collection_get_type (void) G_GNUC_CONST;
371 GType gee_read_only_collection_get_type (void) G_GNUC_CONST;
372 GType gee_set_get_type (void) G_GNUC_CONST;
373 GType gee_read_only_set_get_type (void) G_GNUC_CONST;
374 GType gee_sorted_set_get_type (void) G_GNUC_CONST;
375 GType gee_read_only_sorted_set_get_type (void) G_GNUC_CONST;
376 GType gee_bidir_iterator_get_type (void) G_GNUC_CONST;
377 GType gee_bidir_sorted_set_get_type (void) G_GNUC_CONST;
378 GType gee_read_only_bidir_sorted_set_get_type (void) G_GNUC_CONST;
379 #define GEE_READ_ONLY_BIDIR_SORTED_SET_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GEE_TYPE_READ_ONLY_BIDIR_SORTED_SET, GeeReadOnlyBidirSortedSetPrivate))
380 enum  {
381         GEE_READ_ONLY_BIDIR_SORTED_SET_DUMMY_PROPERTY,
382         GEE_READ_ONLY_BIDIR_SORTED_SET_G_TYPE,
383         GEE_READ_ONLY_BIDIR_SORTED_SET_G_DUP_FUNC,
384         GEE_READ_ONLY_BIDIR_SORTED_SET_G_DESTROY_FUNC
385 };
386 GeeReadOnlyBidirSortedSet* gee_read_only_bidir_sorted_set_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeBidirSortedSet* set);
387 GeeReadOnlyBidirSortedSet* gee_read_only_bidir_sorted_set_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeBidirSortedSet* set);
388 GeeReadOnlySortedSet* gee_read_only_sorted_set_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeSortedSet* set);
389 GeeReadOnlySortedSet* gee_read_only_sorted_set_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeSortedSet* set);
390 static GeeBidirIterator* gee_read_only_bidir_sorted_set_real_bidir_iterator (GeeBidirSortedSet* base);
391 GeeBidirIterator* gee_bidir_sorted_set_bidir_iterator (GeeBidirSortedSet* self);
392 GeeReadOnlyBidirSortedSetBidirIterator* gee_read_only_bidir_sorted_set_bidir_iterator_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeBidirIterator* iterator);
393 GeeReadOnlyBidirSortedSetBidirIterator* gee_read_only_bidir_sorted_set_bidir_iterator_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeBidirIterator* iterator);
394 GType gee_read_only_collection_iterator_get_type (void) G_GNUC_CONST;
395 GType gee_read_only_bidir_sorted_set_bidir_iterator_get_type (void) G_GNUC_CONST;
396 #define GEE_READ_ONLY_BIDIR_SORTED_SET_BIDIR_ITERATOR_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GEE_READ_ONLY_BIDIR_SORTED_SET_TYPE_BIDIR_ITERATOR, GeeReadOnlyBidirSortedSetBidirIteratorPrivate))
397 enum  {
398         GEE_READ_ONLY_BIDIR_SORTED_SET_BIDIR_ITERATOR_DUMMY_PROPERTY,
399         GEE_READ_ONLY_BIDIR_SORTED_SET_BIDIR_ITERATOR_G_TYPE,
400         GEE_READ_ONLY_BIDIR_SORTED_SET_BIDIR_ITERATOR_G_DUP_FUNC,
401         GEE_READ_ONLY_BIDIR_SORTED_SET_BIDIR_ITERATOR_G_DESTROY_FUNC
402 };
403 GeeReadOnlyCollectionIterator* gee_read_only_collection_iterator_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeIterator* iterator);
404 GeeReadOnlyCollectionIterator* gee_read_only_collection_iterator_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeIterator* iterator);
405 static gboolean gee_read_only_bidir_sorted_set_bidir_iterator_real_first (GeeBidirIterator* base);
406 gboolean gee_bidir_iterator_first (GeeBidirIterator* self);
407 static gboolean gee_read_only_bidir_sorted_set_bidir_iterator_real_previous (GeeBidirIterator* base);
408 gboolean gee_bidir_iterator_previous (GeeBidirIterator* self);
409 static gboolean gee_read_only_bidir_sorted_set_bidir_iterator_real_has_previous (GeeBidirIterator* base);
410 gboolean gee_bidir_iterator_has_previous (GeeBidirIterator* self);
411 static gboolean gee_read_only_bidir_sorted_set_bidir_iterator_real_last (GeeBidirIterator* base);
412 gboolean gee_bidir_iterator_last (GeeBidirIterator* self);
413 static void _vala_gee_read_only_bidir_sorted_set_bidir_iterator_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
414 static void _vala_gee_read_only_bidir_sorted_set_bidir_iterator_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
415 GeeSortedSet* gee_sorted_set_get_read_only_view (GeeSortedSet* self);
416 static void _vala_gee_read_only_bidir_sorted_set_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
417 static void _vala_gee_read_only_bidir_sorted_set_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
418
419
420 /**
421  * Constructs a read-only set that mirrors the content of the specified set.
422  *
423  * @param set the set to decorate.
424  */
425 GeeReadOnlyBidirSortedSet* gee_read_only_bidir_sorted_set_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeBidirSortedSet* set) {
426         GeeReadOnlyBidirSortedSet * self = NULL;
427         GeeBidirSortedSet* _tmp0_;
428         g_return_val_if_fail (set != NULL, NULL);
429         _tmp0_ = set;
430         self = (GeeReadOnlyBidirSortedSet*) gee_read_only_sorted_set_construct (object_type, g_type, (GBoxedCopyFunc) g_dup_func, g_destroy_func, (GeeSortedSet*) _tmp0_);
431         self->priv->g_type = g_type;
432         self->priv->g_dup_func = g_dup_func;
433         self->priv->g_destroy_func = g_destroy_func;
434         return self;
435 }
436
437
438 GeeReadOnlyBidirSortedSet* gee_read_only_bidir_sorted_set_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeBidirSortedSet* set) {
439         return gee_read_only_bidir_sorted_set_construct (GEE_TYPE_READ_ONLY_BIDIR_SORTED_SET, g_type, g_dup_func, g_destroy_func, set);
440 }
441
442
443 /**
444  * {@inheritDoc}
445  */
446 static GeeBidirIterator* gee_read_only_bidir_sorted_set_real_bidir_iterator (GeeBidirSortedSet* base) {
447         GeeReadOnlyBidirSortedSet * self;
448         GeeBidirIterator* result = NULL;
449         GeeCollection* _tmp0_;
450         GeeBidirIterator* _tmp1_ = NULL;
451         GeeBidirIterator* _tmp2_;
452         GeeReadOnlyBidirSortedSetBidirIterator* _tmp3_;
453         GeeBidirIterator* _tmp4_;
454         self = (GeeReadOnlyBidirSortedSet*) base;
455         _tmp0_ = ((GeeReadOnlyCollection*) self)->_collection;
456         _tmp1_ = gee_bidir_sorted_set_bidir_iterator (G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, GEE_TYPE_BIDIR_SORTED_SET) ? ((GeeBidirSortedSet*) _tmp0_) : NULL);
457         _tmp2_ = _tmp1_;
458         _tmp3_ = gee_read_only_bidir_sorted_set_bidir_iterator_new (self->priv->g_type, (GBoxedCopyFunc) self->priv->g_dup_func, self->priv->g_destroy_func, _tmp2_);
459         _tmp4_ = (GeeBidirIterator*) _tmp3_;
460         _g_object_unref0 (_tmp2_);
461         result = _tmp4_;
462         return result;
463 }
464
465
466 GeeReadOnlyBidirSortedSetBidirIterator* gee_read_only_bidir_sorted_set_bidir_iterator_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeBidirIterator* iterator) {
467         GeeReadOnlyBidirSortedSetBidirIterator * self = NULL;
468         GeeBidirIterator* _tmp0_;
469         g_return_val_if_fail (iterator != NULL, NULL);
470         _tmp0_ = iterator;
471         self = (GeeReadOnlyBidirSortedSetBidirIterator*) gee_read_only_collection_iterator_construct (object_type, g_type, (GBoxedCopyFunc) g_dup_func, g_destroy_func, (GeeIterator*) _tmp0_);
472         self->priv->g_type = g_type;
473         self->priv->g_dup_func = g_dup_func;
474         self->priv->g_destroy_func = g_destroy_func;
475         return self;
476 }
477
478
479 GeeReadOnlyBidirSortedSetBidirIterator* gee_read_only_bidir_sorted_set_bidir_iterator_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeBidirIterator* iterator) {
480         return gee_read_only_bidir_sorted_set_bidir_iterator_construct (GEE_READ_ONLY_BIDIR_SORTED_SET_TYPE_BIDIR_ITERATOR, g_type, g_dup_func, g_destroy_func, iterator);
481 }
482
483
484 static gboolean gee_read_only_bidir_sorted_set_bidir_iterator_real_first (GeeBidirIterator* base) {
485         GeeReadOnlyBidirSortedSetBidirIterator * self;
486         gboolean result = FALSE;
487         GeeIterator* _tmp0_;
488         gboolean _tmp1_ = FALSE;
489         self = (GeeReadOnlyBidirSortedSetBidirIterator*) base;
490         _tmp0_ = ((GeeReadOnlyCollectionIterator*) self)->_iter;
491         _tmp1_ = gee_bidir_iterator_first (G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, GEE_TYPE_BIDIR_ITERATOR) ? ((GeeBidirIterator*) _tmp0_) : NULL);
492         result = _tmp1_;
493         return result;
494 }
495
496
497 static gboolean gee_read_only_bidir_sorted_set_bidir_iterator_real_previous (GeeBidirIterator* base) {
498         GeeReadOnlyBidirSortedSetBidirIterator * self;
499         gboolean result = FALSE;
500         GeeIterator* _tmp0_;
501         gboolean _tmp1_ = FALSE;
502         self = (GeeReadOnlyBidirSortedSetBidirIterator*) base;
503         _tmp0_ = ((GeeReadOnlyCollectionIterator*) self)->_iter;
504         _tmp1_ = gee_bidir_iterator_previous (G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, GEE_TYPE_BIDIR_ITERATOR) ? ((GeeBidirIterator*) _tmp0_) : NULL);
505         result = _tmp1_;
506         return result;
507 }
508
509
510 static gboolean gee_read_only_bidir_sorted_set_bidir_iterator_real_has_previous (GeeBidirIterator* base) {
511         GeeReadOnlyBidirSortedSetBidirIterator * self;
512         gboolean result = FALSE;
513         GeeIterator* _tmp0_;
514         gboolean _tmp1_ = FALSE;
515         self = (GeeReadOnlyBidirSortedSetBidirIterator*) base;
516         _tmp0_ = ((GeeReadOnlyCollectionIterator*) self)->_iter;
517         _tmp1_ = gee_bidir_iterator_has_previous (G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, GEE_TYPE_BIDIR_ITERATOR) ? ((GeeBidirIterator*) _tmp0_) : NULL);
518         result = _tmp1_;
519         return result;
520 }
521
522
523 static gboolean gee_read_only_bidir_sorted_set_bidir_iterator_real_last (GeeBidirIterator* base) {
524         GeeReadOnlyBidirSortedSetBidirIterator * self;
525         gboolean result = FALSE;
526         GeeIterator* _tmp0_;
527         gboolean _tmp1_ = FALSE;
528         self = (GeeReadOnlyBidirSortedSetBidirIterator*) base;
529         _tmp0_ = ((GeeReadOnlyCollectionIterator*) self)->_iter;
530         _tmp1_ = gee_bidir_iterator_last (G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, GEE_TYPE_BIDIR_ITERATOR) ? ((GeeBidirIterator*) _tmp0_) : NULL);
531         result = _tmp1_;
532         return result;
533 }
534
535
536 static void gee_read_only_bidir_sorted_set_bidir_iterator_class_init (GeeReadOnlyBidirSortedSetBidirIteratorClass * klass) {
537         gee_read_only_bidir_sorted_set_bidir_iterator_parent_class = g_type_class_peek_parent (klass);
538         g_type_class_add_private (klass, sizeof (GeeReadOnlyBidirSortedSetBidirIteratorPrivate));
539         G_OBJECT_CLASS (klass)->get_property = _vala_gee_read_only_bidir_sorted_set_bidir_iterator_get_property;
540         G_OBJECT_CLASS (klass)->set_property = _vala_gee_read_only_bidir_sorted_set_bidir_iterator_set_property;
541         g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_READ_ONLY_BIDIR_SORTED_SET_BIDIR_ITERATOR_G_TYPE, g_param_spec_gtype ("g-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));
542         g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_READ_ONLY_BIDIR_SORTED_SET_BIDIR_ITERATOR_G_DUP_FUNC, g_param_spec_pointer ("g-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));
543         g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_READ_ONLY_BIDIR_SORTED_SET_BIDIR_ITERATOR_G_DESTROY_FUNC, g_param_spec_pointer ("g-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));
544 }
545
546
547 static GType gee_read_only_bidir_sorted_set_bidir_iterator_gee_bidir_iterator_get_g_type (GeeReadOnlyBidirSortedSetBidirIterator* self) {
548         return self->priv->g_type;
549 }
550
551
552 static GBoxedCopyFunc gee_read_only_bidir_sorted_set_bidir_iterator_gee_bidir_iterator_get_g_dup_func (GeeReadOnlyBidirSortedSetBidirIterator* self) {
553         return self->priv->g_dup_func;
554 }
555
556
557 static GDestroyNotify gee_read_only_bidir_sorted_set_bidir_iterator_gee_bidir_iterator_get_g_destroy_func (GeeReadOnlyBidirSortedSetBidirIterator* self) {
558         return self->priv->g_destroy_func;
559 }
560
561
562 static void gee_read_only_bidir_sorted_set_bidir_iterator_gee_bidir_iterator_interface_init (GeeBidirIteratorIface * iface) {
563         gee_read_only_bidir_sorted_set_bidir_iterator_gee_bidir_iterator_parent_iface = g_type_interface_peek_parent (iface);
564         iface->first = (gboolean (*)(GeeBidirIterator*)) gee_read_only_bidir_sorted_set_bidir_iterator_real_first;
565         iface->previous = (gboolean (*)(GeeBidirIterator*)) gee_read_only_bidir_sorted_set_bidir_iterator_real_previous;
566         iface->has_previous = (gboolean (*)(GeeBidirIterator*)) gee_read_only_bidir_sorted_set_bidir_iterator_real_has_previous;
567         iface->last = (gboolean (*)(GeeBidirIterator*)) gee_read_only_bidir_sorted_set_bidir_iterator_real_last;
568         iface->get_g_type = (GType(*)(GeeBidirIterator*)) gee_read_only_bidir_sorted_set_bidir_iterator_gee_bidir_iterator_get_g_type;
569         iface->get_g_dup_func = (GBoxedCopyFunc(*)(GeeBidirIterator*)) gee_read_only_bidir_sorted_set_bidir_iterator_gee_bidir_iterator_get_g_dup_func;
570         iface->get_g_destroy_func = (GDestroyNotify(*)(GeeBidirIterator*)) gee_read_only_bidir_sorted_set_bidir_iterator_gee_bidir_iterator_get_g_destroy_func;
571 }
572
573
574 static void gee_read_only_bidir_sorted_set_bidir_iterator_instance_init (GeeReadOnlyBidirSortedSetBidirIterator * self) {
575         self->priv = GEE_READ_ONLY_BIDIR_SORTED_SET_BIDIR_ITERATOR_GET_PRIVATE (self);
576 }
577
578
579 GType gee_read_only_bidir_sorted_set_bidir_iterator_get_type (void) {
580         static volatile gsize gee_read_only_bidir_sorted_set_bidir_iterator_type_id__volatile = 0;
581         if (g_once_init_enter (&gee_read_only_bidir_sorted_set_bidir_iterator_type_id__volatile)) {
582                 static const GTypeInfo g_define_type_info = { sizeof (GeeReadOnlyBidirSortedSetBidirIteratorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_read_only_bidir_sorted_set_bidir_iterator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeReadOnlyBidirSortedSetBidirIterator), 0, (GInstanceInitFunc) gee_read_only_bidir_sorted_set_bidir_iterator_instance_init, NULL };
583                 static const GInterfaceInfo gee_bidir_iterator_info = { (GInterfaceInitFunc) gee_read_only_bidir_sorted_set_bidir_iterator_gee_bidir_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
584                 GType gee_read_only_bidir_sorted_set_bidir_iterator_type_id;
585                 gee_read_only_bidir_sorted_set_bidir_iterator_type_id = g_type_register_static (GEE_READ_ONLY_COLLECTION_TYPE_ITERATOR, "GeeReadOnlyBidirSortedSetBidirIterator", &g_define_type_info, 0);
586                 g_type_add_interface_static (gee_read_only_bidir_sorted_set_bidir_iterator_type_id, GEE_TYPE_BIDIR_ITERATOR, &gee_bidir_iterator_info);
587                 g_once_init_leave (&gee_read_only_bidir_sorted_set_bidir_iterator_type_id__volatile, gee_read_only_bidir_sorted_set_bidir_iterator_type_id);
588         }
589         return gee_read_only_bidir_sorted_set_bidir_iterator_type_id__volatile;
590 }
591
592
593 static void _vala_gee_read_only_bidir_sorted_set_bidir_iterator_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
594         GeeReadOnlyBidirSortedSetBidirIterator * self;
595         self = G_TYPE_CHECK_INSTANCE_CAST (object, GEE_READ_ONLY_BIDIR_SORTED_SET_TYPE_BIDIR_ITERATOR, GeeReadOnlyBidirSortedSetBidirIterator);
596         switch (property_id) {
597                 default:
598                 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
599                 break;
600         }
601 }
602
603
604 static void _vala_gee_read_only_bidir_sorted_set_bidir_iterator_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
605         GeeReadOnlyBidirSortedSetBidirIterator * self;
606         self = G_TYPE_CHECK_INSTANCE_CAST (object, GEE_READ_ONLY_BIDIR_SORTED_SET_TYPE_BIDIR_ITERATOR, GeeReadOnlyBidirSortedSetBidirIterator);
607         switch (property_id) {
608                 case GEE_READ_ONLY_BIDIR_SORTED_SET_BIDIR_ITERATOR_G_TYPE:
609                 self->priv->g_type = g_value_get_gtype (value);
610                 break;
611                 case GEE_READ_ONLY_BIDIR_SORTED_SET_BIDIR_ITERATOR_G_DUP_FUNC:
612                 self->priv->g_dup_func = g_value_get_pointer (value);
613                 break;
614                 case GEE_READ_ONLY_BIDIR_SORTED_SET_BIDIR_ITERATOR_G_DESTROY_FUNC:
615                 self->priv->g_destroy_func = g_value_get_pointer (value);
616                 break;
617                 default:
618                 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
619                 break;
620         }
621 }
622
623
624 static void gee_read_only_bidir_sorted_set_class_init (GeeReadOnlyBidirSortedSetClass * klass) {
625         gee_read_only_bidir_sorted_set_parent_class = g_type_class_peek_parent (klass);
626         g_type_class_add_private (klass, sizeof (GeeReadOnlyBidirSortedSetPrivate));
627         G_OBJECT_CLASS (klass)->get_property = _vala_gee_read_only_bidir_sorted_set_get_property;
628         G_OBJECT_CLASS (klass)->set_property = _vala_gee_read_only_bidir_sorted_set_set_property;
629         g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_READ_ONLY_BIDIR_SORTED_SET_G_TYPE, g_param_spec_gtype ("g-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));
630         g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_READ_ONLY_BIDIR_SORTED_SET_G_DUP_FUNC, g_param_spec_pointer ("g-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));
631         g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_READ_ONLY_BIDIR_SORTED_SET_G_DESTROY_FUNC, g_param_spec_pointer ("g-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));
632 }
633
634
635 static GType gee_read_only_bidir_sorted_set_gee_bidir_sorted_set_get_g_type (GeeReadOnlyBidirSortedSet* self) {
636         return self->priv->g_type;
637 }
638
639
640 static GBoxedCopyFunc gee_read_only_bidir_sorted_set_gee_bidir_sorted_set_get_g_dup_func (GeeReadOnlyBidirSortedSet* self) {
641         return self->priv->g_dup_func;
642 }
643
644
645 static GDestroyNotify gee_read_only_bidir_sorted_set_gee_bidir_sorted_set_get_g_destroy_func (GeeReadOnlyBidirSortedSet* self) {
646         return self->priv->g_destroy_func;
647 }
648
649
650 static void gee_read_only_bidir_sorted_set_gee_bidir_sorted_set_interface_init (GeeBidirSortedSetIface * iface) {
651         gee_read_only_bidir_sorted_set_gee_bidir_sorted_set_parent_iface = g_type_interface_peek_parent (iface);
652         iface->bidir_iterator = (GeeBidirIterator* (*)(GeeBidirSortedSet*)) gee_read_only_bidir_sorted_set_real_bidir_iterator;
653         iface->get_g_type = (GType(*)(GeeBidirSortedSet*)) gee_read_only_bidir_sorted_set_gee_bidir_sorted_set_get_g_type;
654         iface->get_g_dup_func = (GBoxedCopyFunc(*)(GeeBidirSortedSet*)) gee_read_only_bidir_sorted_set_gee_bidir_sorted_set_get_g_dup_func;
655         iface->get_g_destroy_func = (GDestroyNotify(*)(GeeBidirSortedSet*)) gee_read_only_bidir_sorted_set_gee_bidir_sorted_set_get_g_destroy_func;
656         iface->get_read_only_view = (GeeBidirSortedSet* (*) (GeeBidirSortedSet *)) gee_sorted_set_get_read_only_view;
657 }
658
659
660 static void gee_read_only_bidir_sorted_set_instance_init (GeeReadOnlyBidirSortedSet * self) {
661         self->priv = GEE_READ_ONLY_BIDIR_SORTED_SET_GET_PRIVATE (self);
662 }
663
664
665 /**
666  * Read-only view for {@link BidirSortedSet} collections.
667  *
668  * This class decorates any class which implements the {@link BidirSortedSet}
669  * interface by making it read only. Any method which normally modify data will
670  * throw an error.
671  *
672  * @see BidirSortedSet
673  */
674 GType gee_read_only_bidir_sorted_set_get_type (void) {
675         static volatile gsize gee_read_only_bidir_sorted_set_type_id__volatile = 0;
676         if (g_once_init_enter (&gee_read_only_bidir_sorted_set_type_id__volatile)) {
677                 static const GTypeInfo g_define_type_info = { sizeof (GeeReadOnlyBidirSortedSetClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_read_only_bidir_sorted_set_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeReadOnlyBidirSortedSet), 0, (GInstanceInitFunc) gee_read_only_bidir_sorted_set_instance_init, NULL };
678                 static const GInterfaceInfo gee_bidir_sorted_set_info = { (GInterfaceInitFunc) gee_read_only_bidir_sorted_set_gee_bidir_sorted_set_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
679                 GType gee_read_only_bidir_sorted_set_type_id;
680                 gee_read_only_bidir_sorted_set_type_id = g_type_register_static (GEE_TYPE_READ_ONLY_SORTED_SET, "GeeReadOnlyBidirSortedSet", &g_define_type_info, 0);
681                 g_type_add_interface_static (gee_read_only_bidir_sorted_set_type_id, GEE_TYPE_BIDIR_SORTED_SET, &gee_bidir_sorted_set_info);
682                 g_once_init_leave (&gee_read_only_bidir_sorted_set_type_id__volatile, gee_read_only_bidir_sorted_set_type_id);
683         }
684         return gee_read_only_bidir_sorted_set_type_id__volatile;
685 }
686
687
688 static void _vala_gee_read_only_bidir_sorted_set_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
689         GeeReadOnlyBidirSortedSet * self;
690         self = G_TYPE_CHECK_INSTANCE_CAST (object, GEE_TYPE_READ_ONLY_BIDIR_SORTED_SET, GeeReadOnlyBidirSortedSet);
691         switch (property_id) {
692                 default:
693                 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
694                 break;
695         }
696 }
697
698
699 static void _vala_gee_read_only_bidir_sorted_set_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
700         GeeReadOnlyBidirSortedSet * self;
701         self = G_TYPE_CHECK_INSTANCE_CAST (object, GEE_TYPE_READ_ONLY_BIDIR_SORTED_SET, GeeReadOnlyBidirSortedSet);
702         switch (property_id) {
703                 case GEE_READ_ONLY_BIDIR_SORTED_SET_G_TYPE:
704                 self->priv->g_type = g_value_get_gtype (value);
705                 break;
706                 case GEE_READ_ONLY_BIDIR_SORTED_SET_G_DUP_FUNC:
707                 self->priv->g_dup_func = g_value_get_pointer (value);
708                 break;
709                 case GEE_READ_ONLY_BIDIR_SORTED_SET_G_DESTROY_FUNC:
710                 self->priv->g_destroy_func = g_value_get_pointer (value);
711                 break;
712                 default:
713                 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
714                 break;
715         }
716 }
717
718
719