1
/* valaccodefunctiondeclarator.c generated by valac, the Vala compiler
2
* generated from valaccodefunctiondeclarator.vala, do not modify */
4
/* valaccodefunctiondeclarator.vala
6
* Copyright (C) 2006-2007 JĆ¼rg Billeter
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.
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.
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
23
* JĆ¼rg Billeter <j@bitron.ch>
27
#include <glib-object.h>
33
#define VALA_TYPE_CCODE_NODE (vala_ccode_node_get_type ())
34
#define VALA_CCODE_NODE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CCODE_NODE, ValaCCodeNode))
35
#define VALA_CCODE_NODE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CCODE_NODE, ValaCCodeNodeClass))
36
#define VALA_IS_CCODE_NODE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CCODE_NODE))
37
#define VALA_IS_CCODE_NODE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CCODE_NODE))
38
#define VALA_CCODE_NODE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CCODE_NODE, ValaCCodeNodeClass))
40
typedef struct _ValaCCodeNode ValaCCodeNode;
41
typedef struct _ValaCCodeNodeClass ValaCCodeNodeClass;
42
typedef struct _ValaCCodeNodePrivate ValaCCodeNodePrivate;
44
#define VALA_TYPE_CCODE_WRITER (vala_ccode_writer_get_type ())
45
#define VALA_CCODE_WRITER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CCODE_WRITER, ValaCCodeWriter))
46
#define VALA_CCODE_WRITER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CCODE_WRITER, ValaCCodeWriterClass))
47
#define VALA_IS_CCODE_WRITER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CCODE_WRITER))
48
#define VALA_IS_CCODE_WRITER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CCODE_WRITER))
49
#define VALA_CCODE_WRITER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CCODE_WRITER, ValaCCodeWriterClass))
51
typedef struct _ValaCCodeWriter ValaCCodeWriter;
52
typedef struct _ValaCCodeWriterClass ValaCCodeWriterClass;
54
#define VALA_TYPE_CCODE_DECLARATOR (vala_ccode_declarator_get_type ())
55
#define VALA_CCODE_DECLARATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CCODE_DECLARATOR, ValaCCodeDeclarator))
56
#define VALA_CCODE_DECLARATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CCODE_DECLARATOR, ValaCCodeDeclaratorClass))
57
#define VALA_IS_CCODE_DECLARATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CCODE_DECLARATOR))
58
#define VALA_IS_CCODE_DECLARATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CCODE_DECLARATOR))
59
#define VALA_CCODE_DECLARATOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CCODE_DECLARATOR, ValaCCodeDeclaratorClass))
61
typedef struct _ValaCCodeDeclarator ValaCCodeDeclarator;
62
typedef struct _ValaCCodeDeclaratorClass ValaCCodeDeclaratorClass;
63
typedef struct _ValaCCodeDeclaratorPrivate ValaCCodeDeclaratorPrivate;
65
#define VALA_TYPE_CCODE_FUNCTION_DECLARATOR (vala_ccode_function_declarator_get_type ())
66
#define VALA_CCODE_FUNCTION_DECLARATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CCODE_FUNCTION_DECLARATOR, ValaCCodeFunctionDeclarator))
67
#define VALA_CCODE_FUNCTION_DECLARATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CCODE_FUNCTION_DECLARATOR, ValaCCodeFunctionDeclaratorClass))
68
#define VALA_IS_CCODE_FUNCTION_DECLARATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CCODE_FUNCTION_DECLARATOR))
69
#define VALA_IS_CCODE_FUNCTION_DECLARATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CCODE_FUNCTION_DECLARATOR))
70
#define VALA_CCODE_FUNCTION_DECLARATOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CCODE_FUNCTION_DECLARATOR, ValaCCodeFunctionDeclaratorClass))
72
typedef struct _ValaCCodeFunctionDeclarator ValaCCodeFunctionDeclarator;
73
typedef struct _ValaCCodeFunctionDeclaratorClass ValaCCodeFunctionDeclaratorClass;
74
typedef struct _ValaCCodeFunctionDeclaratorPrivate ValaCCodeFunctionDeclaratorPrivate;
76
#define VALA_TYPE_CCODE_PARAMETER (vala_ccode_parameter_get_type ())
77
#define VALA_CCODE_PARAMETER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CCODE_PARAMETER, ValaCCodeParameter))
78
#define VALA_CCODE_PARAMETER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CCODE_PARAMETER, ValaCCodeParameterClass))
79
#define VALA_IS_CCODE_PARAMETER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CCODE_PARAMETER))
80
#define VALA_IS_CCODE_PARAMETER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CCODE_PARAMETER))
81
#define VALA_CCODE_PARAMETER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CCODE_PARAMETER, ValaCCodeParameterClass))
83
typedef struct _ValaCCodeParameter ValaCCodeParameter;
84
typedef struct _ValaCCodeParameterClass ValaCCodeParameterClass;
85
#define _g_free0(var) (var = (g_free (var), NULL))
86
#define _vala_iterable_unref0(var) ((var == NULL) ? NULL : (var = (vala_iterable_unref (var), NULL)))
87
#define _vala_ccode_node_unref0(var) ((var == NULL) ? NULL : (var = (vala_ccode_node_unref (var), NULL)))
89
struct _ValaCCodeNode {
90
GTypeInstance parent_instance;
91
volatile int ref_count;
92
ValaCCodeNodePrivate * priv;
95
struct _ValaCCodeNodeClass {
96
GTypeClass parent_class;
97
void (*finalize) (ValaCCodeNode *self);
98
void (*write) (ValaCCodeNode* self, ValaCCodeWriter* writer);
99
void (*write_declaration) (ValaCCodeNode* self, ValaCCodeWriter* writer);
100
void (*write_combined) (ValaCCodeNode* self, ValaCCodeWriter* writer);
103
struct _ValaCCodeDeclarator {
104
ValaCCodeNode parent_instance;
105
ValaCCodeDeclaratorPrivate * priv;
108
struct _ValaCCodeDeclaratorClass {
109
ValaCCodeNodeClass parent_class;
110
void (*write_initialization) (ValaCCodeDeclarator* self, ValaCCodeWriter* writer);
113
struct _ValaCCodeFunctionDeclarator {
114
ValaCCodeDeclarator parent_instance;
115
ValaCCodeFunctionDeclaratorPrivate * priv;
118
struct _ValaCCodeFunctionDeclaratorClass {
119
ValaCCodeDeclaratorClass parent_class;
122
struct _ValaCCodeFunctionDeclaratorPrivate {
124
ValaList* parameters;
128
static gpointer vala_ccode_function_declarator_parent_class = NULL;
130
gpointer vala_ccode_node_ref (gpointer instance);
131
void vala_ccode_node_unref (gpointer instance);
132
GParamSpec* vala_param_spec_ccode_node (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
133
void vala_value_set_ccode_node (GValue* value, gpointer v_object);
134
void vala_value_take_ccode_node (GValue* value, gpointer v_object);
135
gpointer vala_value_get_ccode_node (const GValue* value);
136
GType vala_ccode_node_get_type (void) G_GNUC_CONST;
137
gpointer vala_ccode_writer_ref (gpointer instance);
138
void vala_ccode_writer_unref (gpointer instance);
139
GParamSpec* vala_param_spec_ccode_writer (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
140
void vala_value_set_ccode_writer (GValue* value, gpointer v_object);
141
void vala_value_take_ccode_writer (GValue* value, gpointer v_object);
142
gpointer vala_value_get_ccode_writer (const GValue* value);
143
GType vala_ccode_writer_get_type (void) G_GNUC_CONST;
144
GType vala_ccode_declarator_get_type (void) G_GNUC_CONST;
145
GType vala_ccode_function_declarator_get_type (void) G_GNUC_CONST;
146
GType vala_ccode_parameter_get_type (void) G_GNUC_CONST;
147
#define VALA_CCODE_FUNCTION_DECLARATOR_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), VALA_TYPE_CCODE_FUNCTION_DECLARATOR, ValaCCodeFunctionDeclaratorPrivate))
149
VALA_CCODE_FUNCTION_DECLARATOR_DUMMY_PROPERTY
151
ValaCCodeFunctionDeclarator* vala_ccode_function_declarator_new (const gchar* name);
152
ValaCCodeFunctionDeclarator* vala_ccode_function_declarator_construct (GType object_type, const gchar* name);
153
ValaCCodeDeclarator* vala_ccode_declarator_construct (GType object_type);
154
void vala_ccode_function_declarator_set_name (ValaCCodeFunctionDeclarator* self, const gchar* value);
155
void vala_ccode_function_declarator_add_parameter (ValaCCodeFunctionDeclarator* self, ValaCCodeParameter* param);
156
static void vala_ccode_function_declarator_real_write (ValaCCodeNode* base, ValaCCodeWriter* writer);
157
void vala_ccode_node_write_declaration (ValaCCodeNode* self, ValaCCodeWriter* writer);
158
static void vala_ccode_function_declarator_real_write_declaration (ValaCCodeNode* base, ValaCCodeWriter* writer);
159
void vala_ccode_writer_write_string (ValaCCodeWriter* self, const gchar* s);
160
const gchar* vala_ccode_function_declarator_get_name (ValaCCodeFunctionDeclarator* self);
161
void vala_ccode_node_write (ValaCCodeNode* self, ValaCCodeWriter* writer);
162
static void vala_ccode_function_declarator_finalize (ValaCCodeNode* obj);
165
ValaCCodeFunctionDeclarator* vala_ccode_function_declarator_construct (GType object_type, const gchar* name) {
166
ValaCCodeFunctionDeclarator* self = NULL;
168
g_return_val_if_fail (name != NULL, NULL);
169
self = (ValaCCodeFunctionDeclarator*) vala_ccode_declarator_construct (object_type);
171
vala_ccode_function_declarator_set_name (self, _tmp0_);
176
ValaCCodeFunctionDeclarator* vala_ccode_function_declarator_new (const gchar* name) {
177
return vala_ccode_function_declarator_construct (VALA_TYPE_CCODE_FUNCTION_DECLARATOR, name);
182
* Appends the specified parameter to the list of function parameters.
184
* @param param a formal parameter
186
void vala_ccode_function_declarator_add_parameter (ValaCCodeFunctionDeclarator* self, ValaCCodeParameter* param) {
188
ValaCCodeParameter* _tmp1_;
189
g_return_if_fail (self != NULL);
190
g_return_if_fail (param != NULL);
191
_tmp0_ = self->priv->parameters;
193
vala_collection_add ((ValaCollection*) _tmp0_, _tmp1_);
197
static void vala_ccode_function_declarator_real_write (ValaCCodeNode* base, ValaCCodeWriter* writer) {
198
ValaCCodeFunctionDeclarator * self;
199
ValaCCodeWriter* _tmp0_;
200
self = (ValaCCodeFunctionDeclarator*) base;
201
g_return_if_fail (writer != NULL);
203
vala_ccode_node_write_declaration ((ValaCCodeNode*) self, _tmp0_);
207
static gpointer _vala_iterable_ref0 (gpointer self) {
208
return self ? vala_iterable_ref (self) : NULL;
212
static void vala_ccode_function_declarator_real_write_declaration (ValaCCodeNode* base, ValaCCodeWriter* writer) {
213
ValaCCodeFunctionDeclarator * self;
214
ValaCCodeWriter* _tmp0_;
215
ValaCCodeWriter* _tmp1_;
217
ValaCCodeWriter* _tmp3_;
219
ValaCCodeWriter* _tmp19_;
220
self = (ValaCCodeFunctionDeclarator*) base;
221
g_return_if_fail (writer != NULL);
223
vala_ccode_writer_write_string (_tmp0_, "(*");
225
_tmp2_ = self->priv->_name;
226
vala_ccode_writer_write_string (_tmp1_, _tmp2_);
228
vala_ccode_writer_write_string (_tmp3_, ") (");
233
ValaList* _param_list;
239
_tmp4_ = self->priv->parameters;
240
_tmp5_ = _vala_iterable_ref0 (_tmp4_);
241
_param_list = _tmp5_;
242
_tmp6_ = _param_list;
243
_tmp7_ = vala_collection_get_size ((ValaCollection*) _tmp6_);
245
_param_size = _tmp8_;
253
gpointer _tmp14_ = NULL;
254
ValaCCodeParameter* param;
256
ValaCCodeParameter* _tmp17_;
257
ValaCCodeWriter* _tmp18_;
258
_tmp9_ = _param_index;
259
_param_index = _tmp9_ + 1;
260
_tmp10_ = _param_index;
261
_tmp11_ = _param_size;
262
if (!(_tmp10_ < _tmp11_)) {
265
_tmp12_ = _param_list;
266
_tmp13_ = _param_index;
267
_tmp14_ = vala_list_get (_tmp12_, _tmp13_);
268
param = (ValaCCodeParameter*) _tmp14_;
271
ValaCCodeWriter* _tmp16_;
273
vala_ccode_writer_write_string (_tmp16_, ", ");
279
vala_ccode_node_write ((ValaCCodeNode*) _tmp17_, _tmp18_);
280
_vala_ccode_node_unref0 (param);
282
_vala_iterable_unref0 (_param_list);
285
vala_ccode_writer_write_string (_tmp19_, ")");
289
const gchar* vala_ccode_function_declarator_get_name (ValaCCodeFunctionDeclarator* self) {
292
g_return_val_if_fail (self != NULL, NULL);
293
_tmp0_ = self->priv->_name;
299
void vala_ccode_function_declarator_set_name (ValaCCodeFunctionDeclarator* self, const gchar* value) {
302
g_return_if_fail (self != NULL);
304
_tmp1_ = g_strdup (_tmp0_);
305
_g_free0 (self->priv->_name);
306
self->priv->_name = _tmp1_;
310
static void vala_ccode_function_declarator_class_init (ValaCCodeFunctionDeclaratorClass * klass) {
311
vala_ccode_function_declarator_parent_class = g_type_class_peek_parent (klass);
312
VALA_CCODE_NODE_CLASS (klass)->finalize = vala_ccode_function_declarator_finalize;
313
g_type_class_add_private (klass, sizeof (ValaCCodeFunctionDeclaratorPrivate));
314
VALA_CCODE_NODE_CLASS (klass)->write = vala_ccode_function_declarator_real_write;
315
VALA_CCODE_NODE_CLASS (klass)->write_declaration = vala_ccode_function_declarator_real_write_declaration;
319
static void vala_ccode_function_declarator_instance_init (ValaCCodeFunctionDeclarator * self) {
321
ValaArrayList* _tmp1_;
322
self->priv = VALA_CCODE_FUNCTION_DECLARATOR_GET_PRIVATE (self);
323
_tmp0_ = g_direct_equal;
324
_tmp1_ = vala_array_list_new (VALA_TYPE_CCODE_PARAMETER, (GBoxedCopyFunc) vala_ccode_node_ref, vala_ccode_node_unref, _tmp0_);
325
self->priv->parameters = (ValaList*) _tmp1_;
329
static void vala_ccode_function_declarator_finalize (ValaCCodeNode* obj) {
330
ValaCCodeFunctionDeclarator * self;
331
self = G_TYPE_CHECK_INSTANCE_CAST (obj, VALA_TYPE_CCODE_FUNCTION_DECLARATOR, ValaCCodeFunctionDeclarator);
332
_g_free0 (self->priv->_name);
333
_vala_iterable_unref0 (self->priv->parameters);
334
VALA_CCODE_NODE_CLASS (vala_ccode_function_declarator_parent_class)->finalize (obj);
339
* Represents a function pointer declarator in the C code.
341
GType vala_ccode_function_declarator_get_type (void) {
342
static volatile gsize vala_ccode_function_declarator_type_id__volatile = 0;
343
if (g_once_init_enter (&vala_ccode_function_declarator_type_id__volatile)) {
344
static const GTypeInfo g_define_type_info = { sizeof (ValaCCodeFunctionDeclaratorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) vala_ccode_function_declarator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ValaCCodeFunctionDeclarator), 0, (GInstanceInitFunc) vala_ccode_function_declarator_instance_init, NULL };
345
GType vala_ccode_function_declarator_type_id;
346
vala_ccode_function_declarator_type_id = g_type_register_static (VALA_TYPE_CCODE_DECLARATOR, "ValaCCodeFunctionDeclarator", &g_define_type_info, 0);
347
g_once_init_leave (&vala_ccode_function_declarator_type_id__volatile, vala_ccode_function_declarator_type_id);
349
return vala_ccode_function_declarator_type_id__volatile;