]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
gio-2.0: Fix g_dbus_send_message_with_reply and GUnixFDList bindings
authorJürg Billeter <j@bitron.ch>
Wed, 23 Nov 2011 12:30:40 +0000 (13:30 +0100)
committerJürg Billeter <j@bitron.ch>
Wed, 30 Nov 2011 14:05:28 +0000 (15:05 +0100)
vapi/gio-2.0.vapi
vapi/packages/gio-2.0/gio-2.0-custom.vala
vapi/packages/gio-2.0/gio-2.0.metadata
vapigen/valagidlparser.vala

index e8152c89e05f63521e6f56c04d60a5e94632991f..1851ca5ef6b02b9d42ac64834dfd52c473ba6924 100644 (file)
@@ -282,7 +282,7 @@ namespace GLib {
                public uint register_subtree (string object_path, GLib.DBusSubtreeVTable vtable, GLib.DBusSubtreeFlags flags, GLib.DestroyNotify user_data_free_func) throws GLib.Error;
                public void remove_filter (uint filter_id);
                public bool send_message (GLib.DBusMessage message, GLib.DBusSendMessageFlags flags, out uint32 out_serial) throws GLib.Error;
-               public async GLib.DBusMessage send_message_with_reply (GLib.DBusMessage message, GLib.DBusSendMessageFlags flags, int timeout_msec, out uint32 out_serial, GLib.Cancellable? cancellable = null) throws GLib.Error;
+               public async GLib.DBusMessage send_message_with_reply (GLib.DBusMessage message, GLib.DBusSendMessageFlags flags, int timeout_msec, uint32* out_serial = null, GLib.Cancellable? cancellable = null) throws GLib.Error;
                public GLib.DBusMessage send_message_with_reply_sync (GLib.DBusMessage message, GLib.DBusSendMessageFlags flags, int timeout_msec, out uint32 out_serial, GLib.Cancellable? cancellable = null) throws GLib.Error;
                public void set_exit_on_close (bool exit_on_close);
                public uint signal_subscribe (string? sender, string? interface_name, string? member, string? object_path, string? arg0, GLib.DBusSignalFlags flags, owned GLib.DBusSignalCallback callback);
@@ -1693,9 +1693,15 @@ namespace GLib {
        [Compact]
        public class UnixCredentialsMessage {
        }
-       [CCode (cheader_filename = "gio/gio.h")]
-       [Compact]
-       public class UnixFDList {
+       [CCode (cheader_filename = "gio/gunixfdlist.h")]
+       public class UnixFDList : GLib.Object {
+               public UnixFDList ();
+               public int append (int fd) throws GLib.IOError;
+               public UnixFDList.from_array (int[] fds);
+               public int @get (int index) throws GLib.IOError;
+               public unowned int[] peek_fds ();
+               public int[] steal_fds ();
+               public int length { get; }
        }
        [CCode (cheader_filename = "gio/gio.h")]
        public class Vfs : GLib.Object {
index 51636d9e34a649095e186dd7761299487d4dff43..f36fb421fbf65b10a00cea31d50a5c0bcd12e0a8 100644 (file)
@@ -106,4 +106,15 @@ namespace GLib {
        [Deprecated (since = "vala-0.12", replacement = "GLib.ContentType.is_unknown")]
        [CCode (cname = "g_content_type_is_unknown", cheader_filename = "gio/gio.h")]
        public static bool g_content_type_is_unknown (string type);
+
+       [CCode (cheader_filename = "gio/gunixfdlist.h")]
+       public class UnixFDList : GLib.Object {
+               public UnixFDList ();
+               public UnixFDList.from_array (int[] fds);
+               public int length { get; }
+               public int get (int index) throws GLib.IOError;
+               public unowned int[] peek_fds ();
+               public int[] steal_fds ();
+               public int append (int fd) throws GLib.IOError;
+       }
 }
index 5f965aacc52bc396df23fcbcf614c1d071683202..96bf0cb876b71a6b5aa78faeaaf5d5534be44cac 100644 (file)
@@ -90,7 +90,7 @@ g_dbus_connection_send_message.out_serial is_out="1"
 g_dbus_connection_new_for_address async="1"
 g_dbus_connection_new.observer nullable="1" default_value="null"
 g_dbus_connection_send_message_with_reply async="1"
-g_dbus_connection_send_message_with_reply.out_serial is_out="1"
+g_dbus_connection_send_message_with_reply.out_serial is_pointer="1" default_value="null"
 g_dbus_connection_send_message_with_reply_sync.out_serial is_out="1"
 g_dbus_connection_send_message_with_reply_finish transfer_ownership="1"
 g_dbus_connection_send_message_with_reply_sync transfer_ownership="1"
@@ -453,3 +453,5 @@ g_dbus_object_get_interfaces transfer_ownership="1" type_arguments="DBusInterfac
 g_dbus_server_new_sync.observer nullable="1" default_value="null"
 
 GSettingsBackend base_class="GObject"
+
+GUnixFDList hidden="1"
index 209c0ab37decec4060d330814f57b0129f072dc2..1fbfc48b10cc81d2f41bfd92aea20164f3ec409f 100644 (file)
@@ -2234,6 +2234,11 @@ public class Vala.GIdlParser : CodeVisitor {
                                                return_type = new ArrayType (return_type, 1, return_type.source_reference);
                                                m.return_type = return_type;
                                        }
+                               } else if (nv[0] == "is_pointer") {
+                                       if (eval (nv[1]) == "1") {
+                                               return_type = new PointerType (return_type, return_type.source_reference);
+                                               m.return_type = return_type;
+                                       }
                                } else if (nv[0] == "throws") {
                                        if (eval (nv[1]) == "0") {
                                                suppress_throws = true;
@@ -2379,6 +2384,14 @@ public class Vala.GIdlParser : CodeVisitor {
                                                        }
                                                        array_requested = true;
                                                }
+                                       } else if (nv[0] == "is_pointer") {
+                                               if (eval (nv[1]) == "1") {
+                                                       param_type = new PointerType (param_type, return_type.source_reference);
+                                                       p.variable_type = param_type;
+                                                       if (!out_requested) {
+                                                               p.direction = ParameterDirection.IN;
+                                                       }
+                                               }
                                        } else if (nv[0] == "is_out") {
                                                if (eval (nv[1]) == "1") {
                                                        p.direction = ParameterDirection.OUT;