1 /* moonshot-dbus-server.c generated by valac 0.10.4, the Vala compiler
2 * generated from moonshot-dbus-server.vala, do not modify */
6 #include <glib-object.h>
11 #include <dbus/dbus.h>
12 #include <dbus/dbus-glib.h>
13 #include <dbus/dbus-glib-lowlevel.h>
16 #define TYPE_MOONSHOT_SERVER (moonshot_server_get_type ())
17 #define MOONSHOT_SERVER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MOONSHOT_SERVER, MoonshotServer))
18 #define MOONSHOT_SERVER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MOONSHOT_SERVER, MoonshotServerClass))
19 #define IS_MOONSHOT_SERVER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MOONSHOT_SERVER))
20 #define IS_MOONSHOT_SERVER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MOONSHOT_SERVER))
21 #define MOONSHOT_SERVER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MOONSHOT_SERVER, MoonshotServerClass))
23 typedef struct _MoonshotServer MoonshotServer;
24 typedef struct _MoonshotServerClass MoonshotServerClass;
25 typedef struct _MoonshotServerPrivate MoonshotServerPrivate;
27 #define TYPE_MAIN_WINDOW (main_window_get_type ())
28 #define MAIN_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MAIN_WINDOW, MainWindow))
29 #define MAIN_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MAIN_WINDOW, MainWindowClass))
30 #define IS_MAIN_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MAIN_WINDOW))
31 #define IS_MAIN_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MAIN_WINDOW))
32 #define MAIN_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MAIN_WINDOW, MainWindowClass))
34 typedef struct _MainWindow MainWindow;
35 typedef struct _MainWindowClass MainWindowClass;
36 #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
37 #define _g_free0(var) (var = (g_free (var), NULL))
39 #define TYPE_IDENTITY_REQUEST (identity_request_get_type ())
40 #define IDENTITY_REQUEST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_IDENTITY_REQUEST, IdentityRequest))
41 #define IDENTITY_REQUEST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_IDENTITY_REQUEST, IdentityRequestClass))
42 #define IS_IDENTITY_REQUEST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_IDENTITY_REQUEST))
43 #define IS_IDENTITY_REQUEST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_IDENTITY_REQUEST))
44 #define IDENTITY_REQUEST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_IDENTITY_REQUEST, IdentityRequestClass))
46 typedef struct _IdentityRequest IdentityRequest;
47 typedef struct _IdentityRequestClass IdentityRequestClass;
48 typedef struct _IdentityRequestPrivate IdentityRequestPrivate;
50 #define TYPE_ID_CARD (id_card_get_type ())
51 #define ID_CARD(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ID_CARD, IdCard))
52 #define ID_CARD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ID_CARD, IdCardClass))
53 #define IS_ID_CARD(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ID_CARD))
54 #define IS_ID_CARD_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ID_CARD))
55 #define ID_CARD_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ID_CARD, IdCardClass))
57 typedef struct _IdCard IdCard;
58 typedef struct _IdCardClass IdCardClass;
59 typedef struct _Block2Data Block2Data;
60 typedef struct _MoonshotServerGetIdentityData MoonshotServerGetIdentityData;
61 typedef struct _DBusObjectVTable _DBusObjectVTable;
63 struct _MoonshotServer {
64 GObject parent_instance;
65 MoonshotServerPrivate * priv;
68 struct _MoonshotServerClass {
69 GObjectClass parent_class;
72 struct _MoonshotServerPrivate {
73 MainWindow* main_window;
76 typedef void (*ReturnIdentityCallback) (IdentityRequest* request, void* user_data);
77 struct _IdentityRequest {
78 GObject parent_instance;
79 IdentityRequestPrivate * priv;
84 struct _IdentityRequestClass {
85 GObjectClass parent_class;
90 MoonshotServer * self;
91 gpointer _async_data_;
94 struct _MoonshotServerGetIdentityData {
97 GSimpleAsyncResult* _async_result;
104 char* certificate_out;
106 gboolean has_service;
107 IdentityRequest* request;
113 char** id_card_service_collection;
114 int id_card_service_collection_length1;
115 int id_card_service_it;
116 char* id_card_service;
123 struct _DBusObjectVTable {
124 void (*register_object) (DBusConnection*, const char*, void*);
128 static gpointer moonshot_server_parent_class = NULL;
130 GType moonshot_server_get_type (void) G_GNUC_CONST;
131 GType main_window_get_type (void) G_GNUC_CONST;
132 #define MOONSHOT_SERVER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_MOONSHOT_SERVER, MoonshotServerPrivate))
134 MOONSHOT_SERVER_DUMMY_PROPERTY
136 MoonshotServer* moonshot_server_new (GtkWindow* window);
137 MoonshotServer* moonshot_server_construct (GType object_type, GtkWindow* window);
138 static void moonshot_server_get_identity_data_free (gpointer _data);
139 static void moonshot_server_get_identity_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
140 void moonshot_server_get_identity (MoonshotServer* self, const char* nai, const char* password, const char* service, GAsyncReadyCallback _callback_, gpointer _user_data_);
141 gboolean moonshot_server_get_identity_finish (MoonshotServer* self, GAsyncResult* _res_, char** nai_out, char** password_out, char** certificate_out);
142 static gboolean moonshot_server_get_identity_co (MoonshotServerGetIdentityData* data);
143 IdentityRequest* identity_request_new (MainWindow* main_window, const char* nai, const char* password, const char* certificate);
144 IdentityRequest* identity_request_construct (GType object_type, MainWindow* main_window, const char* nai, const char* password, const char* certificate);
145 GType identity_request_get_type (void) G_GNUC_CONST;
146 void identity_request_set_callback (IdentityRequest* self, ReturnIdentityCallback cb, void* cb_target, GDestroyNotify cb_target_destroy_notify);
147 static void _lambda1_ (IdentityRequest* IdentityRequest, Block2Data* _data2_);
148 static void __lambda1__return_identity_callback (IdentityRequest* request, gpointer self);
149 gboolean identity_request_execute (IdentityRequest* self);
150 GType id_card_get_type (void) G_GNUC_CONST;
151 char** id_card_get_services (IdCard* self, int* result_length1);
152 const char* id_card_get_nai (IdCard* self);
153 const char* id_card_get_password (IdCard* self);
154 static Block2Data* block2_data_ref (Block2Data* _data2_);
155 static void block2_data_unref (Block2Data* _data2_);
156 static void _vala_dbus_register_object (DBusConnection* connection, const char* path, void* object);
157 static void _vala_dbus_unregister_object (gpointer connection, GObject* object);
158 void moonshot_server_dbus_register_object (DBusConnection* connection, const char* path, void* object);
159 void _moonshot_server_dbus_unregister (DBusConnection* connection, void* _user_data_);
160 DBusHandlerResult moonshot_server_dbus_message (DBusConnection* connection, DBusMessage* message, void* object);
161 static DBusHandlerResult _dbus_moonshot_server_introspect (MoonshotServer* self, DBusConnection* connection, DBusMessage* message);
162 static DBusHandlerResult _dbus_moonshot_server_property_get_all (MoonshotServer* self, DBusConnection* connection, DBusMessage* message);
163 static DBusHandlerResult _dbus_moonshot_server_get_identity (MoonshotServer* self, DBusConnection* connection, DBusMessage* message);
164 static void _dbus_moonshot_server_get_identity_ready (GObject * source_object, GAsyncResult * _res_, gpointer * _user_data_);
165 static void moonshot_server_finalize (GObject* obj);
166 static int _vala_strcmp0 (const char * str1, const char * str2);
168 static const DBusObjectPathVTable _moonshot_server_dbus_path_vtable = {_moonshot_server_dbus_unregister, moonshot_server_dbus_message};
169 static const _DBusObjectVTable _moonshot_server_dbus_vtable = {moonshot_server_dbus_register_object};
172 static gpointer _g_object_ref0 (gpointer self) {
173 return self ? g_object_ref (self) : NULL;
177 MoonshotServer* moonshot_server_construct (GType object_type, GtkWindow* window) {
178 MoonshotServer * self = NULL;
180 g_return_val_if_fail (window != NULL, NULL);
181 self = (MoonshotServer*) g_object_new (object_type, NULL);
182 self->priv->main_window = (_tmp0_ = _g_object_ref0 (MAIN_WINDOW (window)), _g_object_unref0 (self->priv->main_window), _tmp0_);
187 MoonshotServer* moonshot_server_new (GtkWindow* window) {
188 return moonshot_server_construct (TYPE_MOONSHOT_SERVER, window);
192 static void moonshot_server_get_identity_data_free (gpointer _data) {
193 MoonshotServerGetIdentityData* data;
195 _g_free0 (data->nai);
196 _g_free0 (data->password);
197 _g_free0 (data->service);
198 g_object_unref (data->self);
199 g_slice_free (MoonshotServerGetIdentityData, data);
203 void moonshot_server_get_identity (MoonshotServer* self, const char* nai, const char* password, const char* service, GAsyncReadyCallback _callback_, gpointer _user_data_) {
204 MoonshotServerGetIdentityData* _data_;
205 _data_ = g_slice_new0 (MoonshotServerGetIdentityData);
206 _data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, moonshot_server_get_identity);
207 g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, moonshot_server_get_identity_data_free);
208 _data_->self = g_object_ref (self);
209 _data_->nai = g_strdup (nai);
210 _data_->password = g_strdup (password);
211 _data_->service = g_strdup (service);
212 moonshot_server_get_identity_co (_data_);
216 gboolean moonshot_server_get_identity_finish (MoonshotServer* self, GAsyncResult* _res_, char** nai_out, char** password_out, char** certificate_out) {
218 MoonshotServerGetIdentityData* _data_;
219 _data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
220 *nai_out = _data_->nai_out;
221 _data_->nai_out = NULL;
222 *password_out = _data_->password_out;
223 _data_->password_out = NULL;
224 *certificate_out = _data_->certificate_out;
225 _data_->certificate_out = NULL;
226 result = _data_->result;
231 static void moonshot_server_get_identity_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
232 MoonshotServerGetIdentityData* data;
235 moonshot_server_get_identity_co (data);
240 * This is the function used by the GSS mechanism to get the NAI,
241 * password and certificate of the ID card for the specificated service.
243 * The function will block until the user choose the ID card.
245 * @param nai NAI of the ID Card (optional)
246 * @param password Password of the ID Card (optional)
247 * @param service Service application request an ID Card for
248 * @param nai_out NAI stored in the ID Card
249 * @param password_out Password stored in the ID Card
250 * @param certificate Certificate stored in th ID Card
252 * @return true if the user choose a correct ID card for that service,
255 static void _lambda1_ (IdentityRequest* IdentityRequest, Block2Data* _data2_) {
256 MoonshotServer * self;
257 self = _data2_->self;
258 g_return_if_fail (IdentityRequest != NULL);
259 moonshot_server_get_identity_co (_data2_->_async_data_);
263 static void __lambda1__return_identity_callback (IdentityRequest* request, gpointer self) {
264 _lambda1_ (request, self);
268 static Block2Data* block2_data_ref (Block2Data* _data2_) {
269 g_atomic_int_inc (&_data2_->_ref_count_);
274 static void block2_data_unref (Block2Data* _data2_) {
275 if (g_atomic_int_dec_and_test (&_data2_->_ref_count_)) {
276 _g_object_unref0 (_data2_->self);
277 g_slice_free (Block2Data, _data2_);
282 static gboolean moonshot_server_get_identity_co (MoonshotServerGetIdentityData* data) {
283 switch (data->_state_) {
287 g_assert_not_reached ();
292 data->_data2_ = g_slice_new0 (Block2Data);
293 data->_data2_->_ref_count_ = 1;
294 data->_data2_->self = g_object_ref (data->self);
295 data->_data2_->_async_data_ = data;
296 data->has_service = FALSE;
297 data->request = identity_request_new (data->self->priv->main_window, data->nai, data->password, data->service);
298 identity_request_set_callback (data->request, __lambda1__return_identity_callback, block2_data_ref (data->_data2_), block2_data_unref);
299 identity_request_execute (data->request);
304 data->nai_out = (data->_tmp0_ = g_strdup (""), _g_free0 (data->nai_out), data->_tmp0_);
305 data->password_out = (data->_tmp1_ = g_strdup (""), _g_free0 (data->password_out), data->_tmp1_);
306 data->certificate_out = (data->_tmp2_ = g_strdup (""), _g_free0 (data->certificate_out), data->_tmp2_);
307 data->id_card = _g_object_ref0 (data->request->id_card);
308 if (data->id_card != NULL) {
310 data->id_card_service_collection = id_card_get_services (data->id_card, &data->_tmp3_);
311 data->id_card_service_collection_length1 = data->_tmp3_;
312 for (data->id_card_service_it = 0; data->id_card_service_it < data->_tmp3_; data->id_card_service_it = data->id_card_service_it + 1) {
313 data->id_card_service = g_strdup (data->id_card_service_collection[data->id_card_service_it]);
315 if (_vala_strcmp0 (data->id_card_service, data->service) == 0) {
316 data->has_service = TRUE;
318 _g_free0 (data->id_card_service);
322 if (data->has_service) {
323 data->nai_out = (data->_tmp4_ = g_strdup (id_card_get_nai (data->id_card)), _g_free0 (data->nai_out), data->_tmp4_);
324 data->password_out = (data->_tmp5_ = g_strdup (id_card_get_password (data->id_card)), _g_free0 (data->password_out), data->_tmp5_);
325 data->certificate_out = (data->_tmp6_ = g_strdup ("certificate"), _g_free0 (data->certificate_out), data->_tmp6_);
327 _g_object_unref0 (data->id_card);
328 _g_object_unref0 (data->request);
329 block2_data_unref (data->_data2_);
331 if (data->_state_ == 0) {
332 g_simple_async_result_complete_in_idle (data->_async_result);
334 g_simple_async_result_complete (data->_async_result);
336 g_object_unref (data->_async_result);
341 data->result = FALSE;
342 _g_object_unref0 (data->id_card);
343 _g_object_unref0 (data->request);
344 block2_data_unref (data->_data2_);
346 if (data->_state_ == 0) {
347 g_simple_async_result_complete_in_idle (data->_async_result);
349 g_simple_async_result_complete (data->_async_result);
351 g_object_unref (data->_async_result);
354 _g_object_unref0 (data->id_card);
355 _g_object_unref0 (data->request);
356 block2_data_unref (data->_data2_);
358 if (data->_state_ == 0) {
359 g_simple_async_result_complete_in_idle (data->_async_result);
361 g_simple_async_result_complete (data->_async_result);
363 g_object_unref (data->_async_result);
369 static void _vala_dbus_register_object (DBusConnection* connection, const char* path, void* object) {
370 const _DBusObjectVTable * vtable;
371 vtable = g_type_get_qdata (G_TYPE_FROM_INSTANCE (object), g_quark_from_static_string ("DBusObjectVTable"));
373 vtable->register_object (connection, path, object);
375 g_warning ("Object does not implement any D-Bus interface");
380 static void _vala_dbus_unregister_object (gpointer connection, GObject* object) {
382 path = g_object_steal_data ((GObject*) object, "dbus_object_path");
383 dbus_connection_unregister_object_path (connection, path);
388 void _moonshot_server_dbus_unregister (DBusConnection* connection, void* _user_data_) {
392 static DBusHandlerResult _dbus_moonshot_server_introspect (MoonshotServer* self, DBusConnection* connection, DBusMessage* message) {
394 DBusMessageIter iter;
398 reply = dbus_message_new_method_return (message);
399 dbus_message_iter_init_append (reply, &iter);
400 xml_data = g_string_new ("<!DOCTYPE node PUBLIC \"-//freedesktop//DTD D-BUS Object Introspection 1.0//EN\" \"http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd\">\n");
401 g_string_append (xml_data, "<node>\n<interface name=\"org.freedesktop.DBus.Introspectable\">\n <method name=\"Introspect\">\n <arg name=\"data\" direction=\"out\" type=\"s\"/>\n </method>\n</interface>\n<interface name=\"org.freedesktop.DBus.Properties\">\n <method name=\"Get\">\n <arg name=\"interface\" direction=\"in\" type=\"s\"/>\n <arg name=\"propname\" direction=\"in\" type=\"s\"/>\n <arg name=\"value\" direction=\"out\" type=\"v\"/>\n </method>\n <method name=\"Set\">\n <arg name=\"interface\" direction=\"in\" type=\"s\"/>\n <arg name=\"propname\" direction=\"in\" type=\"s\"/>\n <arg name=\"value\" direction=\"in\" type=\"v\"/>\n </method>\n <method name=\"GetAll\">\n <arg name=\"interface\" direction=\"in\" type=\"s\"/>\n <arg name=\"props\" direction=\"out\" type=\"a{sv}\"/>\n </method>\n</interface>\n<interface name=\"org.janet.Moonshot\">\n <method name=\"GetIdentity\">\n <arg name=\"nai\" type=\"s\" direction=\"in\"/>\n <arg name=\"password\" type=\"s\" direction=\"in\"/>\n <arg name=\"service\" type=\"s\" direction=\"in\"/>\n <arg name=\"nai_out\" type=\"s\" direction=\"out\"/>\n <arg name=\"password_out\" type=\"s\" direction=\"out\"/>\n <arg name=\"certificate_out\" type=\"s\" direction=\"out\"/>\n <arg name=\"result\" type=\"b\" direction=\"out\"/>\n </method>\n</interface>\n");
402 dbus_connection_list_registered (connection, g_object_get_data ((GObject *) self, "dbus_object_path"), &children);
403 for (i = 0; children[i]; i++) {
404 g_string_append_printf (xml_data, "<node name=\"%s\"/>\n", children[i]);
406 dbus_free_string_array (children);
407 g_string_append (xml_data, "</node>\n");
408 dbus_message_iter_append_basic (&iter, DBUS_TYPE_STRING, &xml_data->str);
409 g_string_free (xml_data, TRUE);
411 dbus_connection_send (connection, reply, NULL);
412 dbus_message_unref (reply);
413 return DBUS_HANDLER_RESULT_HANDLED;
415 return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
420 static DBusHandlerResult _dbus_moonshot_server_property_get_all (MoonshotServer* self, DBusConnection* connection, DBusMessage* message) {
422 DBusMessageIter iter, reply_iter, subiter;
423 char* interface_name;
425 if (strcmp (dbus_message_get_signature (message), "s")) {
426 return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
428 dbus_message_iter_init (message, &iter);
429 reply = dbus_message_new_method_return (message);
430 dbus_message_iter_init_append (reply, &reply_iter);
431 dbus_message_iter_get_basic (&iter, &_tmp0_);
432 dbus_message_iter_next (&iter);
433 interface_name = g_strdup (_tmp0_);
434 if (strcmp (interface_name, "org.janet.Moonshot") == 0) {
435 dbus_message_iter_open_container (&reply_iter, DBUS_TYPE_ARRAY, "{sv}", &subiter);
436 dbus_message_iter_close_container (&reply_iter, &subiter);
438 dbus_message_unref (reply);
441 g_free (interface_name);
443 dbus_connection_send (connection, reply, NULL);
444 dbus_message_unref (reply);
445 return DBUS_HANDLER_RESULT_HANDLED;
447 return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
452 static DBusHandlerResult _dbus_moonshot_server_get_identity (MoonshotServer* self, DBusConnection* connection, DBusMessage* message) {
453 DBusMessageIter iter;
456 char* password = NULL;
458 char* service = NULL;
460 gpointer * _user_data_;
461 if (strcmp (dbus_message_get_signature (message), "sss")) {
462 return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
464 dbus_message_iter_init (message, &iter);
465 dbus_message_iter_get_basic (&iter, &_tmp1_);
466 dbus_message_iter_next (&iter);
467 nai = g_strdup (_tmp1_);
468 dbus_message_iter_get_basic (&iter, &_tmp2_);
469 dbus_message_iter_next (&iter);
470 password = g_strdup (_tmp2_);
471 dbus_message_iter_get_basic (&iter, &_tmp3_);
472 dbus_message_iter_next (&iter);
473 service = g_strdup (_tmp3_);
474 _user_data_ = g_new0 (gpointer, 2);
475 _user_data_[0] = dbus_connection_ref (connection);
476 _user_data_[1] = dbus_message_ref (message);
477 moonshot_server_get_identity (self, nai, password, service, (GAsyncReadyCallback) _dbus_moonshot_server_get_identity_ready, _user_data_);
481 return DBUS_HANDLER_RESULT_HANDLED;
485 static void _dbus_moonshot_server_get_identity_ready (GObject * source_object, GAsyncResult * _res_, gpointer * _user_data_) {
486 DBusConnection * connection;
487 DBusMessage * message;
488 DBusMessageIter iter;
490 char* nai_out = NULL;
491 char* password_out = NULL;
492 char* certificate_out = NULL;
499 connection = _user_data_[0];
500 message = _user_data_[1];
502 result = moonshot_server_get_identity_finish ((MoonshotServer*) source_object, _res_, &nai_out, &password_out, &certificate_out);
503 reply = dbus_message_new_method_return (message);
504 dbus_message_iter_init_append (reply, &iter);
506 dbus_message_iter_append_basic (&iter, DBUS_TYPE_STRING, &_tmp4_);
508 _tmp5_ = password_out;
509 dbus_message_iter_append_basic (&iter, DBUS_TYPE_STRING, &_tmp5_);
510 _g_free0 (password_out);
511 _tmp6_ = certificate_out;
512 dbus_message_iter_append_basic (&iter, DBUS_TYPE_STRING, &_tmp6_);
513 _g_free0 (certificate_out);
515 dbus_message_iter_append_basic (&iter, DBUS_TYPE_BOOLEAN, &_tmp7_);
516 dbus_connection_send (connection, reply, NULL);
517 dbus_message_unref (reply);
518 dbus_connection_unref (connection);
519 dbus_message_unref (message);
520 g_free (_user_data_);
524 DBusHandlerResult moonshot_server_dbus_message (DBusConnection* connection, DBusMessage* message, void* object) {
525 DBusHandlerResult result;
526 result = DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
527 if (dbus_message_is_method_call (message, "org.freedesktop.DBus.Introspectable", "Introspect")) {
528 result = _dbus_moonshot_server_introspect (object, connection, message);
529 } else if (dbus_message_is_method_call (message, "org.freedesktop.DBus.Properties", "GetAll")) {
530 result = _dbus_moonshot_server_property_get_all (object, connection, message);
531 } else if (dbus_message_is_method_call (message, "org.janet.Moonshot", "GetIdentity")) {
532 result = _dbus_moonshot_server_get_identity (object, connection, message);
534 if (result == DBUS_HANDLER_RESULT_HANDLED) {
537 return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
542 void moonshot_server_dbus_register_object (DBusConnection* connection, const char* path, void* object) {
543 if (!g_object_get_data (object, "dbus_object_path")) {
544 g_object_set_data (object, "dbus_object_path", g_strdup (path));
545 dbus_connection_register_object_path (connection, path, &_moonshot_server_dbus_path_vtable, object);
546 g_object_weak_ref (object, _vala_dbus_unregister_object, connection);
551 static void moonshot_server_class_init (MoonshotServerClass * klass) {
552 moonshot_server_parent_class = g_type_class_peek_parent (klass);
553 g_type_class_add_private (klass, sizeof (MoonshotServerPrivate));
554 G_OBJECT_CLASS (klass)->finalize = moonshot_server_finalize;
555 g_type_set_qdata (TYPE_MOONSHOT_SERVER, g_quark_from_static_string ("DBusObjectVTable"), (void*) (&_moonshot_server_dbus_vtable));
559 static void moonshot_server_instance_init (MoonshotServer * self) {
560 self->priv = MOONSHOT_SERVER_GET_PRIVATE (self);
564 static void moonshot_server_finalize (GObject* obj) {
565 MoonshotServer * self;
566 self = MOONSHOT_SERVER (obj);
567 _g_object_unref0 (self->priv->main_window);
568 G_OBJECT_CLASS (moonshot_server_parent_class)->finalize (obj);
572 GType moonshot_server_get_type (void) {
573 static volatile gsize moonshot_server_type_id__volatile = 0;
574 if (g_once_init_enter (&moonshot_server_type_id__volatile)) {
575 static const GTypeInfo g_define_type_info = { sizeof (MoonshotServerClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) moonshot_server_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (MoonshotServer), 0, (GInstanceInitFunc) moonshot_server_instance_init, NULL };
576 GType moonshot_server_type_id;
577 moonshot_server_type_id = g_type_register_static (G_TYPE_OBJECT, "MoonshotServer", &g_define_type_info, 0);
578 g_once_init_leave (&moonshot_server_type_id__volatile, moonshot_server_type_id);
580 return moonshot_server_type_id__volatile;
584 static int _vala_strcmp0 (const char * str1, const char * str2) {
586 return -(str1 != str2);
591 return strcmp (str1, str2);