Update Changelog
[profile/ivi/libgee.git] / gee / abstractsortedset.c
1 /* abstractsortedset.c generated by valac 0.18.0, the Vala compiler
2  * generated from abstractsortedset.vala, do not modify */
3
4 /* abstractsortedset.vala
5  *
6  * Copyright (C) 2009-2011  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_ABSTRACT_COLLECTION (gee_abstract_collection_get_type ())
75 #define GEE_ABSTRACT_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection))
76 #define GEE_ABSTRACT_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollectionClass))
77 #define GEE_IS_ABSTRACT_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_COLLECTION))
78 #define GEE_IS_ABSTRACT_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_COLLECTION))
79 #define GEE_ABSTRACT_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollectionClass))
80
81 typedef struct _GeeAbstractCollection GeeAbstractCollection;
82 typedef struct _GeeAbstractCollectionClass GeeAbstractCollectionClass;
83 typedef struct _GeeAbstractCollectionPrivate GeeAbstractCollectionPrivate;
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_ABSTRACT_SET (gee_abstract_set_get_type ())
94 #define GEE_ABSTRACT_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_SET, GeeAbstractSet))
95 #define GEE_ABSTRACT_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_SET, GeeAbstractSetClass))
96 #define GEE_IS_ABSTRACT_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_SET))
97 #define GEE_IS_ABSTRACT_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_SET))
98 #define GEE_ABSTRACT_SET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_SET, GeeAbstractSetClass))
99
100 typedef struct _GeeAbstractSet GeeAbstractSet;
101 typedef struct _GeeAbstractSetClass GeeAbstractSetClass;
102 typedef struct _GeeAbstractSetPrivate GeeAbstractSetPrivate;
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_ABSTRACT_SORTED_SET (gee_abstract_sorted_set_get_type ())
113 #define GEE_ABSTRACT_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_SORTED_SET, GeeAbstractSortedSet))
114 #define GEE_ABSTRACT_SORTED_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_SORTED_SET, GeeAbstractSortedSetClass))
115 #define GEE_IS_ABSTRACT_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_SORTED_SET))
116 #define GEE_IS_ABSTRACT_SORTED_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_SORTED_SET))
117 #define GEE_ABSTRACT_SORTED_SET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_SORTED_SET, GeeAbstractSortedSetClass))
118
119 typedef struct _GeeAbstractSortedSet GeeAbstractSortedSet;
120 typedef struct _GeeAbstractSortedSetClass GeeAbstractSortedSetClass;
121 typedef struct _GeeAbstractSortedSetPrivate GeeAbstractSortedSetPrivate;
122
123 #define GEE_TYPE_READ_ONLY_COLLECTION (gee_read_only_collection_get_type ())
124 #define GEE_READ_ONLY_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_READ_ONLY_COLLECTION, GeeReadOnlyCollection))
125 #define GEE_READ_ONLY_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_READ_ONLY_COLLECTION, GeeReadOnlyCollectionClass))
126 #define GEE_IS_READ_ONLY_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_READ_ONLY_COLLECTION))
127 #define GEE_IS_READ_ONLY_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_READ_ONLY_COLLECTION))
128 #define GEE_READ_ONLY_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_READ_ONLY_COLLECTION, GeeReadOnlyCollectionClass))
129
130 typedef struct _GeeReadOnlyCollection GeeReadOnlyCollection;
131 typedef struct _GeeReadOnlyCollectionClass GeeReadOnlyCollectionClass;
132
133 #define GEE_TYPE_READ_ONLY_SET (gee_read_only_set_get_type ())
134 #define GEE_READ_ONLY_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_READ_ONLY_SET, GeeReadOnlySet))
135 #define GEE_READ_ONLY_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_READ_ONLY_SET, GeeReadOnlySetClass))
136 #define GEE_IS_READ_ONLY_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_READ_ONLY_SET))
137 #define GEE_IS_READ_ONLY_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_READ_ONLY_SET))
138 #define GEE_READ_ONLY_SET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_READ_ONLY_SET, GeeReadOnlySetClass))
139
140 typedef struct _GeeReadOnlySet GeeReadOnlySet;
141 typedef struct _GeeReadOnlySetClass GeeReadOnlySetClass;
142
143 #define GEE_TYPE_READ_ONLY_SORTED_SET (gee_read_only_sorted_set_get_type ())
144 #define GEE_READ_ONLY_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_READ_ONLY_SORTED_SET, GeeReadOnlySortedSet))
145 #define GEE_READ_ONLY_SORTED_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_READ_ONLY_SORTED_SET, GeeReadOnlySortedSetClass))
146 #define GEE_IS_READ_ONLY_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_READ_ONLY_SORTED_SET))
147 #define GEE_IS_READ_ONLY_SORTED_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_READ_ONLY_SORTED_SET))
148 #define GEE_READ_ONLY_SORTED_SET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_READ_ONLY_SORTED_SET, GeeReadOnlySortedSetClass))
149
150 typedef struct _GeeReadOnlySortedSet GeeReadOnlySortedSet;
151 typedef struct _GeeReadOnlySortedSetClass GeeReadOnlySortedSetClass;
152 #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
153
154 typedef gboolean (*GeeForallFunc) (gpointer g, void* user_data);
155 typedef enum  {
156         GEE_TRAVERSABLE_STREAM_YIELD,
157         GEE_TRAVERSABLE_STREAM_CONTINUE,
158         GEE_TRAVERSABLE_STREAM_END
159 } GeeTraversableStream;
160
161 typedef GeeTraversableStream (*GeeStreamFunc) (GeeTraversableStream state, GeeLazy* g, GeeLazy** lazy, void* user_data);
162 struct _GeeIteratorIface {
163         GTypeInterface parent_iface;
164         gboolean (*next) (GeeIterator* self);
165         gboolean (*has_next) (GeeIterator* self);
166         gpointer (*get) (GeeIterator* self);
167         void (*remove) (GeeIterator* self);
168         gboolean (*get_valid) (GeeIterator* self);
169         gboolean (*get_read_only) (GeeIterator* self);
170 };
171
172 typedef gpointer (*GeeFoldFunc) (gpointer g, gpointer a, void* user_data);
173 typedef gpointer (*GeeMapFunc) (gpointer g, void* user_data);
174 typedef gboolean (*GeePredicate) (gconstpointer g, void* user_data);
175 struct _GeeTraversableIface {
176         GTypeInterface parent_iface;
177         GType (*get_g_type) (GeeTraversable* self);
178         GBoxedCopyFunc (*get_g_dup_func) (GeeTraversable* self);
179         GDestroyNotify (*get_g_destroy_func) (GeeTraversable* self);
180         gboolean (*foreach) (GeeTraversable* self, GeeForallFunc f, void* f_target);
181         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);
182         gpointer (*fold) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, void* f_target, gpointer seed);
183         GeeIterator* (*map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeMapFunc f, void* f_target);
184         GeeIterator* (*scan) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, void* f_target, gpointer seed);
185         GeeIterator* (*filter) (GeeTraversable* self, GeePredicate pred, void* pred_target, GDestroyNotify pred_target_destroy_notify);
186         GeeIterator* (*chop) (GeeTraversable* self, gint offset, gint length);
187         GType (*get_element_type) (GeeTraversable* self);
188 };
189
190 struct _GeeIterableIface {
191         GTypeInterface parent_iface;
192         GType (*get_g_type) (GeeIterable* self);
193         GBoxedCopyFunc (*get_g_dup_func) (GeeIterable* self);
194         GDestroyNotify (*get_g_destroy_func) (GeeIterable* self);
195         GeeIterator* (*iterator) (GeeIterable* self);
196 };
197
198 struct _GeeCollectionIface {
199         GTypeInterface parent_iface;
200         GType (*get_g_type) (GeeCollection* self);
201         GBoxedCopyFunc (*get_g_dup_func) (GeeCollection* self);
202         GDestroyNotify (*get_g_destroy_func) (GeeCollection* self);
203         gboolean (*contains) (GeeCollection* self, gconstpointer item);
204         gboolean (*add) (GeeCollection* self, gconstpointer item);
205         gboolean (*remove) (GeeCollection* self, gconstpointer item);
206         void (*clear) (GeeCollection* self);
207         gboolean (*add_all) (GeeCollection* self, GeeCollection* collection);
208         gboolean (*contains_all) (GeeCollection* self, GeeCollection* collection);
209         gboolean (*remove_all) (GeeCollection* self, GeeCollection* collection);
210         gboolean (*retain_all) (GeeCollection* self, GeeCollection* collection);
211         gpointer* (*to_array) (GeeCollection* self, int* result_length1);
212         gint (*get_size) (GeeCollection* self);
213         gboolean (*get_is_empty) (GeeCollection* self);
214         gboolean (*get_read_only) (GeeCollection* self);
215         GeeCollection* (*get_read_only_view) (GeeCollection* self);
216 };
217
218 struct _GeeAbstractCollection {
219         GObject parent_instance;
220         GeeAbstractCollectionPrivate * priv;
221 };
222
223 struct _GeeAbstractCollectionClass {
224         GObjectClass parent_class;
225         gboolean (*contains) (GeeAbstractCollection* self, gconstpointer item);
226         gboolean (*add) (GeeAbstractCollection* self, gconstpointer item);
227         gboolean (*remove) (GeeAbstractCollection* self, gconstpointer item);
228         void (*clear) (GeeAbstractCollection* self);
229         GeeIterator* (*iterator) (GeeAbstractCollection* self);
230         gboolean (*foreach) (GeeAbstractCollection* self, GeeForallFunc f, void* f_target);
231         void (*reserved0) (GeeAbstractCollection* self);
232         void (*reserved1) (GeeAbstractCollection* self);
233         void (*reserved2) (GeeAbstractCollection* self);
234         void (*reserved3) (GeeAbstractCollection* self);
235         void (*reserved4) (GeeAbstractCollection* self);
236         void (*reserved5) (GeeAbstractCollection* self);
237         void (*reserved6) (GeeAbstractCollection* self);
238         void (*reserved7) (GeeAbstractCollection* self);
239         void (*reserved8) (GeeAbstractCollection* self);
240         void (*reserved9) (GeeAbstractCollection* self);
241         gint (*get_size) (GeeAbstractCollection* self);
242         gboolean (*get_read_only) (GeeAbstractCollection* self);
243         GeeCollection* (*get_read_only_view) (GeeAbstractCollection* self);
244 };
245
246 struct _GeeSetIface {
247         GTypeInterface parent_iface;
248         GType (*get_g_type) (GeeSet* self);
249         GBoxedCopyFunc (*get_g_dup_func) (GeeSet* self);
250         GDestroyNotify (*get_g_destroy_func) (GeeSet* self);
251         GeeSet* (*get_read_only_view) (GeeSet* self);
252 };
253
254 struct _GeeAbstractSet {
255         GeeAbstractCollection parent_instance;
256         GeeAbstractSetPrivate * priv;
257 };
258
259 struct _GeeAbstractSetClass {
260         GeeAbstractCollectionClass parent_class;
261         void (*reserved0) (GeeAbstractSet* self);
262         void (*reserved1) (GeeAbstractSet* self);
263         void (*reserved2) (GeeAbstractSet* self);
264         void (*reserved3) (GeeAbstractSet* self);
265         void (*reserved4) (GeeAbstractSet* self);
266         void (*reserved5) (GeeAbstractSet* self);
267         void (*reserved6) (GeeAbstractSet* self);
268         void (*reserved7) (GeeAbstractSet* self);
269         void (*reserved8) (GeeAbstractSet* self);
270         void (*reserved9) (GeeAbstractSet* self);
271         GeeSet* (*get_read_only_view) (GeeAbstractSet* self);
272 };
273
274 struct _GeeSortedSetIface {
275         GTypeInterface parent_iface;
276         GType (*get_g_type) (GeeSortedSet* self);
277         GBoxedCopyFunc (*get_g_dup_func) (GeeSortedSet* self);
278         GDestroyNotify (*get_g_destroy_func) (GeeSortedSet* self);
279         gpointer (*first) (GeeSortedSet* self);
280         gpointer (*last) (GeeSortedSet* self);
281         GeeIterator* (*iterator_at) (GeeSortedSet* self, gconstpointer element);
282         gpointer (*lower) (GeeSortedSet* self, gconstpointer element);
283         gpointer (*higher) (GeeSortedSet* self, gconstpointer element);
284         gpointer (*floor) (GeeSortedSet* self, gconstpointer element);
285         gpointer (*ceil) (GeeSortedSet* self, gconstpointer element);
286         GeeSortedSet* (*head_set) (GeeSortedSet* self, gconstpointer before);
287         GeeSortedSet* (*tail_set) (GeeSortedSet* self, gconstpointer after);
288         GeeSortedSet* (*sub_set) (GeeSortedSet* self, gconstpointer from, gconstpointer to);
289         GeeSortedSet* (*get_read_only_view) (GeeSortedSet* self);
290 };
291
292 struct _GeeAbstractSortedSet {
293         GeeAbstractSet parent_instance;
294         GeeAbstractSortedSetPrivate * priv;
295 };
296
297 struct _GeeAbstractSortedSetClass {
298         GeeAbstractSetClass parent_class;
299         gpointer (*first) (GeeAbstractSortedSet* self);
300         gpointer (*last) (GeeAbstractSortedSet* self);
301         GeeIterator* (*iterator_at) (GeeAbstractSortedSet* self, gconstpointer element);
302         gpointer (*lower) (GeeAbstractSortedSet* self, gconstpointer element);
303         gpointer (*higher) (GeeAbstractSortedSet* self, gconstpointer element);
304         gpointer (*floor) (GeeAbstractSortedSet* self, gconstpointer element);
305         gpointer (*ceil) (GeeAbstractSortedSet* self, gconstpointer element);
306         GeeSortedSet* (*head_set) (GeeAbstractSortedSet* self, gconstpointer before);
307         GeeSortedSet* (*tail_set) (GeeAbstractSortedSet* self, gconstpointer after);
308         GeeSortedSet* (*sub_set) (GeeAbstractSortedSet* self, gconstpointer from, gconstpointer to);
309         void (*reserved0) (GeeAbstractSortedSet* self);
310         void (*reserved1) (GeeAbstractSortedSet* self);
311         void (*reserved2) (GeeAbstractSortedSet* self);
312         void (*reserved3) (GeeAbstractSortedSet* self);
313         void (*reserved4) (GeeAbstractSortedSet* self);
314         void (*reserved5) (GeeAbstractSortedSet* self);
315         void (*reserved6) (GeeAbstractSortedSet* self);
316         void (*reserved7) (GeeAbstractSortedSet* self);
317         void (*reserved8) (GeeAbstractSortedSet* self);
318         void (*reserved9) (GeeAbstractSortedSet* self);
319         GeeSortedSet* (*get_read_only_view) (GeeAbstractSortedSet* self);
320 };
321
322 struct _GeeAbstractSortedSetPrivate {
323         GType g_type;
324         GBoxedCopyFunc g_dup_func;
325         GDestroyNotify g_destroy_func;
326         GeeSortedSet* _read_only_view;
327 };
328
329
330 static gpointer gee_abstract_sorted_set_parent_class = NULL;
331 static GeeSortedSetIface* gee_abstract_sorted_set_gee_sorted_set_parent_iface = NULL;
332
333 GType gee_traversable_stream_get_type (void) G_GNUC_CONST;
334 gpointer gee_lazy_ref (gpointer instance);
335 void gee_lazy_unref (gpointer instance);
336 GParamSpec* gee_param_spec_lazy (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
337 void gee_value_set_lazy (GValue* value, gpointer v_object);
338 void gee_value_take_lazy (GValue* value, gpointer v_object);
339 gpointer gee_value_get_lazy (const GValue* value);
340 GType gee_lazy_get_type (void) G_GNUC_CONST;
341 GType gee_iterator_get_type (void) G_GNUC_CONST;
342 GType gee_traversable_get_type (void) G_GNUC_CONST;
343 GType gee_iterable_get_type (void) G_GNUC_CONST;
344 GType gee_collection_get_type (void) G_GNUC_CONST;
345 GType gee_abstract_collection_get_type (void) G_GNUC_CONST;
346 GType gee_set_get_type (void) G_GNUC_CONST;
347 GType gee_abstract_set_get_type (void) G_GNUC_CONST;
348 GType gee_sorted_set_get_type (void) G_GNUC_CONST;
349 GType gee_abstract_sorted_set_get_type (void) G_GNUC_CONST;
350 #define GEE_ABSTRACT_SORTED_SET_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GEE_TYPE_ABSTRACT_SORTED_SET, GeeAbstractSortedSetPrivate))
351 enum  {
352         GEE_ABSTRACT_SORTED_SET_DUMMY_PROPERTY,
353         GEE_ABSTRACT_SORTED_SET_G_TYPE,
354         GEE_ABSTRACT_SORTED_SET_G_DUP_FUNC,
355         GEE_ABSTRACT_SORTED_SET_G_DESTROY_FUNC,
356         GEE_ABSTRACT_SORTED_SET_READ_ONLY_VIEW
357 };
358 gpointer gee_abstract_sorted_set_first (GeeAbstractSortedSet* self);
359 static gpointer gee_abstract_sorted_set_real_first (GeeAbstractSortedSet* self);
360 gpointer gee_abstract_sorted_set_last (GeeAbstractSortedSet* self);
361 static gpointer gee_abstract_sorted_set_real_last (GeeAbstractSortedSet* self);
362 GeeIterator* gee_abstract_sorted_set_iterator_at (GeeAbstractSortedSet* self, gconstpointer element);
363 static GeeIterator* gee_abstract_sorted_set_real_iterator_at (GeeAbstractSortedSet* self, gconstpointer element);
364 gpointer gee_abstract_sorted_set_lower (GeeAbstractSortedSet* self, gconstpointer element);
365 static gpointer gee_abstract_sorted_set_real_lower (GeeAbstractSortedSet* self, gconstpointer element);
366 gpointer gee_abstract_sorted_set_higher (GeeAbstractSortedSet* self, gconstpointer element);
367 static gpointer gee_abstract_sorted_set_real_higher (GeeAbstractSortedSet* self, gconstpointer element);
368 gpointer gee_abstract_sorted_set_floor (GeeAbstractSortedSet* self, gconstpointer element);
369 static gpointer gee_abstract_sorted_set_real_floor (GeeAbstractSortedSet* self, gconstpointer element);
370 gpointer gee_abstract_sorted_set_ceil (GeeAbstractSortedSet* self, gconstpointer element);
371 static gpointer gee_abstract_sorted_set_real_ceil (GeeAbstractSortedSet* self, gconstpointer element);
372 GeeSortedSet* gee_abstract_sorted_set_head_set (GeeAbstractSortedSet* self, gconstpointer before);
373 static GeeSortedSet* gee_abstract_sorted_set_real_head_set (GeeAbstractSortedSet* self, gconstpointer before);
374 GeeSortedSet* gee_abstract_sorted_set_tail_set (GeeAbstractSortedSet* self, gconstpointer after);
375 static GeeSortedSet* gee_abstract_sorted_set_real_tail_set (GeeAbstractSortedSet* self, gconstpointer after);
376 GeeSortedSet* gee_abstract_sorted_set_sub_set (GeeAbstractSortedSet* self, gconstpointer from, gconstpointer to);
377 static GeeSortedSet* gee_abstract_sorted_set_real_sub_set (GeeAbstractSortedSet* self, gconstpointer from, gconstpointer to);
378 void gee_abstract_sorted_set_reserved0 (GeeAbstractSortedSet* self);
379 static void gee_abstract_sorted_set_real_reserved0 (GeeAbstractSortedSet* self);
380 void gee_abstract_sorted_set_reserved1 (GeeAbstractSortedSet* self);
381 static void gee_abstract_sorted_set_real_reserved1 (GeeAbstractSortedSet* self);
382 void gee_abstract_sorted_set_reserved2 (GeeAbstractSortedSet* self);
383 static void gee_abstract_sorted_set_real_reserved2 (GeeAbstractSortedSet* self);
384 void gee_abstract_sorted_set_reserved3 (GeeAbstractSortedSet* self);
385 static void gee_abstract_sorted_set_real_reserved3 (GeeAbstractSortedSet* self);
386 void gee_abstract_sorted_set_reserved4 (GeeAbstractSortedSet* self);
387 static void gee_abstract_sorted_set_real_reserved4 (GeeAbstractSortedSet* self);
388 void gee_abstract_sorted_set_reserved5 (GeeAbstractSortedSet* self);
389 static void gee_abstract_sorted_set_real_reserved5 (GeeAbstractSortedSet* self);
390 void gee_abstract_sorted_set_reserved6 (GeeAbstractSortedSet* self);
391 static void gee_abstract_sorted_set_real_reserved6 (GeeAbstractSortedSet* self);
392 void gee_abstract_sorted_set_reserved7 (GeeAbstractSortedSet* self);
393 static void gee_abstract_sorted_set_real_reserved7 (GeeAbstractSortedSet* self);
394 void gee_abstract_sorted_set_reserved8 (GeeAbstractSortedSet* self);
395 static void gee_abstract_sorted_set_real_reserved8 (GeeAbstractSortedSet* self);
396 void gee_abstract_sorted_set_reserved9 (GeeAbstractSortedSet* self);
397 static void gee_abstract_sorted_set_real_reserved9 (GeeAbstractSortedSet* self);
398 GeeAbstractSortedSet* gee_abstract_sorted_set_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func);
399 GeeAbstractSet* gee_abstract_set_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func);
400 GeeSortedSet* gee_abstract_sorted_set_get_read_only_view (GeeAbstractSortedSet* self);
401 GeeReadOnlySortedSet* gee_read_only_sorted_set_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeSortedSet* set);
402 GeeReadOnlySortedSet* gee_read_only_sorted_set_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeSortedSet* set);
403 GType gee_read_only_collection_get_type (void) G_GNUC_CONST;
404 GType gee_read_only_set_get_type (void) G_GNUC_CONST;
405 GType gee_read_only_sorted_set_get_type (void) G_GNUC_CONST;
406 static void gee_abstract_sorted_set_finalize (GObject* obj);
407 static void _vala_gee_abstract_sorted_set_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
408 static void _vala_gee_abstract_sorted_set_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
409
410
411 /**
412  * {@inheritDoc}
413  */
414 static gpointer gee_abstract_sorted_set_real_first (GeeAbstractSortedSet* self) {
415         g_critical ("Type `%s' does not implement abstract method `gee_abstract_sorted_set_first'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
416         return NULL;
417 }
418
419
420 gpointer gee_abstract_sorted_set_first (GeeAbstractSortedSet* self) {
421         g_return_val_if_fail (self != NULL, NULL);
422         return GEE_ABSTRACT_SORTED_SET_GET_CLASS (self)->first (self);
423 }
424
425
426 /**
427  * {@inheritDoc}
428  */
429 static gpointer gee_abstract_sorted_set_real_last (GeeAbstractSortedSet* self) {
430         g_critical ("Type `%s' does not implement abstract method `gee_abstract_sorted_set_last'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
431         return NULL;
432 }
433
434
435 gpointer gee_abstract_sorted_set_last (GeeAbstractSortedSet* self) {
436         g_return_val_if_fail (self != NULL, NULL);
437         return GEE_ABSTRACT_SORTED_SET_GET_CLASS (self)->last (self);
438 }
439
440
441 /**
442  * {@inheritDoc}
443  */
444 static GeeIterator* gee_abstract_sorted_set_real_iterator_at (GeeAbstractSortedSet* self, gconstpointer element) {
445         g_critical ("Type `%s' does not implement abstract method `gee_abstract_sorted_set_iterator_at'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
446         return NULL;
447 }
448
449
450 GeeIterator* gee_abstract_sorted_set_iterator_at (GeeAbstractSortedSet* self, gconstpointer element) {
451         g_return_val_if_fail (self != NULL, NULL);
452         return GEE_ABSTRACT_SORTED_SET_GET_CLASS (self)->iterator_at (self, element);
453 }
454
455
456 /**
457  * {@inheritDoc}
458  */
459 static gpointer gee_abstract_sorted_set_real_lower (GeeAbstractSortedSet* self, gconstpointer element) {
460         g_critical ("Type `%s' does not implement abstract method `gee_abstract_sorted_set_lower'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
461         return NULL;
462 }
463
464
465 gpointer gee_abstract_sorted_set_lower (GeeAbstractSortedSet* self, gconstpointer element) {
466         g_return_val_if_fail (self != NULL, NULL);
467         return GEE_ABSTRACT_SORTED_SET_GET_CLASS (self)->lower (self, element);
468 }
469
470
471 /**
472  * {@inheritDoc}
473  */
474 static gpointer gee_abstract_sorted_set_real_higher (GeeAbstractSortedSet* self, gconstpointer element) {
475         g_critical ("Type `%s' does not implement abstract method `gee_abstract_sorted_set_higher'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
476         return NULL;
477 }
478
479
480 gpointer gee_abstract_sorted_set_higher (GeeAbstractSortedSet* self, gconstpointer element) {
481         g_return_val_if_fail (self != NULL, NULL);
482         return GEE_ABSTRACT_SORTED_SET_GET_CLASS (self)->higher (self, element);
483 }
484
485
486 /**
487  * {@inheritDoc}
488  */
489 static gpointer gee_abstract_sorted_set_real_floor (GeeAbstractSortedSet* self, gconstpointer element) {
490         g_critical ("Type `%s' does not implement abstract method `gee_abstract_sorted_set_floor'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
491         return NULL;
492 }
493
494
495 gpointer gee_abstract_sorted_set_floor (GeeAbstractSortedSet* self, gconstpointer element) {
496         g_return_val_if_fail (self != NULL, NULL);
497         return GEE_ABSTRACT_SORTED_SET_GET_CLASS (self)->floor (self, element);
498 }
499
500
501 /**
502  * {@inheritDoc}
503  */
504 static gpointer gee_abstract_sorted_set_real_ceil (GeeAbstractSortedSet* self, gconstpointer element) {
505         g_critical ("Type `%s' does not implement abstract method `gee_abstract_sorted_set_ceil'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
506         return NULL;
507 }
508
509
510 gpointer gee_abstract_sorted_set_ceil (GeeAbstractSortedSet* self, gconstpointer element) {
511         g_return_val_if_fail (self != NULL, NULL);
512         return GEE_ABSTRACT_SORTED_SET_GET_CLASS (self)->ceil (self, element);
513 }
514
515
516 /**
517  * {@inheritDoc}
518  */
519 static GeeSortedSet* gee_abstract_sorted_set_real_head_set (GeeAbstractSortedSet* self, gconstpointer before) {
520         g_critical ("Type `%s' does not implement abstract method `gee_abstract_sorted_set_head_set'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
521         return NULL;
522 }
523
524
525 GeeSortedSet* gee_abstract_sorted_set_head_set (GeeAbstractSortedSet* self, gconstpointer before) {
526         g_return_val_if_fail (self != NULL, NULL);
527         return GEE_ABSTRACT_SORTED_SET_GET_CLASS (self)->head_set (self, before);
528 }
529
530
531 /**
532  * {@inheritDoc}
533  */
534 static GeeSortedSet* gee_abstract_sorted_set_real_tail_set (GeeAbstractSortedSet* self, gconstpointer after) {
535         g_critical ("Type `%s' does not implement abstract method `gee_abstract_sorted_set_tail_set'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
536         return NULL;
537 }
538
539
540 GeeSortedSet* gee_abstract_sorted_set_tail_set (GeeAbstractSortedSet* self, gconstpointer after) {
541         g_return_val_if_fail (self != NULL, NULL);
542         return GEE_ABSTRACT_SORTED_SET_GET_CLASS (self)->tail_set (self, after);
543 }
544
545
546 /**
547  * {@inheritDoc}
548  */
549 static GeeSortedSet* gee_abstract_sorted_set_real_sub_set (GeeAbstractSortedSet* self, gconstpointer from, gconstpointer to) {
550         g_critical ("Type `%s' does not implement abstract method `gee_abstract_sorted_set_sub_set'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
551         return NULL;
552 }
553
554
555 GeeSortedSet* gee_abstract_sorted_set_sub_set (GeeAbstractSortedSet* self, gconstpointer from, gconstpointer to) {
556         g_return_val_if_fail (self != NULL, NULL);
557         return GEE_ABSTRACT_SORTED_SET_GET_CLASS (self)->sub_set (self, from, to);
558 }
559
560
561 static void gee_abstract_sorted_set_real_reserved0 (GeeAbstractSortedSet* self) {
562 }
563
564
565 void gee_abstract_sorted_set_reserved0 (GeeAbstractSortedSet* self) {
566         g_return_if_fail (self != NULL);
567         GEE_ABSTRACT_SORTED_SET_GET_CLASS (self)->reserved0 (self);
568 }
569
570
571 static void gee_abstract_sorted_set_real_reserved1 (GeeAbstractSortedSet* self) {
572 }
573
574
575 void gee_abstract_sorted_set_reserved1 (GeeAbstractSortedSet* self) {
576         g_return_if_fail (self != NULL);
577         GEE_ABSTRACT_SORTED_SET_GET_CLASS (self)->reserved1 (self);
578 }
579
580
581 static void gee_abstract_sorted_set_real_reserved2 (GeeAbstractSortedSet* self) {
582 }
583
584
585 void gee_abstract_sorted_set_reserved2 (GeeAbstractSortedSet* self) {
586         g_return_if_fail (self != NULL);
587         GEE_ABSTRACT_SORTED_SET_GET_CLASS (self)->reserved2 (self);
588 }
589
590
591 static void gee_abstract_sorted_set_real_reserved3 (GeeAbstractSortedSet* self) {
592 }
593
594
595 void gee_abstract_sorted_set_reserved3 (GeeAbstractSortedSet* self) {
596         g_return_if_fail (self != NULL);
597         GEE_ABSTRACT_SORTED_SET_GET_CLASS (self)->reserved3 (self);
598 }
599
600
601 static void gee_abstract_sorted_set_real_reserved4 (GeeAbstractSortedSet* self) {
602 }
603
604
605 void gee_abstract_sorted_set_reserved4 (GeeAbstractSortedSet* self) {
606         g_return_if_fail (self != NULL);
607         GEE_ABSTRACT_SORTED_SET_GET_CLASS (self)->reserved4 (self);
608 }
609
610
611 static void gee_abstract_sorted_set_real_reserved5 (GeeAbstractSortedSet* self) {
612 }
613
614
615 void gee_abstract_sorted_set_reserved5 (GeeAbstractSortedSet* self) {
616         g_return_if_fail (self != NULL);
617         GEE_ABSTRACT_SORTED_SET_GET_CLASS (self)->reserved5 (self);
618 }
619
620
621 static void gee_abstract_sorted_set_real_reserved6 (GeeAbstractSortedSet* self) {
622 }
623
624
625 void gee_abstract_sorted_set_reserved6 (GeeAbstractSortedSet* self) {
626         g_return_if_fail (self != NULL);
627         GEE_ABSTRACT_SORTED_SET_GET_CLASS (self)->reserved6 (self);
628 }
629
630
631 static void gee_abstract_sorted_set_real_reserved7 (GeeAbstractSortedSet* self) {
632 }
633
634
635 void gee_abstract_sorted_set_reserved7 (GeeAbstractSortedSet* self) {
636         g_return_if_fail (self != NULL);
637         GEE_ABSTRACT_SORTED_SET_GET_CLASS (self)->reserved7 (self);
638 }
639
640
641 static void gee_abstract_sorted_set_real_reserved8 (GeeAbstractSortedSet* self) {
642 }
643
644
645 void gee_abstract_sorted_set_reserved8 (GeeAbstractSortedSet* self) {
646         g_return_if_fail (self != NULL);
647         GEE_ABSTRACT_SORTED_SET_GET_CLASS (self)->reserved8 (self);
648 }
649
650
651 static void gee_abstract_sorted_set_real_reserved9 (GeeAbstractSortedSet* self) {
652 }
653
654
655 void gee_abstract_sorted_set_reserved9 (GeeAbstractSortedSet* self) {
656         g_return_if_fail (self != NULL);
657         GEE_ABSTRACT_SORTED_SET_GET_CLASS (self)->reserved9 (self);
658 }
659
660
661 GeeAbstractSortedSet* gee_abstract_sorted_set_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func) {
662         GeeAbstractSortedSet * self = NULL;
663         self = (GeeAbstractSortedSet*) gee_abstract_set_construct (object_type, g_type, (GBoxedCopyFunc) g_dup_func, g_destroy_func);
664         self->priv->g_type = g_type;
665         self->priv->g_dup_func = g_dup_func;
666         self->priv->g_destroy_func = g_destroy_func;
667         return self;
668 }
669
670
671 GeeSortedSet* gee_abstract_sorted_set_get_read_only_view (GeeAbstractSortedSet* self) {
672         g_return_val_if_fail (self != NULL, NULL);
673         return GEE_ABSTRACT_SORTED_SET_GET_CLASS (self)->get_read_only_view (self);
674 }
675
676
677 static gpointer _g_object_ref0 (gpointer self) {
678         return self ? g_object_ref (self) : NULL;
679 }
680
681
682 static GeeSortedSet* gee_abstract_sorted_set_real_get_read_only_view (GeeAbstractSortedSet* base) {
683         GeeSortedSet* result;
684         GeeAbstractSortedSet* self;
685         GeeSortedSet* _tmp0_;
686         GeeSortedSet* _tmp1_;
687         GeeSortedSet* instance;
688         GeeSortedSet* _tmp2_;
689         self = base;
690         _tmp0_ = self->priv->_read_only_view;
691         _tmp1_ = _g_object_ref0 (_tmp0_);
692         instance = _tmp1_;
693         _tmp2_ = self->priv->_read_only_view;
694         if (_tmp2_ == NULL) {
695                 GeeReadOnlySortedSet* _tmp3_;
696                 GeeSortedSet* _tmp4_;
697                 GeeSortedSet* _tmp5_;
698                 _tmp3_ = gee_read_only_sorted_set_new (self->priv->g_type, (GBoxedCopyFunc) self->priv->g_dup_func, self->priv->g_destroy_func, (GeeSortedSet*) self);
699                 _g_object_unref0 (instance);
700                 instance = (GeeSortedSet*) _tmp3_;
701                 _tmp4_ = instance;
702                 self->priv->_read_only_view = _tmp4_;
703                 _tmp5_ = instance;
704                 g_object_add_weak_pointer ((GObject*) _tmp5_, (void**) (&self->priv->_read_only_view));
705         }
706         result = instance;
707         return result;
708 }
709
710
711 static void gee_abstract_sorted_set_class_init (GeeAbstractSortedSetClass * klass) {
712         gee_abstract_sorted_set_parent_class = g_type_class_peek_parent (klass);
713         g_type_class_add_private (klass, sizeof (GeeAbstractSortedSetPrivate));
714         GEE_ABSTRACT_SORTED_SET_CLASS (klass)->first = gee_abstract_sorted_set_real_first;
715         GEE_ABSTRACT_SORTED_SET_CLASS (klass)->last = gee_abstract_sorted_set_real_last;
716         GEE_ABSTRACT_SORTED_SET_CLASS (klass)->iterator_at = gee_abstract_sorted_set_real_iterator_at;
717         GEE_ABSTRACT_SORTED_SET_CLASS (klass)->lower = gee_abstract_sorted_set_real_lower;
718         GEE_ABSTRACT_SORTED_SET_CLASS (klass)->higher = gee_abstract_sorted_set_real_higher;
719         GEE_ABSTRACT_SORTED_SET_CLASS (klass)->floor = gee_abstract_sorted_set_real_floor;
720         GEE_ABSTRACT_SORTED_SET_CLASS (klass)->ceil = gee_abstract_sorted_set_real_ceil;
721         GEE_ABSTRACT_SORTED_SET_CLASS (klass)->head_set = gee_abstract_sorted_set_real_head_set;
722         GEE_ABSTRACT_SORTED_SET_CLASS (klass)->tail_set = gee_abstract_sorted_set_real_tail_set;
723         GEE_ABSTRACT_SORTED_SET_CLASS (klass)->sub_set = gee_abstract_sorted_set_real_sub_set;
724         GEE_ABSTRACT_SORTED_SET_CLASS (klass)->reserved0 = gee_abstract_sorted_set_real_reserved0;
725         GEE_ABSTRACT_SORTED_SET_CLASS (klass)->reserved1 = gee_abstract_sorted_set_real_reserved1;
726         GEE_ABSTRACT_SORTED_SET_CLASS (klass)->reserved2 = gee_abstract_sorted_set_real_reserved2;
727         GEE_ABSTRACT_SORTED_SET_CLASS (klass)->reserved3 = gee_abstract_sorted_set_real_reserved3;
728         GEE_ABSTRACT_SORTED_SET_CLASS (klass)->reserved4 = gee_abstract_sorted_set_real_reserved4;
729         GEE_ABSTRACT_SORTED_SET_CLASS (klass)->reserved5 = gee_abstract_sorted_set_real_reserved5;
730         GEE_ABSTRACT_SORTED_SET_CLASS (klass)->reserved6 = gee_abstract_sorted_set_real_reserved6;
731         GEE_ABSTRACT_SORTED_SET_CLASS (klass)->reserved7 = gee_abstract_sorted_set_real_reserved7;
732         GEE_ABSTRACT_SORTED_SET_CLASS (klass)->reserved8 = gee_abstract_sorted_set_real_reserved8;
733         GEE_ABSTRACT_SORTED_SET_CLASS (klass)->reserved9 = gee_abstract_sorted_set_real_reserved9;
734         GEE_ABSTRACT_SORTED_SET_CLASS (klass)->get_read_only_view = gee_abstract_sorted_set_real_get_read_only_view;
735         G_OBJECT_CLASS (klass)->get_property = _vala_gee_abstract_sorted_set_get_property;
736         G_OBJECT_CLASS (klass)->set_property = _vala_gee_abstract_sorted_set_set_property;
737         G_OBJECT_CLASS (klass)->finalize = gee_abstract_sorted_set_finalize;
738         g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_ABSTRACT_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));
739         g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_ABSTRACT_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));
740         g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_ABSTRACT_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));
741         /**
742          * {@inheritDoc}
743          */
744         g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_ABSTRACT_SORTED_SET_READ_ONLY_VIEW, g_param_spec_object ("read-only-view", "read-only-view", "read-only-view", GEE_TYPE_SORTED_SET, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
745 }
746
747
748 static GType gee_abstract_sorted_set_gee_sorted_set_get_g_type (GeeAbstractSortedSet* self) {
749         return self->priv->g_type;
750 }
751
752
753 static GBoxedCopyFunc gee_abstract_sorted_set_gee_sorted_set_get_g_dup_func (GeeAbstractSortedSet* self) {
754         return self->priv->g_dup_func;
755 }
756
757
758 static GDestroyNotify gee_abstract_sorted_set_gee_sorted_set_get_g_destroy_func (GeeAbstractSortedSet* self) {
759         return self->priv->g_destroy_func;
760 }
761
762
763 static void gee_abstract_sorted_set_gee_sorted_set_interface_init (GeeSortedSetIface * iface) {
764         gee_abstract_sorted_set_gee_sorted_set_parent_iface = g_type_interface_peek_parent (iface);
765         iface->first = (gpointer (*)(GeeSortedSet*)) gee_abstract_sorted_set_first;
766         iface->last = (gpointer (*)(GeeSortedSet*)) gee_abstract_sorted_set_last;
767         iface->iterator_at = (GeeIterator* (*)(GeeSortedSet*, gconstpointer)) gee_abstract_sorted_set_iterator_at;
768         iface->lower = (gpointer (*)(GeeSortedSet*, gconstpointer)) gee_abstract_sorted_set_lower;
769         iface->higher = (gpointer (*)(GeeSortedSet*, gconstpointer)) gee_abstract_sorted_set_higher;
770         iface->floor = (gpointer (*)(GeeSortedSet*, gconstpointer)) gee_abstract_sorted_set_floor;
771         iface->ceil = (gpointer (*)(GeeSortedSet*, gconstpointer)) gee_abstract_sorted_set_ceil;
772         iface->head_set = (GeeSortedSet* (*)(GeeSortedSet*, gconstpointer)) gee_abstract_sorted_set_head_set;
773         iface->tail_set = (GeeSortedSet* (*)(GeeSortedSet*, gconstpointer)) gee_abstract_sorted_set_tail_set;
774         iface->sub_set = (GeeSortedSet* (*)(GeeSortedSet*, gconstpointer, gconstpointer)) gee_abstract_sorted_set_sub_set;
775         iface->get_g_type = (GType(*)(GeeSortedSet*)) gee_abstract_sorted_set_gee_sorted_set_get_g_type;
776         iface->get_g_dup_func = (GBoxedCopyFunc(*)(GeeSortedSet*)) gee_abstract_sorted_set_gee_sorted_set_get_g_dup_func;
777         iface->get_g_destroy_func = (GDestroyNotify(*)(GeeSortedSet*)) gee_abstract_sorted_set_gee_sorted_set_get_g_destroy_func;
778         iface->get_read_only_view = (GeeSortedSet* (*) (GeeSortedSet *)) gee_abstract_sorted_set_get_read_only_view;
779 }
780
781
782 static void gee_abstract_sorted_set_instance_init (GeeAbstractSortedSet * self) {
783         self->priv = GEE_ABSTRACT_SORTED_SET_GET_PRIVATE (self);
784 }
785
786
787 static void gee_abstract_sorted_set_finalize (GObject* obj) {
788         GeeAbstractSortedSet * self;
789         self = G_TYPE_CHECK_INSTANCE_CAST (obj, GEE_TYPE_ABSTRACT_SORTED_SET, GeeAbstractSortedSet);
790         G_OBJECT_CLASS (gee_abstract_sorted_set_parent_class)->finalize (obj);
791 }
792
793
794 /**
795  * Skeletal implementation of the {@link SortedSet} interface.
796  *
797  * Contains common code shared by all set implementations.
798  *
799  * @see TreeSet
800  */
801 GType gee_abstract_sorted_set_get_type (void) {
802         static volatile gsize gee_abstract_sorted_set_type_id__volatile = 0;
803         if (g_once_init_enter (&gee_abstract_sorted_set_type_id__volatile)) {
804                 static const GTypeInfo g_define_type_info = { sizeof (GeeAbstractSortedSetClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_abstract_sorted_set_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeAbstractSortedSet), 0, (GInstanceInitFunc) gee_abstract_sorted_set_instance_init, NULL };
805                 static const GInterfaceInfo gee_sorted_set_info = { (GInterfaceInitFunc) gee_abstract_sorted_set_gee_sorted_set_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
806                 GType gee_abstract_sorted_set_type_id;
807                 gee_abstract_sorted_set_type_id = g_type_register_static (GEE_TYPE_ABSTRACT_SET, "GeeAbstractSortedSet", &g_define_type_info, G_TYPE_FLAG_ABSTRACT);
808                 g_type_add_interface_static (gee_abstract_sorted_set_type_id, GEE_TYPE_SORTED_SET, &gee_sorted_set_info);
809                 g_once_init_leave (&gee_abstract_sorted_set_type_id__volatile, gee_abstract_sorted_set_type_id);
810         }
811         return gee_abstract_sorted_set_type_id__volatile;
812 }
813
814
815 static void _vala_gee_abstract_sorted_set_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
816         GeeAbstractSortedSet * self;
817         self = G_TYPE_CHECK_INSTANCE_CAST (object, GEE_TYPE_ABSTRACT_SORTED_SET, GeeAbstractSortedSet);
818         switch (property_id) {
819                 case GEE_ABSTRACT_SORTED_SET_READ_ONLY_VIEW:
820                 g_value_take_object (value, gee_abstract_sorted_set_get_read_only_view (self));
821                 break;
822                 default:
823                 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
824                 break;
825         }
826 }
827
828
829 static void _vala_gee_abstract_sorted_set_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
830         GeeAbstractSortedSet * self;
831         self = G_TYPE_CHECK_INSTANCE_CAST (object, GEE_TYPE_ABSTRACT_SORTED_SET, GeeAbstractSortedSet);
832         switch (property_id) {
833                 case GEE_ABSTRACT_SORTED_SET_G_TYPE:
834                 self->priv->g_type = g_value_get_gtype (value);
835                 break;
836                 case GEE_ABSTRACT_SORTED_SET_G_DUP_FUNC:
837                 self->priv->g_dup_func = g_value_get_pointer (value);
838                 break;
839                 case GEE_ABSTRACT_SORTED_SET_G_DESTROY_FUNC:
840                 self->priv->g_destroy_func = g_value_get_pointer (value);
841                 break;
842                 default:
843                 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
844                 break;
845         }
846 }
847
848
849