1 /* GDBus - GLib D-Bus Library 2 * 3 * Copyright (C) 2008-2010 Red Hat, Inc. 4 * 5 * This library is free software; you can redistribute it and/or 6 * modify it under the terms of the GNU Lesser General Public 7 * License as published by the Free Software Foundation; either 8 * version 2.1 of the License, or (at your option) any later version. 9 * 10 * This library is distributed in the hope that it will be useful, 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 * Lesser General Public License for more details. 14 * 15 * You should have received a copy of the GNU Lesser General 16 * Public License along with this library; if not, see <http://www.gnu.org/licenses/>. 17 * 18 * Author: David Zeuthen <davidz@redhat.com> 19 */ 20 21 #ifndef __G_DBUS_METHOD_INVOCATION_H__ 22 #define __G_DBUS_METHOD_INVOCATION_H__ 23 24 #if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) 25 #error "Only <gio/gio.h> can be included directly." 26 #endif 27 28 #include <gio/giotypes.h> 29 30 G_BEGIN_DECLS 31 32 #define G_TYPE_DBUS_METHOD_INVOCATION (g_dbus_method_invocation_get_type ()) 33 #define G_DBUS_METHOD_INVOCATION(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_DBUS_METHOD_INVOCATION, GDBusMethodInvocation)) 34 #define G_IS_DBUS_METHOD_INVOCATION(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_DBUS_METHOD_INVOCATION)) 35 36 /** 37 * G_DBUS_METHOD_INVOCATION_HANDLED: 38 * 39 * The value returned by handlers of the signals generated by 40 * the `gdbus-codegen` tool to indicate that a method call has been 41 * handled by an implementation. It is equal to %TRUE, but using 42 * this macro is sometimes more readable. 43 * 44 * In code that needs to be backwards-compatible with older GLib, 45 * use %TRUE instead, often written like this: 46 * 47 * |[ 48 * g_dbus_method_invocation_return_error (invocation, ...); 49 * return TRUE; // handled 50 * ]| 51 * 52 * Since: 2.68 53 */ 54 #define G_DBUS_METHOD_INVOCATION_HANDLED TRUE GLIB_AVAILABLE_MACRO_IN_2_68 55 56 /** 57 * G_DBUS_METHOD_INVOCATION_UNHANDLED: 58 * 59 * The value returned by handlers of the signals generated by 60 * the `gdbus-codegen` tool to indicate that a method call has not been 61 * handled by an implementation. It is equal to %FALSE, but using 62 * this macro is sometimes more readable. 63 * 64 * In code that needs to be backwards-compatible with older GLib, 65 * use %FALSE instead. 66 * 67 * Since: 2.68 68 */ 69 #define G_DBUS_METHOD_INVOCATION_UNHANDLED FALSE GLIB_AVAILABLE_MACRO_IN_2_68 70 71 GLIB_AVAILABLE_IN_ALL 72 GType g_dbus_method_invocation_get_type (void) G_GNUC_CONST; 73 GLIB_AVAILABLE_IN_ALL 74 const gchar *g_dbus_method_invocation_get_sender (GDBusMethodInvocation *invocation); 75 GLIB_AVAILABLE_IN_ALL 76 const gchar *g_dbus_method_invocation_get_object_path (GDBusMethodInvocation *invocation); 77 GLIB_AVAILABLE_IN_ALL 78 const gchar *g_dbus_method_invocation_get_interface_name (GDBusMethodInvocation *invocation); 79 GLIB_AVAILABLE_IN_ALL 80 const gchar *g_dbus_method_invocation_get_method_name (GDBusMethodInvocation *invocation); 81 GLIB_AVAILABLE_IN_ALL 82 const GDBusMethodInfo *g_dbus_method_invocation_get_method_info (GDBusMethodInvocation *invocation); 83 GLIB_AVAILABLE_IN_2_38 84 const GDBusPropertyInfo *g_dbus_method_invocation_get_property_info (GDBusMethodInvocation *invocation); 85 GLIB_AVAILABLE_IN_ALL 86 GDBusConnection *g_dbus_method_invocation_get_connection (GDBusMethodInvocation *invocation); 87 GLIB_AVAILABLE_IN_ALL 88 GDBusMessage *g_dbus_method_invocation_get_message (GDBusMethodInvocation *invocation); 89 GLIB_AVAILABLE_IN_ALL 90 GVariant *g_dbus_method_invocation_get_parameters (GDBusMethodInvocation *invocation); 91 GLIB_AVAILABLE_IN_ALL 92 gpointer g_dbus_method_invocation_get_user_data (GDBusMethodInvocation *invocation); 93 94 GLIB_AVAILABLE_IN_ALL 95 void g_dbus_method_invocation_return_value (GDBusMethodInvocation *invocation, 96 GVariant *parameters); 97 GLIB_AVAILABLE_IN_ALL 98 void g_dbus_method_invocation_return_value_with_unix_fd_list (GDBusMethodInvocation *invocation, 99 GVariant *parameters, 100 GUnixFDList *fd_list); 101 GLIB_AVAILABLE_IN_ALL 102 void g_dbus_method_invocation_return_error (GDBusMethodInvocation *invocation, 103 GQuark domain, 104 gint code, 105 const gchar *format, 106 ...) G_GNUC_PRINTF(4, 5); 107 GLIB_AVAILABLE_IN_ALL 108 void g_dbus_method_invocation_return_error_valist (GDBusMethodInvocation *invocation, 109 GQuark domain, 110 gint code, 111 const gchar *format, 112 va_list var_args) 113 G_GNUC_PRINTF(4, 0); 114 GLIB_AVAILABLE_IN_ALL 115 void g_dbus_method_invocation_return_error_literal (GDBusMethodInvocation *invocation, 116 GQuark domain, 117 gint code, 118 const gchar *message); 119 GLIB_AVAILABLE_IN_ALL 120 void g_dbus_method_invocation_return_gerror (GDBusMethodInvocation *invocation, 121 const GError *error); 122 GLIB_AVAILABLE_IN_ALL 123 void g_dbus_method_invocation_take_error (GDBusMethodInvocation *invocation, 124 GError *error); 125 GLIB_AVAILABLE_IN_ALL 126 void g_dbus_method_invocation_return_dbus_error (GDBusMethodInvocation *invocation, 127 const gchar *error_name, 128 const gchar *error_message); 129 130 G_END_DECLS 131 132 #endif /* __G_DBUS_METHOD_INVOCATION_H__ */ 133