mirror of
https://gitlab.freedesktop.org/dbus/dbus.git
synced 2025-12-27 12:40:15 +01:00
Add a NoReply annotation
This commit is contained in:
parent
ef47e01f75
commit
4e2b0d94ec
4 changed files with 53 additions and 17 deletions
|
|
@ -1,3 +1,12 @@
|
|||
2005-10-25 Ross Burton <ross@openedhand.com>
|
||||
|
||||
* doc/dbus-specification.xml:
|
||||
Document the NoReply annotation.
|
||||
|
||||
* glib/dbus-binding-tool-glib.h:
|
||||
* glib/dbus-binding-tool-glib.c:
|
||||
Respect the NoReply annotation.
|
||||
|
||||
2005-10-24 Robert McQueen <robot101@debian.org>
|
||||
|
||||
* python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
|
||||
|
|
|
|||
|
|
@ -2454,6 +2454,11 @@
|
|||
<entry>(string)</entry>
|
||||
<entry>The C symbol; may be used for methods and interfaces</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>org.freedesktop.DBus.Method.NoReply</entry>
|
||||
<entry>true,false</entry>
|
||||
<entry>If set, don't expect a reply to the method call; defaults to false.</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</informaltable>
|
||||
|
|
|
|||
|
|
@ -1446,11 +1446,14 @@ generate_client_glue (BaseInfo *base, DBusBindingToolCData *data, GError **error
|
|||
|
||||
for (tmp = methods; tmp != NULL; tmp = g_slist_next (tmp))
|
||||
{
|
||||
MethodInfo *method;
|
||||
MethodInfo *method;
|
||||
char *method_name;
|
||||
gboolean is_noreply;
|
||||
|
||||
method = (MethodInfo *) tmp->data;
|
||||
|
||||
is_noreply = method_info_get_annotation (method, DBUS_GLIB_ANNOTATION_NOREPLY) != NULL;
|
||||
|
||||
if (data->ignore_unsupported && !check_supported_parameters (method))
|
||||
{
|
||||
g_warning ("Ignoring unsupported signature in method \"%s\" of interface \"%s\"\n",
|
||||
|
|
@ -1473,22 +1476,40 @@ generate_client_glue (BaseInfo *base, DBusBindingToolCData *data, GError **error
|
|||
WRITE_OR_LOSE (", GError **error)\n\n");
|
||||
|
||||
WRITE_OR_LOSE ("{\n");
|
||||
|
||||
if (!write_printf_to_iochannel (" return dbus_g_proxy_call (proxy, \"%s\", ", channel, error,
|
||||
method_info_get_name (method)))
|
||||
goto io_lose;
|
||||
|
||||
WRITE_OR_LOSE ("error, ");
|
||||
|
||||
if (!write_args_for_direction (interface, method, channel, ARG_IN, error))
|
||||
goto io_lose;
|
||||
|
||||
WRITE_OR_LOSE ("G_TYPE_INVALID, ");
|
||||
|
||||
if (!write_args_for_direction (interface, method, channel, ARG_OUT, error))
|
||||
goto io_lose;
|
||||
|
||||
WRITE_OR_LOSE ("G_TYPE_INVALID);\n}\n\n");
|
||||
if (is_noreply) {
|
||||
if (!write_printf_to_iochannel (" dbus_g_proxy_call_no_reply (proxy, \"%s\", ", channel, error,
|
||||
method_info_get_name (method)))
|
||||
goto io_lose;
|
||||
|
||||
if (!write_args_for_direction (interface, method, channel, ARG_IN, error))
|
||||
goto io_lose;
|
||||
|
||||
WRITE_OR_LOSE ("G_TYPE_INVALID, ");
|
||||
|
||||
if (!write_args_for_direction (interface, method, channel, ARG_OUT, error))
|
||||
goto io_lose;
|
||||
|
||||
WRITE_OR_LOSE ("G_TYPE_INVALID);\n");
|
||||
|
||||
WRITE_OR_LOSE (" return TRUE;\n}\n\n");
|
||||
} else {
|
||||
if (!write_printf_to_iochannel (" return dbus_g_proxy_call (proxy, \"%s\", ", channel, error,
|
||||
method_info_get_name (method)))
|
||||
goto io_lose;
|
||||
|
||||
WRITE_OR_LOSE ("error, ");
|
||||
|
||||
if (!write_args_for_direction (interface, method, channel, ARG_IN, error))
|
||||
goto io_lose;
|
||||
|
||||
WRITE_OR_LOSE ("G_TYPE_INVALID, ");
|
||||
|
||||
if (!write_args_for_direction (interface, method, channel, ARG_OUT, error))
|
||||
goto io_lose;
|
||||
|
||||
WRITE_OR_LOSE ("G_TYPE_INVALID);\n}\n\n");
|
||||
}
|
||||
|
||||
write_async_method_client (channel, interface, method, error);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@
|
|||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* This program is distributed in the hope that it bwill be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
|
|
@ -29,6 +29,7 @@ G_BEGIN_DECLS
|
|||
#define DBUS_GLIB_ANNOTATION_ASYNC "org.freedesktop.DBus.GLib.Async"
|
||||
#define DBUS_GLIB_ANNOTATION_CONST "org.freedesktop.DBus.GLib.Const"
|
||||
#define DBUS_GLIB_ANNOTATION_RETURNVAL "org.freedesktop.DBus.GLib.ReturnVal"
|
||||
#define DBUS_GLIB_ANNOTATION_NOREPLY "org.freedesktop.DBus.Method.NoReply"
|
||||
|
||||
gboolean dbus_binding_tool_output_glib_client (BaseInfo *info, GIOChannel *channel, gboolean ignore_unsupported, GError **error);
|
||||
gboolean dbus_binding_tool_output_glib_server (BaseInfo *info, GIOChannel *channel, const char *prefix, GError **error);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue