1 /* valasignaltype.c generated by valac, the Vala compiler
2 * generated from valasignaltype.vala, do not modify */
3
4 /* valasignaltype.vala
5 *
6 * Copyright (C) 2007-2011 Jürg Billeter
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 * Jürg Billeter <j@bitron.ch>
24 */
25
26 #include "vala.h"
27 #include <glib.h>
28 #include <stdlib.h>
29 #include <string.h>
30 #include <valagee.h>
31 #include <glib-object.h>
32
33 #define _vala_code_node_unref0(var) ((var == NULL) ? NULL : (var = (vala_code_node_unref (var), NULL)))
34 #define _vala_iterable_unref0(var) ((var == NULL) ? NULL : (var = (vala_iterable_unref (var), NULL)))
35 #define _vala_code_context_unref0(var) ((var == NULL) ? NULL : (var = (vala_code_context_unref (var), NULL)))
36
37 struct _ValaSignalTypePrivate {
38 ValaMethod* connect_method;
39 ValaMethod* connect_after_method;
40 ValaMethod* disconnect_method;
41 };
42
43 static gint ValaSignalType_private_offset;
44 static gpointer vala_signal_type_parent_class = NULL;
45
46 static ValaDataType* vala_signal_type_real_copy (ValaDataType* base);
47 static gboolean vala_signal_type_real_compatible (ValaDataType* base,
48 ValaDataType* target_type);
49 static gchar* vala_signal_type_real_to_qualified_string (ValaDataType* base,
50 ValaScope* scope);
51 static ValaMethod* vala_signal_type_get_connect_method (ValaSignalType* self);
52 static ValaMethod* vala_signal_type_get_connect_after_method (ValaSignalType* self);
53 static ValaMethod* vala_signal_type_get_disconnect_method (ValaSignalType* self);
54 static ValaSymbol* vala_signal_type_real_get_member (ValaDataType* base,
55 const gchar* member_name);
56 static gboolean vala_signal_type_real_is_accessible (ValaDataType* base,
57 ValaSymbol* sym);
58 static void vala_signal_type_finalize (ValaCodeNode * obj);
59 static GType vala_signal_type_get_type_once (void);
60
61 static inline gpointer
vala_signal_type_get_instance_private(ValaSignalType * self)62 vala_signal_type_get_instance_private (ValaSignalType* self)
63 {
64 return G_STRUCT_MEMBER_P (self, ValaSignalType_private_offset);
65 }
66
67 ValaSignal*
vala_signal_type_get_signal_symbol(ValaSignalType * self)68 vala_signal_type_get_signal_symbol (ValaSignalType* self)
69 {
70 ValaSignal* result;
71 ValaSymbol* _tmp0_;
72 ValaSymbol* _tmp1_;
73 g_return_val_if_fail (self != NULL, NULL);
74 _tmp0_ = vala_data_type_get_symbol ((ValaDataType*) self);
75 _tmp1_ = _tmp0_;
76 result = G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, VALA_TYPE_SIGNAL, ValaSignal);
77 return result;
78 }
79
80 ValaSignalType*
vala_signal_type_construct(GType object_type,ValaSignal * signal_symbol)81 vala_signal_type_construct (GType object_type,
82 ValaSignal* signal_symbol)
83 {
84 ValaSignalType* self = NULL;
85 g_return_val_if_fail (signal_symbol != NULL, NULL);
86 self = (ValaSignalType*) vala_callable_type_construct (object_type, (ValaSymbol*) signal_symbol);
87 return self;
88 }
89
90 ValaSignalType*
vala_signal_type_new(ValaSignal * signal_symbol)91 vala_signal_type_new (ValaSignal* signal_symbol)
92 {
93 return vala_signal_type_construct (VALA_TYPE_SIGNAL_TYPE, signal_symbol);
94 }
95
96 static ValaDataType*
vala_signal_type_real_copy(ValaDataType * base)97 vala_signal_type_real_copy (ValaDataType* base)
98 {
99 ValaSignalType * self;
100 ValaSignal* _tmp0_;
101 ValaSignal* _tmp1_;
102 ValaSignalType* _tmp2_;
103 ValaDataType* result = NULL;
104 self = (ValaSignalType*) base;
105 _tmp0_ = vala_signal_type_get_signal_symbol (self);
106 _tmp1_ = _tmp0_;
107 _tmp2_ = vala_signal_type_new (_tmp1_);
108 result = (ValaDataType*) _tmp2_;
109 return result;
110 }
111
112 static gboolean
vala_signal_type_real_compatible(ValaDataType * base,ValaDataType * target_type)113 vala_signal_type_real_compatible (ValaDataType* base,
114 ValaDataType* target_type)
115 {
116 ValaSignalType * self;
117 gboolean result = FALSE;
118 self = (ValaSignalType*) base;
119 g_return_val_if_fail (target_type != NULL, FALSE);
120 result = FALSE;
121 return result;
122 }
123
124 static gchar*
vala_signal_type_real_to_qualified_string(ValaDataType * base,ValaScope * scope)125 vala_signal_type_real_to_qualified_string (ValaDataType* base,
126 ValaScope* scope)
127 {
128 ValaSignalType * self;
129 ValaSignal* _tmp0_;
130 ValaSignal* _tmp1_;
131 gchar* _tmp2_;
132 gchar* result = NULL;
133 self = (ValaSignalType*) base;
134 _tmp0_ = vala_signal_type_get_signal_symbol (self);
135 _tmp1_ = _tmp0_;
136 _tmp2_ = vala_symbol_get_full_name ((ValaSymbol*) _tmp1_);
137 result = _tmp2_;
138 return result;
139 }
140
141 static gpointer
_vala_code_node_ref0(gpointer self)142 _vala_code_node_ref0 (gpointer self)
143 {
144 return self ? vala_code_node_ref (self) : NULL;
145 }
146
147 static gpointer
_vala_iterable_ref0(gpointer self)148 _vala_iterable_ref0 (gpointer self)
149 {
150 return self ? vala_iterable_ref (self) : NULL;
151 }
152
153 ValaDelegateType*
vala_signal_type_get_handler_type(ValaSignalType * self)154 vala_signal_type_get_handler_type (ValaSignalType* self)
155 {
156 ValaObjectTypeSymbol* type_sym = NULL;
157 ValaSignal* _tmp0_;
158 ValaSignal* _tmp1_;
159 ValaSymbol* _tmp2_;
160 ValaSymbol* _tmp3_;
161 ValaObjectTypeSymbol* _tmp4_;
162 ValaDataType* sender_type = NULL;
163 ValaObjectTypeSymbol* _tmp5_;
164 ValaDataType* _tmp6_;
165 ValaDelegateType* _result_ = NULL;
166 ValaSignal* _tmp7_;
167 ValaSignal* _tmp8_;
168 ValaDataType* _tmp9_;
169 ValaDelegate* _tmp10_;
170 ValaDelegate* _tmp11_;
171 ValaDelegateType* _tmp12_;
172 ValaDelegateType* _tmp13_;
173 ValaDelegateType* _tmp14_;
174 ValaDelegateType* _tmp15_;
175 ValaDelegate* _tmp16_;
176 ValaDelegate* _tmp17_;
177 ValaDelegateType* result = NULL;
178 g_return_val_if_fail (self != NULL, NULL);
179 _tmp0_ = vala_signal_type_get_signal_symbol (self);
180 _tmp1_ = _tmp0_;
181 _tmp2_ = vala_symbol_get_parent_symbol ((ValaSymbol*) _tmp1_);
182 _tmp3_ = _tmp2_;
183 _tmp4_ = _vala_code_node_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, VALA_TYPE_OBJECT_TYPE_SYMBOL, ValaObjectTypeSymbol));
184 type_sym = _tmp4_;
185 _tmp5_ = type_sym;
186 _tmp6_ = vala_semantic_analyzer_get_data_type_for_symbol ((ValaSymbol*) _tmp5_);
187 sender_type = _tmp6_;
188 _tmp7_ = vala_signal_type_get_signal_symbol (self);
189 _tmp8_ = _tmp7_;
190 _tmp9_ = sender_type;
191 _tmp10_ = vala_signal_get_delegate (_tmp8_, _tmp9_, (ValaCodeNode*) self);
192 _tmp11_ = _tmp10_;
193 _tmp12_ = vala_delegate_type_new (_tmp11_);
194 _tmp13_ = _tmp12_;
195 _vala_code_node_unref0 (_tmp11_);
196 _result_ = _tmp13_;
197 _tmp14_ = _result_;
198 vala_data_type_set_value_owned ((ValaDataType*) _tmp14_, TRUE);
199 _tmp15_ = _result_;
200 _tmp16_ = vala_delegate_type_get_delegate_symbol (_tmp15_);
201 _tmp17_ = _tmp16_;
202 if (vala_delegate_has_type_parameters (_tmp17_)) {
203 {
204 ValaList* _type_param_list = NULL;
205 ValaObjectTypeSymbol* _tmp18_;
206 ValaList* _tmp19_;
207 ValaList* _tmp20_;
208 gint _type_param_size = 0;
209 ValaList* _tmp21_;
210 gint _tmp22_;
211 gint _tmp23_;
212 gint _type_param_index = 0;
213 _tmp18_ = type_sym;
214 _tmp19_ = vala_object_type_symbol_get_type_parameters (_tmp18_);
215 _tmp20_ = _vala_iterable_ref0 (_tmp19_);
216 _type_param_list = _tmp20_;
217 _tmp21_ = _type_param_list;
218 _tmp22_ = vala_collection_get_size ((ValaCollection*) _tmp21_);
219 _tmp23_ = _tmp22_;
220 _type_param_size = _tmp23_;
221 _type_param_index = -1;
222 while (TRUE) {
223 gint _tmp24_;
224 gint _tmp25_;
225 ValaTypeParameter* type_param = NULL;
226 ValaList* _tmp26_;
227 gpointer _tmp27_;
228 ValaGenericType* type_arg = NULL;
229 ValaTypeParameter* _tmp28_;
230 ValaGenericType* _tmp29_;
231 ValaGenericType* _tmp30_;
232 ValaDelegateType* _tmp31_;
233 ValaGenericType* _tmp32_;
234 _type_param_index = _type_param_index + 1;
235 _tmp24_ = _type_param_index;
236 _tmp25_ = _type_param_size;
237 if (!(_tmp24_ < _tmp25_)) {
238 break;
239 }
240 _tmp26_ = _type_param_list;
241 _tmp27_ = vala_list_get (_tmp26_, _type_param_index);
242 type_param = (ValaTypeParameter*) _tmp27_;
243 _tmp28_ = type_param;
244 _tmp29_ = vala_generic_type_new (_tmp28_);
245 type_arg = _tmp29_;
246 _tmp30_ = type_arg;
247 vala_data_type_set_value_owned ((ValaDataType*) _tmp30_, TRUE);
248 _tmp31_ = _result_;
249 _tmp32_ = type_arg;
250 vala_data_type_add_type_argument ((ValaDataType*) _tmp31_, (ValaDataType*) _tmp32_);
251 _vala_code_node_unref0 (type_arg);
252 _vala_code_node_unref0 (type_param);
253 }
254 _vala_iterable_unref0 (_type_param_list);
255 }
256 }
257 result = _result_;
258 _vala_code_node_unref0 (sender_type);
259 _vala_code_node_unref0 (type_sym);
260 return result;
261 }
262
263 static ValaMethod*
vala_signal_type_get_connect_method(ValaSignalType * self)264 vala_signal_type_get_connect_method (ValaSignalType* self)
265 {
266 ValaMethod* _tmp0_;
267 ValaMethod* _tmp25_;
268 ValaMethod* result = NULL;
269 g_return_val_if_fail (self != NULL, NULL);
270 _tmp0_ = self->priv->connect_method;
271 if (_tmp0_ == NULL) {
272 ValaIntegerType* ulong_type = NULL;
273 ValaCodeContext* _tmp1_;
274 ValaCodeContext* _tmp2_;
275 ValaNamespace* _tmp3_;
276 ValaNamespace* _tmp4_;
277 ValaScope* _tmp5_;
278 ValaScope* _tmp6_;
279 ValaSymbol* _tmp7_;
280 ValaStruct* _tmp8_;
281 ValaIntegerType* _tmp9_;
282 ValaIntegerType* _tmp10_;
283 ValaIntegerType* _tmp11_;
284 ValaMethod* _tmp12_;
285 ValaMethod* _tmp13_;
286 ValaMethod* _tmp14_;
287 ValaMethod* _tmp15_;
288 ValaSignal* _tmp16_;
289 ValaSignal* _tmp17_;
290 ValaScope* _tmp18_;
291 ValaScope* _tmp19_;
292 ValaMethod* _tmp20_;
293 ValaDelegateType* _tmp21_;
294 ValaDelegateType* _tmp22_;
295 ValaParameter* _tmp23_;
296 ValaParameter* _tmp24_;
297 _tmp1_ = vala_code_context_get ();
298 _tmp2_ = _tmp1_;
299 _tmp3_ = vala_code_context_get_root (_tmp2_);
300 _tmp4_ = _tmp3_;
301 _tmp5_ = vala_symbol_get_scope ((ValaSymbol*) _tmp4_);
302 _tmp6_ = _tmp5_;
303 _tmp7_ = vala_scope_lookup (_tmp6_, "ulong");
304 _tmp8_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, VALA_TYPE_STRUCT, ValaStruct);
305 _tmp9_ = vala_integer_type_new (_tmp8_, NULL, NULL);
306 _tmp10_ = _tmp9_;
307 _vala_code_node_unref0 (_tmp8_);
308 _vala_code_context_unref0 (_tmp2_);
309 ulong_type = _tmp10_;
310 _tmp11_ = ulong_type;
311 _tmp12_ = vala_method_new ("connect", (ValaDataType*) _tmp11_, NULL, NULL);
312 _vala_code_node_unref0 (self->priv->connect_method);
313 self->priv->connect_method = _tmp12_;
314 _tmp13_ = self->priv->connect_method;
315 vala_symbol_set_access ((ValaSymbol*) _tmp13_, VALA_SYMBOL_ACCESSIBILITY_PUBLIC);
316 _tmp14_ = self->priv->connect_method;
317 vala_symbol_set_external ((ValaSymbol*) _tmp14_, TRUE);
318 _tmp15_ = self->priv->connect_method;
319 _tmp16_ = vala_signal_type_get_signal_symbol (self);
320 _tmp17_ = _tmp16_;
321 _tmp18_ = vala_symbol_get_scope ((ValaSymbol*) _tmp17_);
322 _tmp19_ = _tmp18_;
323 vala_symbol_set_owner ((ValaSymbol*) _tmp15_, _tmp19_);
324 _tmp20_ = self->priv->connect_method;
325 _tmp21_ = vala_signal_type_get_handler_type (self);
326 _tmp22_ = _tmp21_;
327 _tmp23_ = vala_parameter_new ("handler", (ValaDataType*) _tmp22_, NULL);
328 _tmp24_ = _tmp23_;
329 vala_callable_add_parameter ((ValaCallable*) _tmp20_, _tmp24_);
330 _vala_code_node_unref0 (_tmp24_);
331 _vala_code_node_unref0 (_tmp22_);
332 _vala_code_node_unref0 (ulong_type);
333 }
334 _tmp25_ = self->priv->connect_method;
335 result = _tmp25_;
336 return result;
337 }
338
339 static ValaMethod*
vala_signal_type_get_connect_after_method(ValaSignalType * self)340 vala_signal_type_get_connect_after_method (ValaSignalType* self)
341 {
342 ValaMethod* _tmp0_;
343 ValaMethod* _tmp25_;
344 ValaMethod* result = NULL;
345 g_return_val_if_fail (self != NULL, NULL);
346 _tmp0_ = self->priv->connect_after_method;
347 if (_tmp0_ == NULL) {
348 ValaIntegerType* ulong_type = NULL;
349 ValaCodeContext* _tmp1_;
350 ValaCodeContext* _tmp2_;
351 ValaNamespace* _tmp3_;
352 ValaNamespace* _tmp4_;
353 ValaScope* _tmp5_;
354 ValaScope* _tmp6_;
355 ValaSymbol* _tmp7_;
356 ValaStruct* _tmp8_;
357 ValaIntegerType* _tmp9_;
358 ValaIntegerType* _tmp10_;
359 ValaIntegerType* _tmp11_;
360 ValaMethod* _tmp12_;
361 ValaMethod* _tmp13_;
362 ValaMethod* _tmp14_;
363 ValaMethod* _tmp15_;
364 ValaSignal* _tmp16_;
365 ValaSignal* _tmp17_;
366 ValaScope* _tmp18_;
367 ValaScope* _tmp19_;
368 ValaMethod* _tmp20_;
369 ValaDelegateType* _tmp21_;
370 ValaDelegateType* _tmp22_;
371 ValaParameter* _tmp23_;
372 ValaParameter* _tmp24_;
373 _tmp1_ = vala_code_context_get ();
374 _tmp2_ = _tmp1_;
375 _tmp3_ = vala_code_context_get_root (_tmp2_);
376 _tmp4_ = _tmp3_;
377 _tmp5_ = vala_symbol_get_scope ((ValaSymbol*) _tmp4_);
378 _tmp6_ = _tmp5_;
379 _tmp7_ = vala_scope_lookup (_tmp6_, "ulong");
380 _tmp8_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, VALA_TYPE_STRUCT, ValaStruct);
381 _tmp9_ = vala_integer_type_new (_tmp8_, NULL, NULL);
382 _tmp10_ = _tmp9_;
383 _vala_code_node_unref0 (_tmp8_);
384 _vala_code_context_unref0 (_tmp2_);
385 ulong_type = _tmp10_;
386 _tmp11_ = ulong_type;
387 _tmp12_ = vala_method_new ("connect_after", (ValaDataType*) _tmp11_, NULL, NULL);
388 _vala_code_node_unref0 (self->priv->connect_after_method);
389 self->priv->connect_after_method = _tmp12_;
390 _tmp13_ = self->priv->connect_after_method;
391 vala_symbol_set_access ((ValaSymbol*) _tmp13_, VALA_SYMBOL_ACCESSIBILITY_PUBLIC);
392 _tmp14_ = self->priv->connect_after_method;
393 vala_symbol_set_external ((ValaSymbol*) _tmp14_, TRUE);
394 _tmp15_ = self->priv->connect_after_method;
395 _tmp16_ = vala_signal_type_get_signal_symbol (self);
396 _tmp17_ = _tmp16_;
397 _tmp18_ = vala_symbol_get_scope ((ValaSymbol*) _tmp17_);
398 _tmp19_ = _tmp18_;
399 vala_symbol_set_owner ((ValaSymbol*) _tmp15_, _tmp19_);
400 _tmp20_ = self->priv->connect_after_method;
401 _tmp21_ = vala_signal_type_get_handler_type (self);
402 _tmp22_ = _tmp21_;
403 _tmp23_ = vala_parameter_new ("handler", (ValaDataType*) _tmp22_, NULL);
404 _tmp24_ = _tmp23_;
405 vala_callable_add_parameter ((ValaCallable*) _tmp20_, _tmp24_);
406 _vala_code_node_unref0 (_tmp24_);
407 _vala_code_node_unref0 (_tmp22_);
408 _vala_code_node_unref0 (ulong_type);
409 }
410 _tmp25_ = self->priv->connect_after_method;
411 result = _tmp25_;
412 return result;
413 }
414
415 static ValaMethod*
vala_signal_type_get_disconnect_method(ValaSignalType * self)416 vala_signal_type_get_disconnect_method (ValaSignalType* self)
417 {
418 ValaMethod* _tmp0_;
419 ValaMethod* _tmp16_;
420 ValaMethod* result = NULL;
421 g_return_val_if_fail (self != NULL, NULL);
422 _tmp0_ = self->priv->disconnect_method;
423 if (_tmp0_ == NULL) {
424 ValaVoidType* _tmp1_;
425 ValaVoidType* _tmp2_;
426 ValaMethod* _tmp3_;
427 ValaMethod* _tmp4_;
428 ValaMethod* _tmp5_;
429 ValaMethod* _tmp6_;
430 ValaSignal* _tmp7_;
431 ValaSignal* _tmp8_;
432 ValaScope* _tmp9_;
433 ValaScope* _tmp10_;
434 ValaMethod* _tmp11_;
435 ValaDelegateType* _tmp12_;
436 ValaDelegateType* _tmp13_;
437 ValaParameter* _tmp14_;
438 ValaParameter* _tmp15_;
439 _tmp1_ = vala_void_type_new (NULL);
440 _tmp2_ = _tmp1_;
441 _tmp3_ = vala_method_new ("disconnect", (ValaDataType*) _tmp2_, NULL, NULL);
442 _vala_code_node_unref0 (self->priv->disconnect_method);
443 self->priv->disconnect_method = _tmp3_;
444 _vala_code_node_unref0 (_tmp2_);
445 _tmp4_ = self->priv->disconnect_method;
446 vala_symbol_set_access ((ValaSymbol*) _tmp4_, VALA_SYMBOL_ACCESSIBILITY_PUBLIC);
447 _tmp5_ = self->priv->disconnect_method;
448 vala_symbol_set_external ((ValaSymbol*) _tmp5_, TRUE);
449 _tmp6_ = self->priv->disconnect_method;
450 _tmp7_ = vala_signal_type_get_signal_symbol (self);
451 _tmp8_ = _tmp7_;
452 _tmp9_ = vala_symbol_get_scope ((ValaSymbol*) _tmp8_);
453 _tmp10_ = _tmp9_;
454 vala_symbol_set_owner ((ValaSymbol*) _tmp6_, _tmp10_);
455 _tmp11_ = self->priv->disconnect_method;
456 _tmp12_ = vala_signal_type_get_handler_type (self);
457 _tmp13_ = _tmp12_;
458 _tmp14_ = vala_parameter_new ("handler", (ValaDataType*) _tmp13_, NULL);
459 _tmp15_ = _tmp14_;
460 vala_callable_add_parameter ((ValaCallable*) _tmp11_, _tmp15_);
461 _vala_code_node_unref0 (_tmp15_);
462 _vala_code_node_unref0 (_tmp13_);
463 }
464 _tmp16_ = self->priv->disconnect_method;
465 result = _tmp16_;
466 return result;
467 }
468
469 static ValaSymbol*
vala_signal_type_real_get_member(ValaDataType * base,const gchar * member_name)470 vala_signal_type_real_get_member (ValaDataType* base,
471 const gchar* member_name)
472 {
473 ValaSignalType * self;
474 ValaSymbol* result = NULL;
475 self = (ValaSignalType*) base;
476 g_return_val_if_fail (member_name != NULL, NULL);
477 if (g_strcmp0 (member_name, "connect") == 0) {
478 ValaMethod* _tmp0_;
479 ValaSymbol* _tmp1_;
480 _tmp0_ = vala_signal_type_get_connect_method (self);
481 _tmp1_ = _vala_code_node_ref0 ((ValaSymbol*) _tmp0_);
482 result = _tmp1_;
483 return result;
484 } else {
485 if (g_strcmp0 (member_name, "connect_after") == 0) {
486 ValaMethod* _tmp2_;
487 ValaSymbol* _tmp3_;
488 _tmp2_ = vala_signal_type_get_connect_after_method (self);
489 _tmp3_ = _vala_code_node_ref0 ((ValaSymbol*) _tmp2_);
490 result = _tmp3_;
491 return result;
492 } else {
493 if (g_strcmp0 (member_name, "disconnect") == 0) {
494 ValaMethod* _tmp4_;
495 ValaSymbol* _tmp5_;
496 _tmp4_ = vala_signal_type_get_disconnect_method (self);
497 _tmp5_ = _vala_code_node_ref0 ((ValaSymbol*) _tmp4_);
498 result = _tmp5_;
499 return result;
500 }
501 }
502 }
503 result = NULL;
504 return result;
505 }
506
507 static gboolean
vala_signal_type_real_is_accessible(ValaDataType * base,ValaSymbol * sym)508 vala_signal_type_real_is_accessible (ValaDataType* base,
509 ValaSymbol* sym)
510 {
511 ValaSignalType * self;
512 ValaSignal* _tmp0_;
513 ValaSignal* _tmp1_;
514 gboolean result = FALSE;
515 self = (ValaSignalType*) base;
516 g_return_val_if_fail (sym != NULL, FALSE);
517 _tmp0_ = vala_signal_type_get_signal_symbol (self);
518 _tmp1_ = _tmp0_;
519 result = vala_symbol_is_accessible ((ValaSymbol*) _tmp1_, sym);
520 return result;
521 }
522
523 static void
vala_signal_type_class_init(ValaSignalTypeClass * klass,gpointer klass_data)524 vala_signal_type_class_init (ValaSignalTypeClass * klass,
525 gpointer klass_data)
526 {
527 vala_signal_type_parent_class = g_type_class_peek_parent (klass);
528 ((ValaCodeNodeClass *) klass)->finalize = vala_signal_type_finalize;
529 g_type_class_adjust_private_offset (klass, &ValaSignalType_private_offset);
530 ((ValaDataTypeClass *) klass)->copy = (ValaDataType* (*) (ValaDataType*)) vala_signal_type_real_copy;
531 ((ValaDataTypeClass *) klass)->compatible = (gboolean (*) (ValaDataType*, ValaDataType*)) vala_signal_type_real_compatible;
532 ((ValaDataTypeClass *) klass)->to_qualified_string = (gchar* (*) (ValaDataType*, ValaScope*)) vala_signal_type_real_to_qualified_string;
533 ((ValaDataTypeClass *) klass)->get_member = (ValaSymbol* (*) (ValaDataType*, const gchar*)) vala_signal_type_real_get_member;
534 ((ValaDataTypeClass *) klass)->is_accessible = (gboolean (*) (ValaDataType*, ValaSymbol*)) vala_signal_type_real_is_accessible;
535 }
536
537 static void
vala_signal_type_instance_init(ValaSignalType * self,gpointer klass)538 vala_signal_type_instance_init (ValaSignalType * self,
539 gpointer klass)
540 {
541 self->priv = vala_signal_type_get_instance_private (self);
542 }
543
544 static void
vala_signal_type_finalize(ValaCodeNode * obj)545 vala_signal_type_finalize (ValaCodeNode * obj)
546 {
547 ValaSignalType * self;
548 self = G_TYPE_CHECK_INSTANCE_CAST (obj, VALA_TYPE_SIGNAL_TYPE, ValaSignalType);
549 _vala_code_node_unref0 (self->priv->connect_method);
550 _vala_code_node_unref0 (self->priv->connect_after_method);
551 _vala_code_node_unref0 (self->priv->disconnect_method);
552 VALA_CODE_NODE_CLASS (vala_signal_type_parent_class)->finalize (obj);
553 }
554
555 /**
556 * The type of a signal referencea.
557 */
558 static GType
vala_signal_type_get_type_once(void)559 vala_signal_type_get_type_once (void)
560 {
561 static const GTypeInfo g_define_type_info = { sizeof (ValaSignalTypeClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) vala_signal_type_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ValaSignalType), 0, (GInstanceInitFunc) vala_signal_type_instance_init, NULL };
562 GType vala_signal_type_type_id;
563 vala_signal_type_type_id = g_type_register_static (VALA_TYPE_CALLABLE_TYPE, "ValaSignalType", &g_define_type_info, 0);
564 ValaSignalType_private_offset = g_type_add_instance_private (vala_signal_type_type_id, sizeof (ValaSignalTypePrivate));
565 return vala_signal_type_type_id;
566 }
567
568 GType
vala_signal_type_get_type(void)569 vala_signal_type_get_type (void)
570 {
571 static volatile gsize vala_signal_type_type_id__volatile = 0;
572 if (g_once_init_enter (&vala_signal_type_type_id__volatile)) {
573 GType vala_signal_type_type_id;
574 vala_signal_type_type_id = vala_signal_type_get_type_once ();
575 g_once_init_leave (&vala_signal_type_type_id__volatile, vala_signal_type_type_id);
576 }
577 return vala_signal_type_type_id__volatile;
578 }
579
580