diff options
author | Jürg Billeter <j@bitron.ch> | 2011-11-23 13:30:40 +0100 |
---|---|---|
committer | Jürg Billeter <j@bitron.ch> | 2011-11-30 15:05:28 +0100 |
commit | 3996115844cac8f32c362c9ff07554587182b7f8 (patch) | |
tree | 2619a8ce7e2501464275c580e744d9dd12b140c8 | |
parent | 2e1deabc03564e17f8f2e4e2d21e6903b679057c (diff) | |
download | vala-3996115844cac8f32c362c9ff07554587182b7f8.tar.gz |
gio-2.0: Fix g_dbus_send_message_with_reply and GUnixFDList bindings
-rw-r--r-- | vapi/gio-2.0.vapi | 14 | ||||
-rw-r--r-- | vapi/packages/gio-2.0/gio-2.0-custom.vala | 11 | ||||
-rw-r--r-- | vapi/packages/gio-2.0/gio-2.0.metadata | 4 | ||||
-rw-r--r-- | vapigen/valagidlparser.vala | 13 |
4 files changed, 37 insertions, 5 deletions
diff --git a/vapi/gio-2.0.vapi b/vapi/gio-2.0.vapi index e8152c89e..1851ca5ef 100644 --- a/vapi/gio-2.0.vapi +++ b/vapi/gio-2.0.vapi @@ -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 { diff --git a/vapi/packages/gio-2.0/gio-2.0-custom.vala b/vapi/packages/gio-2.0/gio-2.0-custom.vala index 51636d9e3..f36fb421f 100644 --- a/vapi/packages/gio-2.0/gio-2.0-custom.vala +++ b/vapi/packages/gio-2.0/gio-2.0-custom.vala @@ -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; + } } diff --git a/vapi/packages/gio-2.0/gio-2.0.metadata b/vapi/packages/gio-2.0/gio-2.0.metadata index 5f965aacc..96bf0cb87 100644 --- a/vapi/packages/gio-2.0/gio-2.0.metadata +++ b/vapi/packages/gio-2.0/gio-2.0.metadata @@ -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" diff --git a/vapigen/valagidlparser.vala b/vapigen/valagidlparser.vala index 209c0ab37..1fbfc48b1 100644 --- a/vapigen/valagidlparser.vala +++ b/vapigen/valagidlparser.vala @@ -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; |