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_INTERFACE_H__ 22 #define __G_DBUS_INTERFACE_H__ 23 24 #include <gio/giotypes.h> 25 26 G_BEGIN_DECLS 27 28 #define G_TYPE_DBUS_INTERFACE (g_dbus_interface_get_type()) 29 #define G_DBUS_INTERFACE(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_DBUS_INTERFACE, GDBusInterface)) 30 #define G_IS_DBUS_INTERFACE(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_DBUS_INTERFACE)) 31 #define G_DBUS_INTERFACE_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE((o), G_TYPE_DBUS_INTERFACE, GDBusInterfaceIface)) 32 33 /** 34 * GDBusInterface: 35 * 36 * Base type for D-Bus interfaces. 37 * 38 * Since: 2.30 39 */ 40 41 typedef struct _GDBusInterfaceIface GDBusInterfaceIface; 42 43 /** 44 * GDBusInterfaceIface: 45 * @parent_iface: The parent interface. 46 * @get_info: Returns a #GDBusInterfaceInfo. See g_dbus_interface_get_info(). 47 * @get_object: Gets the enclosing #GDBusObject. See g_dbus_interface_get_object(). 48 * @set_object: Sets the enclosing #GDBusObject. See g_dbus_interface_set_object(). 49 * @dup_object: Gets a reference to the enclosing #GDBusObject. See g_dbus_interface_dup_object(). Added in 2.32. 50 * 51 * Base type for D-Bus interfaces. 52 * 53 * Since: 2.30 54 */ 55 struct _GDBusInterfaceIface 56 { 57 GTypeInterface parent_iface; 58 59 /* Virtual Functions */ 60 GDBusInterfaceInfo *(*get_info) (GDBusInterface *interface_); 61 GDBusObject *(*get_object) (GDBusInterface *interface_); 62 void (*set_object) (GDBusInterface *interface_, 63 GDBusObject *object); 64 GDBusObject *(*dup_object) (GDBusInterface *interface_); 65 }; 66 67 GLIB_AVAILABLE_IN_ALL 68 GType g_dbus_interface_get_type (void) G_GNUC_CONST; 69 GLIB_AVAILABLE_IN_ALL 70 GDBusInterfaceInfo *g_dbus_interface_get_info (GDBusInterface *interface_); 71 GLIB_AVAILABLE_IN_ALL 72 GDBusObject *g_dbus_interface_get_object (GDBusInterface *interface_); 73 GLIB_AVAILABLE_IN_ALL 74 void g_dbus_interface_set_object (GDBusInterface *interface_, 75 GDBusObject *object); 76 GLIB_AVAILABLE_IN_2_32 77 GDBusObject *g_dbus_interface_dup_object (GDBusInterface *interface_); 78 79 G_END_DECLS 80 81 #endif /* __G_DBUS_INTERFACE_H__ */ 82