1 /* readonlybidirsortedset.c generated by valac 0.46.6, 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-object.h>
27 #include <glib.h>
28 
29 #define GEE_TYPE_TRAVERSABLE (gee_traversable_get_type ())
30 #define GEE_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversable))
31 #define GEE_IS_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_TRAVERSABLE))
32 #define GEE_TRAVERSABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversableIface))
33 
34 typedef struct _GeeTraversable GeeTraversable;
35 typedef struct _GeeTraversableIface GeeTraversableIface;
36 typedef gboolean (*GeeForallFunc) (gpointer g, gpointer user_data);
37 typedef enum  {
38 	GEE_TRAVERSABLE_STREAM_YIELD,
39 	GEE_TRAVERSABLE_STREAM_CONTINUE,
40 	GEE_TRAVERSABLE_STREAM_END,
41 	GEE_TRAVERSABLE_STREAM_WAIT
42 } GeeTraversableStream;
43 
44 #define GEE_TRAVERSABLE_TYPE_STREAM (gee_traversable_stream_get_type ())
45 
46 #define GEE_TYPE_LAZY (gee_lazy_get_type ())
47 #define GEE_LAZY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LAZY, GeeLazy))
48 #define GEE_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_LAZY, GeeLazyClass))
49 #define GEE_IS_LAZY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LAZY))
50 #define GEE_IS_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_LAZY))
51 #define GEE_LAZY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_LAZY, GeeLazyClass))
52 
53 typedef struct _GeeLazy GeeLazy;
54 typedef struct _GeeLazyClass GeeLazyClass;
55 typedef GeeTraversableStream (*GeeStreamFunc) (GeeTraversableStream state, GeeLazy* g, GeeLazy* * lazy, gpointer user_data);
56 
57 #define GEE_TYPE_ITERATOR (gee_iterator_get_type ())
58 #define GEE_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERATOR, GeeIterator))
59 #define GEE_IS_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERATOR))
60 #define GEE_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERATOR, GeeIteratorIface))
61 
62 typedef struct _GeeIterator GeeIterator;
63 typedef struct _GeeIteratorIface GeeIteratorIface;
64 typedef gpointer (*GeeFoldFunc) (gpointer g, gpointer a, gpointer user_data);
65 typedef gpointer (*GeeMapFunc) (gpointer g, gpointer user_data);
66 typedef gboolean (*GeePredicate) (gconstpointer g, gpointer user_data);
67 typedef GeeIterator* (*GeeFlatMapFunc) (gpointer g, gpointer user_data);
68 
69 #define GEE_TYPE_ITERABLE (gee_iterable_get_type ())
70 #define GEE_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERABLE, GeeIterable))
71 #define GEE_IS_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERABLE))
72 #define GEE_ITERABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERABLE, GeeIterableIface))
73 
74 typedef struct _GeeIterable GeeIterable;
75 typedef struct _GeeIterableIface GeeIterableIface;
76 
77 #define GEE_TYPE_COLLECTION (gee_collection_get_type ())
78 #define GEE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_COLLECTION, GeeCollection))
79 #define GEE_IS_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_COLLECTION))
80 #define GEE_COLLECTION_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_COLLECTION, GeeCollectionIface))
81 
82 typedef struct _GeeCollection GeeCollection;
83 typedef struct _GeeCollectionIface GeeCollectionIface;
84 
85 #define GEE_TYPE_READ_ONLY_COLLECTION (gee_read_only_collection_get_type ())
86 #define GEE_READ_ONLY_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_READ_ONLY_COLLECTION, GeeReadOnlyCollection))
87 #define GEE_READ_ONLY_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_READ_ONLY_COLLECTION, GeeReadOnlyCollectionClass))
88 #define GEE_IS_READ_ONLY_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_READ_ONLY_COLLECTION))
89 #define GEE_IS_READ_ONLY_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_READ_ONLY_COLLECTION))
90 #define GEE_READ_ONLY_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_READ_ONLY_COLLECTION, GeeReadOnlyCollectionClass))
91 
92 typedef struct _GeeReadOnlyCollection GeeReadOnlyCollection;
93 typedef struct _GeeReadOnlyCollectionClass GeeReadOnlyCollectionClass;
94 typedef struct _GeeReadOnlyCollectionPrivate GeeReadOnlyCollectionPrivate;
95 
96 #define GEE_TYPE_SET (gee_set_get_type ())
97 #define GEE_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_SET, GeeSet))
98 #define GEE_IS_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_SET))
99 #define GEE_SET_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_SET, GeeSetIface))
100 
101 typedef struct _GeeSet GeeSet;
102 typedef struct _GeeSetIface GeeSetIface;
103 
104 #define GEE_TYPE_READ_ONLY_SET (gee_read_only_set_get_type ())
105 #define GEE_READ_ONLY_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_READ_ONLY_SET, GeeReadOnlySet))
106 #define GEE_READ_ONLY_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_READ_ONLY_SET, GeeReadOnlySetClass))
107 #define GEE_IS_READ_ONLY_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_READ_ONLY_SET))
108 #define GEE_IS_READ_ONLY_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_READ_ONLY_SET))
109 #define GEE_READ_ONLY_SET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_READ_ONLY_SET, GeeReadOnlySetClass))
110 
111 typedef struct _GeeReadOnlySet GeeReadOnlySet;
112 typedef struct _GeeReadOnlySetClass GeeReadOnlySetClass;
113 typedef struct _GeeReadOnlySetPrivate GeeReadOnlySetPrivate;
114 
115 #define GEE_TYPE_SORTED_SET (gee_sorted_set_get_type ())
116 #define GEE_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_SORTED_SET, GeeSortedSet))
117 #define GEE_IS_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_SORTED_SET))
118 #define GEE_SORTED_SET_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_SORTED_SET, GeeSortedSetIface))
119 
120 typedef struct _GeeSortedSet GeeSortedSet;
121 typedef struct _GeeSortedSetIface GeeSortedSetIface;
122 
123 #define GEE_TYPE_READ_ONLY_SORTED_SET (gee_read_only_sorted_set_get_type ())
124 #define GEE_READ_ONLY_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_READ_ONLY_SORTED_SET, GeeReadOnlySortedSet))
125 #define GEE_READ_ONLY_SORTED_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_READ_ONLY_SORTED_SET, GeeReadOnlySortedSetClass))
126 #define GEE_IS_READ_ONLY_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_READ_ONLY_SORTED_SET))
127 #define GEE_IS_READ_ONLY_SORTED_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_READ_ONLY_SORTED_SET))
128 #define GEE_READ_ONLY_SORTED_SET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_READ_ONLY_SORTED_SET, GeeReadOnlySortedSetClass))
129 
130 typedef struct _GeeReadOnlySortedSet GeeReadOnlySortedSet;
131 typedef struct _GeeReadOnlySortedSetClass GeeReadOnlySortedSetClass;
132 typedef struct _GeeReadOnlySortedSetPrivate GeeReadOnlySortedSetPrivate;
133 
134 #define GEE_TYPE_BIDIR_SORTED_SET (gee_bidir_sorted_set_get_type ())
135 #define GEE_BIDIR_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_BIDIR_SORTED_SET, GeeBidirSortedSet))
136 #define GEE_IS_BIDIR_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_BIDIR_SORTED_SET))
137 #define GEE_BIDIR_SORTED_SET_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_BIDIR_SORTED_SET, GeeBidirSortedSetIface))
138 
139 typedef struct _GeeBidirSortedSet GeeBidirSortedSet;
140 typedef struct _GeeBidirSortedSetIface GeeBidirSortedSetIface;
141 
142 #define GEE_TYPE_BIDIR_ITERATOR (gee_bidir_iterator_get_type ())
143 #define GEE_BIDIR_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_BIDIR_ITERATOR, GeeBidirIterator))
144 #define GEE_IS_BIDIR_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_BIDIR_ITERATOR))
145 #define GEE_BIDIR_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_BIDIR_ITERATOR, GeeBidirIteratorIface))
146 
147 typedef struct _GeeBidirIterator GeeBidirIterator;
148 typedef struct _GeeBidirIteratorIface GeeBidirIteratorIface;
149 
150 #define GEE_TYPE_READ_ONLY_BIDIR_SORTED_SET (gee_read_only_bidir_sorted_set_get_type ())
151 #define GEE_READ_ONLY_BIDIR_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_READ_ONLY_BIDIR_SORTED_SET, GeeReadOnlyBidirSortedSet))
152 #define GEE_READ_ONLY_BIDIR_SORTED_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_READ_ONLY_BIDIR_SORTED_SET, GeeReadOnlyBidirSortedSetClass))
153 #define GEE_IS_READ_ONLY_BIDIR_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_READ_ONLY_BIDIR_SORTED_SET))
154 #define GEE_IS_READ_ONLY_BIDIR_SORTED_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_READ_ONLY_BIDIR_SORTED_SET))
155 #define GEE_READ_ONLY_BIDIR_SORTED_SET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_READ_ONLY_BIDIR_SORTED_SET, GeeReadOnlyBidirSortedSetClass))
156 
157 typedef struct _GeeReadOnlyBidirSortedSet GeeReadOnlyBidirSortedSet;
158 typedef struct _GeeReadOnlyBidirSortedSetClass GeeReadOnlyBidirSortedSetClass;
159 typedef struct _GeeReadOnlyBidirSortedSetPrivate GeeReadOnlyBidirSortedSetPrivate;
160 enum  {
161 	GEE_READ_ONLY_BIDIR_SORTED_SET_0_PROPERTY,
162 	GEE_READ_ONLY_BIDIR_SORTED_SET_G_TYPE,
163 	GEE_READ_ONLY_BIDIR_SORTED_SET_G_DUP_FUNC,
164 	GEE_READ_ONLY_BIDIR_SORTED_SET_G_DESTROY_FUNC,
165 	GEE_READ_ONLY_BIDIR_SORTED_SET_NUM_PROPERTIES
166 };
167 static GParamSpec* gee_read_only_bidir_sorted_set_properties[GEE_READ_ONLY_BIDIR_SORTED_SET_NUM_PROPERTIES];
168 
169 #define GEE_READ_ONLY_COLLECTION_TYPE_ITERATOR (gee_read_only_collection_iterator_get_type ())
170 #define GEE_READ_ONLY_COLLECTION_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_READ_ONLY_COLLECTION_TYPE_ITERATOR, GeeReadOnlyCollectionIterator))
171 #define GEE_READ_ONLY_COLLECTION_ITERATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_READ_ONLY_COLLECTION_TYPE_ITERATOR, GeeReadOnlyCollectionIteratorClass))
172 #define GEE_READ_ONLY_COLLECTION_IS_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_READ_ONLY_COLLECTION_TYPE_ITERATOR))
173 #define GEE_READ_ONLY_COLLECTION_IS_ITERATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_READ_ONLY_COLLECTION_TYPE_ITERATOR))
174 #define GEE_READ_ONLY_COLLECTION_ITERATOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_READ_ONLY_COLLECTION_TYPE_ITERATOR, GeeReadOnlyCollectionIteratorClass))
175 
176 typedef struct _GeeReadOnlyCollectionIterator GeeReadOnlyCollectionIterator;
177 typedef struct _GeeReadOnlyCollectionIteratorClass GeeReadOnlyCollectionIteratorClass;
178 
179 #define GEE_READ_ONLY_BIDIR_SORTED_SET_TYPE_BIDIR_ITERATOR (gee_read_only_bidir_sorted_set_bidir_iterator_get_type ())
180 #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))
181 #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))
182 #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))
183 #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))
184 #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))
185 
186 typedef struct _GeeReadOnlyBidirSortedSetBidirIterator GeeReadOnlyBidirSortedSetBidirIterator;
187 typedef struct _GeeReadOnlyBidirSortedSetBidirIteratorClass GeeReadOnlyBidirSortedSetBidirIteratorClass;
188 #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
189 typedef struct _GeeReadOnlyCollectionIteratorPrivate GeeReadOnlyCollectionIteratorPrivate;
190 typedef struct _GeeReadOnlyBidirSortedSetBidirIteratorPrivate GeeReadOnlyBidirSortedSetBidirIteratorPrivate;
191 enum  {
192 	GEE_READ_ONLY_BIDIR_SORTED_SET_BIDIR_ITERATOR_0_PROPERTY,
193 	GEE_READ_ONLY_BIDIR_SORTED_SET_BIDIR_ITERATOR_G_TYPE,
194 	GEE_READ_ONLY_BIDIR_SORTED_SET_BIDIR_ITERATOR_G_DUP_FUNC,
195 	GEE_READ_ONLY_BIDIR_SORTED_SET_BIDIR_ITERATOR_G_DESTROY_FUNC,
196 	GEE_READ_ONLY_BIDIR_SORTED_SET_BIDIR_ITERATOR_NUM_PROPERTIES
197 };
198 static GParamSpec* gee_read_only_bidir_sorted_set_bidir_iterator_properties[GEE_READ_ONLY_BIDIR_SORTED_SET_BIDIR_ITERATOR_NUM_PROPERTIES];
199 
200 struct _GeeIteratorIface {
201 	GTypeInterface parent_iface;
202 	gboolean (*next) (GeeIterator* self);
203 	gboolean (*has_next) (GeeIterator* self);
204 	gpointer (*get) (GeeIterator* self);
205 	void (*remove) (GeeIterator* self);
206 	gboolean (*get_valid) (GeeIterator* self);
207 	gboolean (*get_read_only) (GeeIterator* self);
208 };
209 
210 struct _GeeTraversableIface {
211 	GTypeInterface parent_iface;
212 	GType (*get_g_type) (GeeTraversable* self);
213 	GBoxedCopyFunc (*get_g_dup_func) (GeeTraversable* self);
214 	GDestroyNotify (*get_g_destroy_func) (GeeTraversable* self);
215 	gboolean (*foreach) (GeeTraversable* self, GeeForallFunc f, gpointer f_target);
216 	GeeIterator* (*stream) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeStreamFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify);
217 	gpointer (*fold) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed);
218 	GeeIterator* (*map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeMapFunc f, gpointer f_target);
219 	GeeIterator* (*scan) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed);
220 	GeeIterator* (*filter) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify);
221 	GeeIterator* (*chop) (GeeTraversable* self, gint offset, gint length);
222 	GType (*get_element_type) (GeeTraversable* self);
223 	GeeIterator* (*flat_map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFlatMapFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify);
224 	GeeIterator** (*tee) (GeeTraversable* self, guint forks, gint* result_length1);
225 	gpointer (*first_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify);
226 	gboolean (*any_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify);
227 	gboolean (*all_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify);
228 	gpointer (*max) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify);
229 	gpointer (*min) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify);
230 	GeeIterator* (*order_by) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify);
231 };
232 
233 struct _GeeIterableIface {
234 	GTypeInterface parent_iface;
235 	GType (*get_g_type) (GeeIterable* self);
236 	GBoxedCopyFunc (*get_g_dup_func) (GeeIterable* self);
237 	GDestroyNotify (*get_g_destroy_func) (GeeIterable* self);
238 	GeeIterator* (*iterator) (GeeIterable* self);
239 };
240 
241 struct _GeeCollectionIface {
242 	GTypeInterface parent_iface;
243 	GType (*get_g_type) (GeeCollection* self);
244 	GBoxedCopyFunc (*get_g_dup_func) (GeeCollection* self);
245 	GDestroyNotify (*get_g_destroy_func) (GeeCollection* self);
246 	gboolean (*contains) (GeeCollection* self, gconstpointer item);
247 	gboolean (*add) (GeeCollection* self, gconstpointer item);
248 	gboolean (*remove) (GeeCollection* self, gconstpointer item);
249 	void (*clear) (GeeCollection* self);
250 	gboolean (*add_all) (GeeCollection* self, GeeCollection* collection);
251 	gboolean (*contains_all) (GeeCollection* self, GeeCollection* collection);
252 	gboolean (*remove_all) (GeeCollection* self, GeeCollection* collection);
253 	gboolean (*retain_all) (GeeCollection* self, GeeCollection* collection);
254 	gpointer* (*to_array) (GeeCollection* self, gint* result_length1);
255 	gint (*get_size) (GeeCollection* self);
256 	gboolean (*get_is_empty) (GeeCollection* self);
257 	gboolean (*get_read_only) (GeeCollection* self);
258 	GeeCollection* (*get_read_only_view) (GeeCollection* self);
259 	gboolean (*add_all_array) (GeeCollection* self, gpointer* array, gint array_length1);
260 	gboolean (*contains_all_array) (GeeCollection* self, gpointer* array, gint array_length1);
261 	gboolean (*remove_all_array) (GeeCollection* self, gpointer* array, gint array_length1);
262 	gboolean (*add_all_iterator) (GeeCollection* self, GeeIterator* iter);
263 	gboolean (*contains_all_iterator) (GeeCollection* self, GeeIterator* iter);
264 	gboolean (*remove_all_iterator) (GeeCollection* self, GeeIterator* iter);
265 };
266 
267 struct _GeeReadOnlyCollection {
268 	GObject parent_instance;
269 	GeeReadOnlyCollectionPrivate * priv;
270 	GeeCollection* _collection;
271 };
272 
273 struct _GeeReadOnlyCollectionClass {
274 	GObjectClass parent_class;
275 	GeeCollection* (*get_read_only_view) (GeeReadOnlyCollection* self);
276 };
277 
278 struct _GeeSetIface {
279 	GTypeInterface parent_iface;
280 	GType (*get_g_type) (GeeSet* self);
281 	GBoxedCopyFunc (*get_g_dup_func) (GeeSet* self);
282 	GDestroyNotify (*get_g_destroy_func) (GeeSet* self);
283 	GeeSet* (*get_read_only_view) (GeeSet* self);
284 };
285 
286 struct _GeeReadOnlySet {
287 	GeeReadOnlyCollection parent_instance;
288 	GeeReadOnlySetPrivate * priv;
289 };
290 
291 struct _GeeReadOnlySetClass {
292 	GeeReadOnlyCollectionClass parent_class;
293 	GeeSet* (*get_read_only_view) (GeeReadOnlySet* self);
294 };
295 
296 struct _GeeSortedSetIface {
297 	GTypeInterface parent_iface;
298 	GType (*get_g_type) (GeeSortedSet* self);
299 	GBoxedCopyFunc (*get_g_dup_func) (GeeSortedSet* self);
300 	GDestroyNotify (*get_g_destroy_func) (GeeSortedSet* self);
301 	gpointer (*first) (GeeSortedSet* self);
302 	gpointer (*last) (GeeSortedSet* self);
303 	GeeIterator* (*iterator_at) (GeeSortedSet* self, gconstpointer element);
304 	gpointer (*lower) (GeeSortedSet* self, gconstpointer element);
305 	gpointer (*higher) (GeeSortedSet* self, gconstpointer element);
306 	gpointer (*floor) (GeeSortedSet* self, gconstpointer element);
307 	gpointer (*ceil) (GeeSortedSet* self, gconstpointer element);
308 	GeeSortedSet* (*head_set) (GeeSortedSet* self, gconstpointer before);
309 	GeeSortedSet* (*tail_set) (GeeSortedSet* self, gconstpointer after);
310 	GeeSortedSet* (*sub_set) (GeeSortedSet* self, gconstpointer from, gconstpointer to);
311 	GeeSortedSet* (*get_read_only_view) (GeeSortedSet* self);
312 };
313 
314 struct _GeeReadOnlySortedSet {
315 	GeeReadOnlySet parent_instance;
316 	GeeReadOnlySortedSetPrivate * priv;
317 };
318 
319 struct _GeeReadOnlySortedSetClass {
320 	GeeReadOnlySetClass parent_class;
321 };
322 
323 struct _GeeBidirIteratorIface {
324 	GTypeInterface parent_iface;
325 	GType (*get_g_type) (GeeBidirIterator* self);
326 	GBoxedCopyFunc (*get_g_dup_func) (GeeBidirIterator* self);
327 	GDestroyNotify (*get_g_destroy_func) (GeeBidirIterator* self);
328 	gboolean (*previous) (GeeBidirIterator* self);
329 	gboolean (*has_previous) (GeeBidirIterator* self);
330 	gboolean (*first) (GeeBidirIterator* self);
331 	gboolean (*last) (GeeBidirIterator* self);
332 };
333 
334 struct _GeeBidirSortedSetIface {
335 	GTypeInterface parent_iface;
336 	GType (*get_g_type) (GeeBidirSortedSet* self);
337 	GBoxedCopyFunc (*get_g_dup_func) (GeeBidirSortedSet* self);
338 	GDestroyNotify (*get_g_destroy_func) (GeeBidirSortedSet* self);
339 	GeeBidirIterator* (*bidir_iterator) (GeeBidirSortedSet* self);
340 	GeeBidirSortedSet* (*get_read_only_view) (GeeBidirSortedSet* self);
341 };
342 
343 struct _GeeReadOnlyBidirSortedSet {
344 	GeeReadOnlySortedSet parent_instance;
345 	GeeReadOnlyBidirSortedSetPrivate * priv;
346 };
347 
348 struct _GeeReadOnlyBidirSortedSetClass {
349 	GeeReadOnlySortedSetClass parent_class;
350 };
351 
352 struct _GeeReadOnlyBidirSortedSetPrivate {
353 	GType g_type;
354 	GBoxedCopyFunc g_dup_func;
355 	GDestroyNotify g_destroy_func;
356 };
357 
358 struct _GeeReadOnlyCollectionIterator {
359 	GObject parent_instance;
360 	GeeReadOnlyCollectionIteratorPrivate * priv;
361 	GeeIterator* _iter;
362 };
363 
364 struct _GeeReadOnlyCollectionIteratorClass {
365 	GObjectClass parent_class;
366 };
367 
368 struct _GeeReadOnlyBidirSortedSetBidirIterator {
369 	GeeReadOnlyCollectionIterator parent_instance;
370 	GeeReadOnlyBidirSortedSetBidirIteratorPrivate * priv;
371 };
372 
373 struct _GeeReadOnlyBidirSortedSetBidirIteratorClass {
374 	GeeReadOnlyCollectionIteratorClass parent_class;
375 };
376 
377 struct _GeeReadOnlyBidirSortedSetBidirIteratorPrivate {
378 	GType g_type;
379 	GBoxedCopyFunc g_dup_func;
380 	GDestroyNotify g_destroy_func;
381 };
382 
383 static gint GeeReadOnlyBidirSortedSet_private_offset;
384 static gpointer gee_read_only_bidir_sorted_set_parent_class = NULL;
385 static gint GeeReadOnlyBidirSortedSetBidirIterator_private_offset;
386 static gpointer gee_read_only_bidir_sorted_set_bidir_iterator_parent_class = NULL;
387 static GeeBidirIteratorIface * gee_read_only_bidir_sorted_set_bidir_iterator_gee_bidir_iterator_parent_iface = NULL;
388 static GeeBidirSortedSetIface * gee_read_only_bidir_sorted_set_gee_bidir_sorted_set_parent_iface = NULL;
389 
390 GType gee_traversable_stream_get_type (void) G_GNUC_CONST;
391 gpointer gee_lazy_ref (gpointer instance);
392 void gee_lazy_unref (gpointer instance);
393 GParamSpec* gee_param_spec_lazy (const gchar* name,
394                                  const gchar* nick,
395                                  const gchar* blurb,
396                                  GType object_type,
397                                  GParamFlags flags);
398 void gee_value_set_lazy (GValue* value,
399                          gpointer v_object);
400 void gee_value_take_lazy (GValue* value,
401                           gpointer v_object);
402 gpointer gee_value_get_lazy (const GValue* value);
403 GType gee_lazy_get_type (void) G_GNUC_CONST;
404 G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeLazy, gee_lazy_unref)
405 GType gee_iterator_get_type (void) G_GNUC_CONST;
406 GType gee_traversable_get_type (void) G_GNUC_CONST;
407 GType gee_iterable_get_type (void) G_GNUC_CONST;
408 GType gee_collection_get_type (void) G_GNUC_CONST;
409 G_GNUC_INTERNAL GType gee_read_only_collection_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
410 G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeReadOnlyCollection, g_object_unref)
411 GType gee_set_get_type (void) G_GNUC_CONST;
412 G_GNUC_INTERNAL GType gee_read_only_set_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
413 G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeReadOnlySet, g_object_unref)
414 GType gee_sorted_set_get_type (void) G_GNUC_CONST;
415 G_GNUC_INTERNAL GType gee_read_only_sorted_set_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
416 G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeReadOnlySortedSet, g_object_unref)
417 GType gee_bidir_iterator_get_type (void) G_GNUC_CONST;
418 GType gee_bidir_sorted_set_get_type (void) G_GNUC_CONST;
419 G_GNUC_INTERNAL GType gee_read_only_bidir_sorted_set_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
420 G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeReadOnlyBidirSortedSet, g_object_unref)
421 G_GNUC_INTERNAL GeeReadOnlyBidirSortedSet* gee_read_only_bidir_sorted_set_new (GType g_type,
422                                                                GBoxedCopyFunc g_dup_func,
423                                                                GDestroyNotify g_destroy_func,
424                                                                GeeBidirSortedSet* set);
425 G_GNUC_INTERNAL GeeReadOnlyBidirSortedSet* gee_read_only_bidir_sorted_set_construct (GType object_type,
426                                                                      GType g_type,
427                                                                      GBoxedCopyFunc g_dup_func,
428                                                                      GDestroyNotify g_destroy_func,
429                                                                      GeeBidirSortedSet* set);
430 G_GNUC_INTERNAL GeeReadOnlySortedSet* gee_read_only_sorted_set_new (GType g_type,
431                                                     GBoxedCopyFunc g_dup_func,
432                                                     GDestroyNotify g_destroy_func,
433                                                     GeeSortedSet* set);
434 G_GNUC_INTERNAL GeeReadOnlySortedSet* gee_read_only_sorted_set_construct (GType object_type,
435                                                           GType g_type,
436                                                           GBoxedCopyFunc g_dup_func,
437                                                           GDestroyNotify g_destroy_func,
438                                                           GeeSortedSet* set);
439 static GeeBidirIterator* gee_read_only_bidir_sorted_set_real_bidir_iterator (GeeBidirSortedSet* base);
440 GeeBidirIterator* gee_bidir_sorted_set_bidir_iterator (GeeBidirSortedSet* self);
441 G_GNUC_INTERNAL GeeReadOnlyBidirSortedSetBidirIterator* gee_read_only_bidir_sorted_set_bidir_iterator_new (GType g_type,
442                                                                                            GBoxedCopyFunc g_dup_func,
443                                                                                            GDestroyNotify g_destroy_func,
444                                                                                            GeeBidirIterator* iterator);
445 G_GNUC_INTERNAL GeeReadOnlyBidirSortedSetBidirIterator* gee_read_only_bidir_sorted_set_bidir_iterator_construct (GType object_type,
446                                                                                                  GType g_type,
447                                                                                                  GBoxedCopyFunc g_dup_func,
448                                                                                                  GDestroyNotify g_destroy_func,
449                                                                                                  GeeBidirIterator* iterator);
450 GType gee_read_only_collection_iterator_get_type (void) G_GNUC_CONST;
451 G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeReadOnlyCollectionIterator, g_object_unref)
452 GType gee_read_only_bidir_sorted_set_bidir_iterator_get_type (void) G_GNUC_CONST;
453 G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeReadOnlyBidirSortedSetBidirIterator, g_object_unref)
454 G_GNUC_INTERNAL GeeReadOnlyCollectionIterator* gee_read_only_collection_iterator_new (GType g_type,
455                                                                       GBoxedCopyFunc g_dup_func,
456                                                                       GDestroyNotify g_destroy_func,
457                                                                       GeeIterator* iterator);
458 G_GNUC_INTERNAL GeeReadOnlyCollectionIterator* gee_read_only_collection_iterator_construct (GType object_type,
459                                                                             GType g_type,
460                                                                             GBoxedCopyFunc g_dup_func,
461                                                                             GDestroyNotify g_destroy_func,
462                                                                             GeeIterator* iterator);
463 static gboolean gee_read_only_bidir_sorted_set_bidir_iterator_real_first (GeeBidirIterator* base);
464 gboolean gee_bidir_iterator_first (GeeBidirIterator* self);
465 static gboolean gee_read_only_bidir_sorted_set_bidir_iterator_real_previous (GeeBidirIterator* base);
466 gboolean gee_bidir_iterator_previous (GeeBidirIterator* self);
467 static gboolean gee_read_only_bidir_sorted_set_bidir_iterator_real_has_previous (GeeBidirIterator* base);
468 gboolean gee_bidir_iterator_has_previous (GeeBidirIterator* self);
469 static gboolean gee_read_only_bidir_sorted_set_bidir_iterator_real_last (GeeBidirIterator* base);
470 gboolean gee_bidir_iterator_last (GeeBidirIterator* self);
471 static void _vala_gee_read_only_bidir_sorted_set_bidir_iterator_get_property (GObject * object,
472                                                                        guint property_id,
473                                                                        GValue * value,
474                                                                        GParamSpec * pspec);
475 static void _vala_gee_read_only_bidir_sorted_set_bidir_iterator_set_property (GObject * object,
476                                                                        guint property_id,
477                                                                        const GValue * value,
478                                                                        GParamSpec * pspec);
479 GeeSortedSet* gee_sorted_set_get_read_only_view (GeeSortedSet* self);
480 static void _vala_gee_read_only_bidir_sorted_set_get_property (GObject * object,
481                                                         guint property_id,
482                                                         GValue * value,
483                                                         GParamSpec * pspec);
484 static void _vala_gee_read_only_bidir_sorted_set_set_property (GObject * object,
485                                                         guint property_id,
486                                                         const GValue * value,
487                                                         GParamSpec * pspec);
488 
489 static inline gpointer
gee_read_only_bidir_sorted_set_get_instance_private(GeeReadOnlyBidirSortedSet * self)490 gee_read_only_bidir_sorted_set_get_instance_private (GeeReadOnlyBidirSortedSet* self)
491 {
492 	return G_STRUCT_MEMBER_P (self, GeeReadOnlyBidirSortedSet_private_offset);
493 }
494 
495 /**
496  * Constructs a read-only set that mirrors the content of the specified set.
497  *
498  * @param set the set to decorate.
499  */
500 G_GNUC_INTERNAL GeeReadOnlyBidirSortedSet*
gee_read_only_bidir_sorted_set_construct(GType object_type,GType g_type,GBoxedCopyFunc g_dup_func,GDestroyNotify g_destroy_func,GeeBidirSortedSet * set)501 gee_read_only_bidir_sorted_set_construct (GType object_type,
502                                           GType g_type,
503                                           GBoxedCopyFunc g_dup_func,
504                                           GDestroyNotify g_destroy_func,
505                                           GeeBidirSortedSet* set)
506 {
507 	GeeReadOnlyBidirSortedSet * self = NULL;
508 	g_return_val_if_fail (set != NULL, NULL);
509 	self = (GeeReadOnlyBidirSortedSet*) gee_read_only_sorted_set_construct (object_type, g_type, (GBoxedCopyFunc) g_dup_func, (GDestroyNotify) g_destroy_func, (GeeSortedSet*) set);
510 	self->priv->g_type = g_type;
511 	self->priv->g_dup_func = g_dup_func;
512 	self->priv->g_destroy_func = g_destroy_func;
513 	return self;
514 }
515 
516 G_GNUC_INTERNAL GeeReadOnlyBidirSortedSet*
gee_read_only_bidir_sorted_set_new(GType g_type,GBoxedCopyFunc g_dup_func,GDestroyNotify g_destroy_func,GeeBidirSortedSet * set)517 gee_read_only_bidir_sorted_set_new (GType g_type,
518                                     GBoxedCopyFunc g_dup_func,
519                                     GDestroyNotify g_destroy_func,
520                                     GeeBidirSortedSet* set)
521 {
522 	return gee_read_only_bidir_sorted_set_construct (GEE_TYPE_READ_ONLY_BIDIR_SORTED_SET, g_type, g_dup_func, g_destroy_func, set);
523 }
524 
525 /**
526  * {@inheritDoc}
527  */
528 static GeeBidirIterator*
gee_read_only_bidir_sorted_set_real_bidir_iterator(GeeBidirSortedSet * base)529 gee_read_only_bidir_sorted_set_real_bidir_iterator (GeeBidirSortedSet* base)
530 {
531 	GeeReadOnlyBidirSortedSet * self;
532 	GeeCollection* _tmp0_;
533 	GeeBidirIterator* _tmp1_;
534 	GeeBidirIterator* _tmp2_;
535 	GeeReadOnlyBidirSortedSetBidirIterator* _tmp3_;
536 	GeeBidirIterator* _tmp4_;
537 	GeeBidirIterator* result = NULL;
538 	self = (GeeReadOnlyBidirSortedSet*) base;
539 	_tmp0_ = ((GeeReadOnlyCollection*) self)->_collection;
540 	_tmp1_ = gee_bidir_sorted_set_bidir_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_BIDIR_SORTED_SET, GeeBidirSortedSet));
541 	_tmp2_ = _tmp1_;
542 	_tmp3_ = gee_read_only_bidir_sorted_set_bidir_iterator_new (self->priv->g_type, (GBoxedCopyFunc) self->priv->g_dup_func, (GDestroyNotify) self->priv->g_destroy_func, _tmp2_);
543 	_tmp4_ = (GeeBidirIterator*) _tmp3_;
544 	_g_object_unref0 (_tmp2_);
545 	result = _tmp4_;
546 	return result;
547 }
548 
549 static inline gpointer
gee_read_only_bidir_sorted_set_bidir_iterator_get_instance_private(GeeReadOnlyBidirSortedSetBidirIterator * self)550 gee_read_only_bidir_sorted_set_bidir_iterator_get_instance_private (GeeReadOnlyBidirSortedSetBidirIterator* self)
551 {
552 	return G_STRUCT_MEMBER_P (self, GeeReadOnlyBidirSortedSetBidirIterator_private_offset);
553 }
554 
555 G_GNUC_INTERNAL 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)556 gee_read_only_bidir_sorted_set_bidir_iterator_construct (GType object_type,
557                                                          GType g_type,
558                                                          GBoxedCopyFunc g_dup_func,
559                                                          GDestroyNotify g_destroy_func,
560                                                          GeeBidirIterator* iterator)
561 {
562 	GeeReadOnlyBidirSortedSetBidirIterator * self = NULL;
563 	g_return_val_if_fail (iterator != NULL, NULL);
564 	self = (GeeReadOnlyBidirSortedSetBidirIterator*) gee_read_only_collection_iterator_construct (object_type, g_type, (GBoxedCopyFunc) g_dup_func, (GDestroyNotify) g_destroy_func, (GeeIterator*) iterator);
565 	self->priv->g_type = g_type;
566 	self->priv->g_dup_func = g_dup_func;
567 	self->priv->g_destroy_func = g_destroy_func;
568 	return self;
569 }
570 
571 G_GNUC_INTERNAL GeeReadOnlyBidirSortedSetBidirIterator*
gee_read_only_bidir_sorted_set_bidir_iterator_new(GType g_type,GBoxedCopyFunc g_dup_func,GDestroyNotify g_destroy_func,GeeBidirIterator * iterator)572 gee_read_only_bidir_sorted_set_bidir_iterator_new (GType g_type,
573                                                    GBoxedCopyFunc g_dup_func,
574                                                    GDestroyNotify g_destroy_func,
575                                                    GeeBidirIterator* iterator)
576 {
577 	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);
578 }
579 
580 static gboolean
gee_read_only_bidir_sorted_set_bidir_iterator_real_first(GeeBidirIterator * base)581 gee_read_only_bidir_sorted_set_bidir_iterator_real_first (GeeBidirIterator* base)
582 {
583 	GeeReadOnlyBidirSortedSetBidirIterator * self;
584 	GeeIterator* _tmp0_;
585 	gboolean result = FALSE;
586 	self = (GeeReadOnlyBidirSortedSetBidirIterator*) base;
587 	_tmp0_ = ((GeeReadOnlyCollectionIterator*) self)->_iter;
588 	result = gee_bidir_iterator_first (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_BIDIR_ITERATOR, GeeBidirIterator));
589 	return result;
590 }
591 
592 static gboolean
gee_read_only_bidir_sorted_set_bidir_iterator_real_previous(GeeBidirIterator * base)593 gee_read_only_bidir_sorted_set_bidir_iterator_real_previous (GeeBidirIterator* base)
594 {
595 	GeeReadOnlyBidirSortedSetBidirIterator * self;
596 	GeeIterator* _tmp0_;
597 	gboolean result = FALSE;
598 	self = (GeeReadOnlyBidirSortedSetBidirIterator*) base;
599 	_tmp0_ = ((GeeReadOnlyCollectionIterator*) self)->_iter;
600 	result = gee_bidir_iterator_previous (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_BIDIR_ITERATOR, GeeBidirIterator));
601 	return result;
602 }
603 
604 static gboolean
gee_read_only_bidir_sorted_set_bidir_iterator_real_has_previous(GeeBidirIterator * base)605 gee_read_only_bidir_sorted_set_bidir_iterator_real_has_previous (GeeBidirIterator* base)
606 {
607 	GeeReadOnlyBidirSortedSetBidirIterator * self;
608 	GeeIterator* _tmp0_;
609 	gboolean result = FALSE;
610 	self = (GeeReadOnlyBidirSortedSetBidirIterator*) base;
611 	_tmp0_ = ((GeeReadOnlyCollectionIterator*) self)->_iter;
612 	result = gee_bidir_iterator_has_previous (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_BIDIR_ITERATOR, GeeBidirIterator));
613 	return result;
614 }
615 
616 static gboolean
gee_read_only_bidir_sorted_set_bidir_iterator_real_last(GeeBidirIterator * base)617 gee_read_only_bidir_sorted_set_bidir_iterator_real_last (GeeBidirIterator* base)
618 {
619 	GeeReadOnlyBidirSortedSetBidirIterator * self;
620 	GeeIterator* _tmp0_;
621 	gboolean result = FALSE;
622 	self = (GeeReadOnlyBidirSortedSetBidirIterator*) base;
623 	_tmp0_ = ((GeeReadOnlyCollectionIterator*) self)->_iter;
624 	result = gee_bidir_iterator_last (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_BIDIR_ITERATOR, GeeBidirIterator));
625 	return result;
626 }
627 
628 static void
gee_read_only_bidir_sorted_set_bidir_iterator_class_init(GeeReadOnlyBidirSortedSetBidirIteratorClass * klass,gpointer klass_data)629 gee_read_only_bidir_sorted_set_bidir_iterator_class_init (GeeReadOnlyBidirSortedSetBidirIteratorClass * klass,
630                                                           gpointer klass_data)
631 {
632 	gee_read_only_bidir_sorted_set_bidir_iterator_parent_class = g_type_class_peek_parent (klass);
633 	g_type_class_adjust_private_offset (klass, &GeeReadOnlyBidirSortedSetBidirIterator_private_offset);
634 	G_OBJECT_CLASS (klass)->get_property = _vala_gee_read_only_bidir_sorted_set_bidir_iterator_get_property;
635 	G_OBJECT_CLASS (klass)->set_property = _vala_gee_read_only_bidir_sorted_set_bidir_iterator_set_property;
636 	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_STRINGS | G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
637 	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_STRINGS | G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
638 	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_STRINGS | G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
639 }
640 
641 static GType
gee_read_only_bidir_sorted_set_bidir_iterator_gee_bidir_iterator_get_g_type(GeeReadOnlyBidirSortedSetBidirIterator * self)642 gee_read_only_bidir_sorted_set_bidir_iterator_gee_bidir_iterator_get_g_type (GeeReadOnlyBidirSortedSetBidirIterator* self)
643 {
644 	return self->priv->g_type;
645 }
646 
647 static GBoxedCopyFunc
gee_read_only_bidir_sorted_set_bidir_iterator_gee_bidir_iterator_get_g_dup_func(GeeReadOnlyBidirSortedSetBidirIterator * self)648 gee_read_only_bidir_sorted_set_bidir_iterator_gee_bidir_iterator_get_g_dup_func (GeeReadOnlyBidirSortedSetBidirIterator* self)
649 {
650 	return self->priv->g_dup_func;
651 }
652 
653 static GDestroyNotify
gee_read_only_bidir_sorted_set_bidir_iterator_gee_bidir_iterator_get_g_destroy_func(GeeReadOnlyBidirSortedSetBidirIterator * self)654 gee_read_only_bidir_sorted_set_bidir_iterator_gee_bidir_iterator_get_g_destroy_func (GeeReadOnlyBidirSortedSetBidirIterator* self)
655 {
656 	return self->priv->g_destroy_func;
657 }
658 
659 static void
gee_read_only_bidir_sorted_set_bidir_iterator_gee_bidir_iterator_interface_init(GeeBidirIteratorIface * iface,gpointer iface_data)660 gee_read_only_bidir_sorted_set_bidir_iterator_gee_bidir_iterator_interface_init (GeeBidirIteratorIface * iface,
661                                                                                  gpointer iface_data)
662 {
663 	gee_read_only_bidir_sorted_set_bidir_iterator_gee_bidir_iterator_parent_iface = g_type_interface_peek_parent (iface);
664 	iface->first = (gboolean (*) (GeeBidirIterator*)) gee_read_only_bidir_sorted_set_bidir_iterator_real_first;
665 	iface->previous = (gboolean (*) (GeeBidirIterator*)) gee_read_only_bidir_sorted_set_bidir_iterator_real_previous;
666 	iface->has_previous = (gboolean (*) (GeeBidirIterator*)) gee_read_only_bidir_sorted_set_bidir_iterator_real_has_previous;
667 	iface->last = (gboolean (*) (GeeBidirIterator*)) gee_read_only_bidir_sorted_set_bidir_iterator_real_last;
668 	iface->get_g_type = (GType (*) (GeeBidirIterator *)) gee_read_only_bidir_sorted_set_bidir_iterator_gee_bidir_iterator_get_g_type;
669 	iface->get_g_dup_func = (GBoxedCopyFunc (*) (GeeBidirIterator *)) gee_read_only_bidir_sorted_set_bidir_iterator_gee_bidir_iterator_get_g_dup_func;
670 	iface->get_g_destroy_func = (GDestroyNotify (*) (GeeBidirIterator *)) gee_read_only_bidir_sorted_set_bidir_iterator_gee_bidir_iterator_get_g_destroy_func;
671 }
672 
673 static void
gee_read_only_bidir_sorted_set_bidir_iterator_instance_init(GeeReadOnlyBidirSortedSetBidirIterator * self,gpointer klass)674 gee_read_only_bidir_sorted_set_bidir_iterator_instance_init (GeeReadOnlyBidirSortedSetBidirIterator * self,
675                                                              gpointer klass)
676 {
677 	self->priv = gee_read_only_bidir_sorted_set_bidir_iterator_get_instance_private (self);
678 }
679 
680 GType
gee_read_only_bidir_sorted_set_bidir_iterator_get_type(void)681 gee_read_only_bidir_sorted_set_bidir_iterator_get_type (void)
682 {
683 	static volatile gsize gee_read_only_bidir_sorted_set_bidir_iterator_type_id__volatile = 0;
684 	if (g_once_init_enter (&gee_read_only_bidir_sorted_set_bidir_iterator_type_id__volatile)) {
685 		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 };
686 		static const GInterfaceInfo gee_bidir_iterator_info = { (GInterfaceInitFunc) gee_read_only_bidir_sorted_set_bidir_iterator_gee_bidir_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
687 		GType gee_read_only_bidir_sorted_set_bidir_iterator_type_id;
688 		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);
689 		g_type_add_interface_static (gee_read_only_bidir_sorted_set_bidir_iterator_type_id, GEE_TYPE_BIDIR_ITERATOR, &gee_bidir_iterator_info);
690 		GeeReadOnlyBidirSortedSetBidirIterator_private_offset = g_type_add_instance_private (gee_read_only_bidir_sorted_set_bidir_iterator_type_id, sizeof (GeeReadOnlyBidirSortedSetBidirIteratorPrivate));
691 		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);
692 	}
693 	return gee_read_only_bidir_sorted_set_bidir_iterator_type_id__volatile;
694 }
695 
696 static void
_vala_gee_read_only_bidir_sorted_set_bidir_iterator_get_property(GObject * object,guint property_id,GValue * value,GParamSpec * pspec)697 _vala_gee_read_only_bidir_sorted_set_bidir_iterator_get_property (GObject * object,
698                                                                   guint property_id,
699                                                                   GValue * value,
700                                                                   GParamSpec * pspec)
701 {
702 	GeeReadOnlyBidirSortedSetBidirIterator * self;
703 	self = G_TYPE_CHECK_INSTANCE_CAST (object, GEE_READ_ONLY_BIDIR_SORTED_SET_TYPE_BIDIR_ITERATOR, GeeReadOnlyBidirSortedSetBidirIterator);
704 	switch (property_id) {
705 		case GEE_READ_ONLY_BIDIR_SORTED_SET_BIDIR_ITERATOR_G_TYPE:
706 		g_value_set_gtype (value, self->priv->g_type);
707 		break;
708 		case GEE_READ_ONLY_BIDIR_SORTED_SET_BIDIR_ITERATOR_G_DUP_FUNC:
709 		g_value_set_pointer (value, self->priv->g_dup_func);
710 		break;
711 		case GEE_READ_ONLY_BIDIR_SORTED_SET_BIDIR_ITERATOR_G_DESTROY_FUNC:
712 		g_value_set_pointer (value, self->priv->g_destroy_func);
713 		break;
714 		default:
715 		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
716 		break;
717 	}
718 }
719 
720 static void
_vala_gee_read_only_bidir_sorted_set_bidir_iterator_set_property(GObject * object,guint property_id,const GValue * value,GParamSpec * pspec)721 _vala_gee_read_only_bidir_sorted_set_bidir_iterator_set_property (GObject * object,
722                                                                   guint property_id,
723                                                                   const GValue * value,
724                                                                   GParamSpec * pspec)
725 {
726 	GeeReadOnlyBidirSortedSetBidirIterator * self;
727 	self = G_TYPE_CHECK_INSTANCE_CAST (object, GEE_READ_ONLY_BIDIR_SORTED_SET_TYPE_BIDIR_ITERATOR, GeeReadOnlyBidirSortedSetBidirIterator);
728 	switch (property_id) {
729 		case GEE_READ_ONLY_BIDIR_SORTED_SET_BIDIR_ITERATOR_G_TYPE:
730 		self->priv->g_type = g_value_get_gtype (value);
731 		break;
732 		case GEE_READ_ONLY_BIDIR_SORTED_SET_BIDIR_ITERATOR_G_DUP_FUNC:
733 		self->priv->g_dup_func = g_value_get_pointer (value);
734 		break;
735 		case GEE_READ_ONLY_BIDIR_SORTED_SET_BIDIR_ITERATOR_G_DESTROY_FUNC:
736 		self->priv->g_destroy_func = g_value_get_pointer (value);
737 		break;
738 		default:
739 		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
740 		break;
741 	}
742 }
743 
744 static void
gee_read_only_bidir_sorted_set_class_init(GeeReadOnlyBidirSortedSetClass * klass,gpointer klass_data)745 gee_read_only_bidir_sorted_set_class_init (GeeReadOnlyBidirSortedSetClass * klass,
746                                            gpointer klass_data)
747 {
748 	gee_read_only_bidir_sorted_set_parent_class = g_type_class_peek_parent (klass);
749 	g_type_class_adjust_private_offset (klass, &GeeReadOnlyBidirSortedSet_private_offset);
750 	G_OBJECT_CLASS (klass)->get_property = _vala_gee_read_only_bidir_sorted_set_get_property;
751 	G_OBJECT_CLASS (klass)->set_property = _vala_gee_read_only_bidir_sorted_set_set_property;
752 	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_STRINGS | G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
753 	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_STRINGS | G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
754 	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_STRINGS | G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
755 }
756 
757 static GType
gee_read_only_bidir_sorted_set_gee_bidir_sorted_set_get_g_type(GeeReadOnlyBidirSortedSet * self)758 gee_read_only_bidir_sorted_set_gee_bidir_sorted_set_get_g_type (GeeReadOnlyBidirSortedSet* self)
759 {
760 	return self->priv->g_type;
761 }
762 
763 static GBoxedCopyFunc
gee_read_only_bidir_sorted_set_gee_bidir_sorted_set_get_g_dup_func(GeeReadOnlyBidirSortedSet * self)764 gee_read_only_bidir_sorted_set_gee_bidir_sorted_set_get_g_dup_func (GeeReadOnlyBidirSortedSet* self)
765 {
766 	return self->priv->g_dup_func;
767 }
768 
769 static GDestroyNotify
gee_read_only_bidir_sorted_set_gee_bidir_sorted_set_get_g_destroy_func(GeeReadOnlyBidirSortedSet * self)770 gee_read_only_bidir_sorted_set_gee_bidir_sorted_set_get_g_destroy_func (GeeReadOnlyBidirSortedSet* self)
771 {
772 	return self->priv->g_destroy_func;
773 }
774 
775 static void
gee_read_only_bidir_sorted_set_gee_bidir_sorted_set_interface_init(GeeBidirSortedSetIface * iface,gpointer iface_data)776 gee_read_only_bidir_sorted_set_gee_bidir_sorted_set_interface_init (GeeBidirSortedSetIface * iface,
777                                                                     gpointer iface_data)
778 {
779 	gee_read_only_bidir_sorted_set_gee_bidir_sorted_set_parent_iface = g_type_interface_peek_parent (iface);
780 	iface->bidir_iterator = (GeeBidirIterator* (*) (GeeBidirSortedSet*)) gee_read_only_bidir_sorted_set_real_bidir_iterator;
781 	iface->get_g_type = (GType (*) (GeeBidirSortedSet *)) gee_read_only_bidir_sorted_set_gee_bidir_sorted_set_get_g_type;
782 	iface->get_g_dup_func = (GBoxedCopyFunc (*) (GeeBidirSortedSet *)) gee_read_only_bidir_sorted_set_gee_bidir_sorted_set_get_g_dup_func;
783 	iface->get_g_destroy_func = (GDestroyNotify (*) (GeeBidirSortedSet *)) gee_read_only_bidir_sorted_set_gee_bidir_sorted_set_get_g_destroy_func;
784 	iface->get_read_only_view = (GeeBidirSortedSet* (*) (GeeBidirSortedSet *)) gee_sorted_set_get_read_only_view;
785 }
786 
787 static void
gee_read_only_bidir_sorted_set_instance_init(GeeReadOnlyBidirSortedSet * self,gpointer klass)788 gee_read_only_bidir_sorted_set_instance_init (GeeReadOnlyBidirSortedSet * self,
789                                               gpointer klass)
790 {
791 	self->priv = gee_read_only_bidir_sorted_set_get_instance_private (self);
792 }
793 
794 /**
795  * Read-only view for {@link BidirSortedSet} collections.
796  *
797  * This class decorates any class which implements the {@link BidirSortedSet}
798  * interface by making it read only. Any method which normally modify data will
799  * throw an error.
800  *
801  * @see BidirSortedSet
802  */
803 G_GNUC_INTERNAL GType
gee_read_only_bidir_sorted_set_get_type(void)804 gee_read_only_bidir_sorted_set_get_type (void)
805 {
806 	static volatile gsize gee_read_only_bidir_sorted_set_type_id__volatile = 0;
807 	if (g_once_init_enter (&gee_read_only_bidir_sorted_set_type_id__volatile)) {
808 		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 };
809 		static const GInterfaceInfo gee_bidir_sorted_set_info = { (GInterfaceInitFunc) gee_read_only_bidir_sorted_set_gee_bidir_sorted_set_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
810 		GType gee_read_only_bidir_sorted_set_type_id;
811 		gee_read_only_bidir_sorted_set_type_id = g_type_register_static (GEE_TYPE_READ_ONLY_SORTED_SET, "GeeReadOnlyBidirSortedSet", &g_define_type_info, 0);
812 		g_type_add_interface_static (gee_read_only_bidir_sorted_set_type_id, GEE_TYPE_BIDIR_SORTED_SET, &gee_bidir_sorted_set_info);
813 		GeeReadOnlyBidirSortedSet_private_offset = g_type_add_instance_private (gee_read_only_bidir_sorted_set_type_id, sizeof (GeeReadOnlyBidirSortedSetPrivate));
814 		g_once_init_leave (&gee_read_only_bidir_sorted_set_type_id__volatile, gee_read_only_bidir_sorted_set_type_id);
815 	}
816 	return gee_read_only_bidir_sorted_set_type_id__volatile;
817 }
818 
819 static void
_vala_gee_read_only_bidir_sorted_set_get_property(GObject * object,guint property_id,GValue * value,GParamSpec * pspec)820 _vala_gee_read_only_bidir_sorted_set_get_property (GObject * object,
821                                                    guint property_id,
822                                                    GValue * value,
823                                                    GParamSpec * pspec)
824 {
825 	GeeReadOnlyBidirSortedSet * self;
826 	self = G_TYPE_CHECK_INSTANCE_CAST (object, GEE_TYPE_READ_ONLY_BIDIR_SORTED_SET, GeeReadOnlyBidirSortedSet);
827 	switch (property_id) {
828 		case GEE_READ_ONLY_BIDIR_SORTED_SET_G_TYPE:
829 		g_value_set_gtype (value, self->priv->g_type);
830 		break;
831 		case GEE_READ_ONLY_BIDIR_SORTED_SET_G_DUP_FUNC:
832 		g_value_set_pointer (value, self->priv->g_dup_func);
833 		break;
834 		case GEE_READ_ONLY_BIDIR_SORTED_SET_G_DESTROY_FUNC:
835 		g_value_set_pointer (value, self->priv->g_destroy_func);
836 		break;
837 		default:
838 		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
839 		break;
840 	}
841 }
842 
843 static void
_vala_gee_read_only_bidir_sorted_set_set_property(GObject * object,guint property_id,const GValue * value,GParamSpec * pspec)844 _vala_gee_read_only_bidir_sorted_set_set_property (GObject * object,
845                                                    guint property_id,
846                                                    const GValue * value,
847                                                    GParamSpec * pspec)
848 {
849 	GeeReadOnlyBidirSortedSet * self;
850 	self = G_TYPE_CHECK_INSTANCE_CAST (object, GEE_TYPE_READ_ONLY_BIDIR_SORTED_SET, GeeReadOnlyBidirSortedSet);
851 	switch (property_id) {
852 		case GEE_READ_ONLY_BIDIR_SORTED_SET_G_TYPE:
853 		self->priv->g_type = g_value_get_gtype (value);
854 		break;
855 		case GEE_READ_ONLY_BIDIR_SORTED_SET_G_DUP_FUNC:
856 		self->priv->g_dup_func = g_value_get_pointer (value);
857 		break;
858 		case GEE_READ_ONLY_BIDIR_SORTED_SET_G_DESTROY_FUNC:
859 		self->priv->g_destroy_func = g_value_get_pointer (value);
860 		break;
861 		default:
862 		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
863 		break;
864 	}
865 }
866 
867