Initial commit
[fillmore] / src / marina / marina / AppDirs.c
1 /* AppDirs.c generated by valac, the Vala compiler
2  * generated from AppDirs.vala, do not modify */
3
4 /* Copyright 2009-2010 Yorba Foundation
5  *
6  * This software is licensed under the GNU LGPL (version 2.1 or later).
7  * See the COPYING file in this distribution. 
8  */
9
10 #include <glib.h>
11 #include <glib-object.h>
12 #include <gio/gio.h>
13 #include <stdlib.h>
14 #include <string.h>
15 #include <gobject/gvaluecollector.h>
16
17
18 #define TYPE_APP_DIRS (app_dirs_get_type ())
19 #define APP_DIRS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_APP_DIRS, AppDirs))
20 #define APP_DIRS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_APP_DIRS, AppDirsClass))
21 #define IS_APP_DIRS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_APP_DIRS))
22 #define IS_APP_DIRS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_APP_DIRS))
23 #define APP_DIRS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_APP_DIRS, AppDirsClass))
24
25 typedef struct _AppDirs AppDirs;
26 typedef struct _AppDirsClass AppDirsClass;
27 typedef struct _AppDirsPrivate AppDirsPrivate;
28 #define _g_free0(var) (var = (g_free (var), NULL))
29 #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
30 typedef struct _ParamSpecAppDirs ParamSpecAppDirs;
31
32 struct _AppDirs {
33         GTypeInstance parent_instance;
34         volatile int ref_count;
35         AppDirsPrivate * priv;
36 };
37
38 struct _AppDirsClass {
39         GTypeClass parent_class;
40         void (*finalize) (AppDirs *self);
41 };
42
43 struct _ParamSpecAppDirs {
44         GParamSpec parent_instance;
45 };
46
47
48 static GFile* app_dirs_exec_dir;
49 static GFile* app_dirs_exec_dir = NULL;
50 static char* app_dirs_program_name;
51 static char* app_dirs_program_name = NULL;
52 static gpointer app_dirs_parent_class = NULL;
53
54 gpointer app_dirs_ref (gpointer instance);
55 void app_dirs_unref (gpointer instance);
56 GParamSpec* param_spec_app_dirs (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
57 void value_set_app_dirs (GValue* value, gpointer v_object);
58 void value_take_app_dirs (GValue* value, gpointer v_object);
59 gpointer value_get_app_dirs (const GValue* value);
60 GType app_dirs_get_type (void);
61 enum  {
62         APP_DIRS_DUMMY_PROPERTY
63 };
64 void app_dirs_init (const char* arg0, const char* program_name);
65 void app_dirs_terminate (void);
66 GFile* app_dirs_get_exec_dir (void);
67 static GFile* app_dirs_get_install_dir (void);
68 GFile* app_dirs_get_resources_dir (void);
69 AppDirs* app_dirs_new (void);
70 AppDirs* app_dirs_construct (GType object_type);
71 static void app_dirs_finalize (AppDirs* obj);
72
73
74
75 #line 14 "AppDirs.vala"
76 void app_dirs_init (const char* arg0, const char* program_name) {
77 #line 78 "AppDirs.c"
78         char* _tmp0_;
79         GFile* _tmp1_;
80         GFile* exec_file;
81         GFile* _tmp2_;
82         char* _tmp3_;
83 #line 14 "AppDirs.vala"
84         g_return_if_fail (arg0 != NULL);
85 #line 14 "AppDirs.vala"
86         g_return_if_fail (program_name != NULL);
87 #line 15 "AppDirs.vala"
88         exec_file = (_tmp1_ = g_file_new_for_path (_tmp0_ = g_find_program_in_path (arg0)), _g_free0 (_tmp0_), _tmp1_);
89 #line 16 "AppDirs.vala"
90         app_dirs_exec_dir = (_tmp2_ = g_file_get_parent (exec_file), _g_object_unref0 (app_dirs_exec_dir), _tmp2_);
91 #line 17 "AppDirs.vala"
92         app_dirs_program_name = (_tmp3_ = g_strdup (program_name), _g_free0 (app_dirs_program_name), _tmp3_);
93 #line 94 "AppDirs.c"
94         _g_object_unref0 (exec_file);
95 }
96
97
98 #line 20 "AppDirs.vala"
99 void app_dirs_terminate (void) {
100 #line 101 "AppDirs.c"
101 }
102
103
104 static gpointer _g_object_ref0 (gpointer self) {
105         return self ? g_object_ref (self) : NULL;
106 }
107
108
109 #line 23 "AppDirs.vala"
110 GFile* app_dirs_get_exec_dir (void) {
111 #line 112 "AppDirs.c"
112         GFile* result = NULL;
113         result = _g_object_ref0 (app_dirs_exec_dir);
114 #line 24 "AppDirs.vala"
115         return result;
116 #line 117 "AppDirs.c"
117 }
118
119
120 #line 27 "AppDirs.vala"
121 GFile* app_dirs_get_resources_dir (void) {
122 #line 123 "AppDirs.c"
123         GFile* result = NULL;
124         GFile* exec_dir;
125         GFile* install_dir;
126         GFile* return_value;
127 #line 28 "AppDirs.vala"
128         exec_dir = app_dirs_get_exec_dir ();
129 #line 29 "AppDirs.vala"
130         install_dir = app_dirs_get_install_dir ();
131 #line 132 "AppDirs.c"
132         return_value = NULL;
133 #line 31 "AppDirs.vala"
134         if (install_dir != NULL) {
135 #line 136 "AppDirs.c"
136                 GFile* _tmp1_;
137                 GFile* _tmp0_;
138 #line 32 "AppDirs.vala"
139                 return_value = (_tmp1_ = g_file_get_child (_tmp0_ = g_file_get_child (install_dir, "share"), app_dirs_program_name), _g_object_unref0 (return_value), _tmp1_);
140 #line 141 "AppDirs.c"
141                 _g_object_unref0 (_tmp0_);
142         } else {
143                 GFile* _tmp2_;
144 #line 34 "AppDirs.vala"
145                 return_value = (_tmp2_ = _g_object_ref0 (exec_dir), _g_object_unref0 (return_value), _tmp2_);
146 #line 147 "AppDirs.c"
147         }
148         result = g_file_get_child (return_value, "resources");
149         _g_object_unref0 (exec_dir);
150         _g_object_unref0 (install_dir);
151         _g_object_unref0 (return_value);
152 #line 36 "AppDirs.vala"
153         return result;
154 #line 155 "AppDirs.c"
155 }
156
157
158 #line 39 "AppDirs.vala"
159 static GFile* app_dirs_get_install_dir (void) {
160 #line 161 "AppDirs.c"
161         GFile* result = NULL;
162         GFile* prefix_dir;
163         GFile* _tmp0_;
164 #line 40 "AppDirs.vala"
165         prefix_dir = g_file_new_for_path (_PREFIX);
166 #line 167 "AppDirs.c"
167         _tmp0_ = NULL;
168 #line 41 "AppDirs.vala"
169         if (g_file_has_prefix (app_dirs_exec_dir, prefix_dir)) {
170 #line 41 "AppDirs.vala"
171                 _tmp0_ = prefix_dir;
172 #line 173 "AppDirs.c"
173         } else {
174 #line 41 "AppDirs.vala"
175                 _tmp0_ = NULL;
176 #line 177 "AppDirs.c"
177         }
178         result = _g_object_ref0 (_tmp0_);
179         _g_object_unref0 (prefix_dir);
180 #line 41 "AppDirs.vala"
181         return result;
182 #line 183 "AppDirs.c"
183 }
184
185
186 #line 10 "AppDirs.vala"
187 AppDirs* app_dirs_construct (GType object_type) {
188 #line 189 "AppDirs.c"
189         AppDirs* self;
190         self = (AppDirs*) g_type_create_instance (object_type);
191         return self;
192 }
193
194
195 #line 10 "AppDirs.vala"
196 AppDirs* app_dirs_new (void) {
197 #line 10 "AppDirs.vala"
198         return app_dirs_construct (TYPE_APP_DIRS);
199 #line 200 "AppDirs.c"
200 }
201
202
203 static void value_app_dirs_init (GValue* value) {
204         value->data[0].v_pointer = NULL;
205 }
206
207
208 static void value_app_dirs_free_value (GValue* value) {
209         if (value->data[0].v_pointer) {
210                 app_dirs_unref (value->data[0].v_pointer);
211         }
212 }
213
214
215 static void value_app_dirs_copy_value (const GValue* src_value, GValue* dest_value) {
216         if (src_value->data[0].v_pointer) {
217                 dest_value->data[0].v_pointer = app_dirs_ref (src_value->data[0].v_pointer);
218         } else {
219                 dest_value->data[0].v_pointer = NULL;
220         }
221 }
222
223
224 static gpointer value_app_dirs_peek_pointer (const GValue* value) {
225         return value->data[0].v_pointer;
226 }
227
228
229 static gchar* value_app_dirs_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
230         if (collect_values[0].v_pointer) {
231                 AppDirs* object;
232                 object = collect_values[0].v_pointer;
233                 if (object->parent_instance.g_class == NULL) {
234                         return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
235                 } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
236                         return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
237                 }
238                 value->data[0].v_pointer = app_dirs_ref (object);
239         } else {
240                 value->data[0].v_pointer = NULL;
241         }
242         return NULL;
243 }
244
245
246 static gchar* value_app_dirs_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
247         AppDirs** object_p;
248         object_p = collect_values[0].v_pointer;
249         if (!object_p) {
250                 return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
251         }
252         if (!value->data[0].v_pointer) {
253                 *object_p = NULL;
254         } else if (collect_flags && G_VALUE_NOCOPY_CONTENTS) {
255                 *object_p = value->data[0].v_pointer;
256         } else {
257                 *object_p = app_dirs_ref (value->data[0].v_pointer);
258         }
259         return NULL;
260 }
261
262
263 GParamSpec* param_spec_app_dirs (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
264         ParamSpecAppDirs* spec;
265         g_return_val_if_fail (g_type_is_a (object_type, TYPE_APP_DIRS), NULL);
266         spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
267         G_PARAM_SPEC (spec)->value_type = object_type;
268         return G_PARAM_SPEC (spec);
269 }
270
271
272 gpointer value_get_app_dirs (const GValue* value) {
273         g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_APP_DIRS), NULL);
274         return value->data[0].v_pointer;
275 }
276
277
278 void value_set_app_dirs (GValue* value, gpointer v_object) {
279         AppDirs* old;
280         g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_APP_DIRS));
281         old = value->data[0].v_pointer;
282         if (v_object) {
283                 g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_APP_DIRS));
284                 g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
285                 value->data[0].v_pointer = v_object;
286                 app_dirs_ref (value->data[0].v_pointer);
287         } else {
288                 value->data[0].v_pointer = NULL;
289         }
290         if (old) {
291                 app_dirs_unref (old);
292         }
293 }
294
295
296 void value_take_app_dirs (GValue* value, gpointer v_object) {
297         AppDirs* old;
298         g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_APP_DIRS));
299         old = value->data[0].v_pointer;
300         if (v_object) {
301                 g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_APP_DIRS));
302                 g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
303                 value->data[0].v_pointer = v_object;
304         } else {
305                 value->data[0].v_pointer = NULL;
306         }
307         if (old) {
308                 app_dirs_unref (old);
309         }
310 }
311
312
313 static void app_dirs_class_init (AppDirsClass * klass) {
314         app_dirs_parent_class = g_type_class_peek_parent (klass);
315         APP_DIRS_CLASS (klass)->finalize = app_dirs_finalize;
316 }
317
318
319 static void app_dirs_instance_init (AppDirs * self) {
320         self->ref_count = 1;
321 }
322
323
324 static void app_dirs_finalize (AppDirs* obj) {
325         AppDirs * self;
326         self = APP_DIRS (obj);
327 }
328
329
330 GType app_dirs_get_type (void) {
331         static volatile gsize app_dirs_type_id__volatile = 0;
332         if (g_once_init_enter (&app_dirs_type_id__volatile)) {
333                 static const GTypeValueTable g_define_type_value_table = { value_app_dirs_init, value_app_dirs_free_value, value_app_dirs_copy_value, value_app_dirs_peek_pointer, "p", value_app_dirs_collect_value, "p", value_app_dirs_lcopy_value };
334                 static const GTypeInfo g_define_type_info = { sizeof (AppDirsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) app_dirs_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (AppDirs), 0, (GInstanceInitFunc) app_dirs_instance_init, &g_define_type_value_table };
335                 static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
336                 GType app_dirs_type_id;
337                 app_dirs_type_id = g_type_register_fundamental (g_type_fundamental_next (), "AppDirs", &g_define_type_info, &g_define_type_fundamental_info, 0);
338                 g_once_init_leave (&app_dirs_type_id__volatile, app_dirs_type_id);
339         }
340         return app_dirs_type_id__volatile;
341 }
342
343
344 gpointer app_dirs_ref (gpointer instance) {
345         AppDirs* self;
346         self = instance;
347         g_atomic_int_inc (&self->ref_count);
348         return instance;
349 }
350
351
352 void app_dirs_unref (gpointer instance) {
353         AppDirs* self;
354         self = instance;
355         if (g_atomic_int_dec_and_test (&self->ref_count)) {
356                 APP_DIRS_GET_CLASS (self)->finalize (self);
357                 g_type_free_instance ((GTypeInstance *) self);
358         }
359 }
360
361
362
363