summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJürg Billeter <j@bitron.ch>2011-11-23 13:30:40 +0100
committerJürg Billeter <j@bitron.ch>2011-11-30 15:05:28 +0100
commit3996115844cac8f32c362c9ff07554587182b7f8 (patch)
tree2619a8ce7e2501464275c580e744d9dd12b140c8
parent2e1deabc03564e17f8f2e4e2d21e6903b679057c (diff)
downloadvala-3996115844cac8f32c362c9ff07554587182b7f8.tar.gz
gio-2.0: Fix g_dbus_send_message_with_reply and GUnixFDList bindings
-rw-r--r--vapi/gio-2.0.vapi14
-rw-r--r--vapi/packages/gio-2.0/gio-2.0-custom.vala11
-rw-r--r--vapi/packages/gio-2.0/gio-2.0.metadata4
-rw-r--r--vapigen/valagidlparser.vala13
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;