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_SKELETON_H__ 22 #define __G_DBUS_INTERFACE_SKELETON_H__ 23 24 #include <gio/giotypes.h> 25 26 G_BEGIN_DECLS 27 28 #define G_TYPE_DBUS_INTERFACE_SKELETON (g_dbus_interface_skeleton_get_type ()) 29 #define G_DBUS_INTERFACE_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_DBUS_INTERFACE_SKELETON, GDBusInterfaceSkeleton)) 30 #define G_DBUS_INTERFACE_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), G_TYPE_DBUS_INTERFACE_SKELETON, GDBusInterfaceSkeletonClass)) 31 #define G_DBUS_INTERFACE_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), G_TYPE_DBUS_INTERFACE_SKELETON, GDBusInterfaceSkeletonClass)) 32 #define G_IS_DBUS_INTERFACE_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_DBUS_INTERFACE_SKELETON)) 33 #define G_IS_DBUS_INTERFACE_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), G_TYPE_DBUS_INTERFACE_SKELETON)) 34 35 typedef struct _GDBusInterfaceSkeletonClass GDBusInterfaceSkeletonClass; 36 typedef struct _GDBusInterfaceSkeletonPrivate GDBusInterfaceSkeletonPrivate; 37 38 /** 39 * GDBusInterfaceSkeleton: 40 * 41 * The #GDBusInterfaceSkeleton structure contains private data and should 42 * only be accessed using the provided API. 43 * 44 * Since: 2.30 45 */ 46 struct _GDBusInterfaceSkeleton 47 { 48 /*< private >*/ 49 GObject parent_instance; 50 GDBusInterfaceSkeletonPrivate *priv; 51 }; 52 53 /** 54 * GDBusInterfaceSkeletonClass: 55 * @parent_class: The parent class. 56 * @get_info: Returns a #GDBusInterfaceInfo. See g_dbus_interface_skeleton_get_info() for details. 57 * @get_vtable: Returns a #GDBusInterfaceVTable. See g_dbus_interface_skeleton_get_vtable() for details. 58 * @get_properties: Returns a #GVariant with all properties. See g_dbus_interface_skeleton_get_properties(). 59 * @flush: Emits outstanding changes, if any. See g_dbus_interface_skeleton_flush(). 60 * @g_authorize_method: Signal class handler for the #GDBusInterfaceSkeleton::g-authorize-method signal. 61 * 62 * Class structure for #GDBusInterfaceSkeleton. 63 * 64 * Since: 2.30 65 */ 66 struct _GDBusInterfaceSkeletonClass 67 { 68 GObjectClass parent_class; 69 70 /* Virtual Functions */ 71 GDBusInterfaceInfo *(*get_info) (GDBusInterfaceSkeleton *interface_); 72 GDBusInterfaceVTable *(*get_vtable) (GDBusInterfaceSkeleton *interface_); 73 GVariant *(*get_properties) (GDBusInterfaceSkeleton *interface_); 74 void (*flush) (GDBusInterfaceSkeleton *interface_); 75 76 /*< private >*/ 77 gpointer vfunc_padding[8]; 78 /*< public >*/ 79 80 /* Signals */ 81 gboolean (*g_authorize_method) (GDBusInterfaceSkeleton *interface_, 82 GDBusMethodInvocation *invocation); 83 84 /*< private >*/ 85 gpointer signal_padding[8]; 86 }; 87 88 GLIB_AVAILABLE_IN_ALL 89 GType g_dbus_interface_skeleton_get_type (void) G_GNUC_CONST; 90 GLIB_AVAILABLE_IN_ALL 91 GDBusInterfaceSkeletonFlags g_dbus_interface_skeleton_get_flags (GDBusInterfaceSkeleton *interface_); 92 GLIB_AVAILABLE_IN_ALL 93 void g_dbus_interface_skeleton_set_flags (GDBusInterfaceSkeleton *interface_, 94 GDBusInterfaceSkeletonFlags flags); 95 GLIB_AVAILABLE_IN_ALL 96 GDBusInterfaceInfo *g_dbus_interface_skeleton_get_info (GDBusInterfaceSkeleton *interface_); 97 GLIB_AVAILABLE_IN_ALL 98 GDBusInterfaceVTable *g_dbus_interface_skeleton_get_vtable (GDBusInterfaceSkeleton *interface_); 99 GLIB_AVAILABLE_IN_ALL 100 GVariant *g_dbus_interface_skeleton_get_properties (GDBusInterfaceSkeleton *interface_); 101 GLIB_AVAILABLE_IN_ALL 102 void g_dbus_interface_skeleton_flush (GDBusInterfaceSkeleton *interface_); 103 104 GLIB_AVAILABLE_IN_ALL 105 gboolean g_dbus_interface_skeleton_export (GDBusInterfaceSkeleton *interface_, 106 GDBusConnection *connection, 107 const gchar *object_path, 108 GError **error); 109 GLIB_AVAILABLE_IN_ALL 110 void g_dbus_interface_skeleton_unexport (GDBusInterfaceSkeleton *interface_); 111 GLIB_AVAILABLE_IN_ALL 112 void g_dbus_interface_skeleton_unexport_from_connection (GDBusInterfaceSkeleton *interface_, 113 GDBusConnection *connection); 114 115 GLIB_AVAILABLE_IN_ALL 116 GDBusConnection *g_dbus_interface_skeleton_get_connection (GDBusInterfaceSkeleton *interface_); 117 GLIB_AVAILABLE_IN_ALL 118 GList *g_dbus_interface_skeleton_get_connections (GDBusInterfaceSkeleton *interface_); 119 GLIB_AVAILABLE_IN_ALL 120 gboolean g_dbus_interface_skeleton_has_connection (GDBusInterfaceSkeleton *interface_, 121 GDBusConnection *connection); 122 GLIB_AVAILABLE_IN_ALL 123 const gchar *g_dbus_interface_skeleton_get_object_path (GDBusInterfaceSkeleton *interface_); 124 125 G_END_DECLS 126 127 #endif /* __G_DBUS_INTERFACE_SKELETON_H */ 128