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