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
26G_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
35typedef struct _GDBusInterfaceSkeletonClass GDBusInterfaceSkeletonClass;
36typedef 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 */
46struct _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 */
66struct _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
88GLIB_AVAILABLE_IN_ALL
89GType g_dbus_interface_skeleton_get_type (void) G_GNUC_CONST;
90GLIB_AVAILABLE_IN_ALL
91GDBusInterfaceSkeletonFlags g_dbus_interface_skeleton_get_flags (GDBusInterfaceSkeleton *interface_);
92GLIB_AVAILABLE_IN_ALL
93void g_dbus_interface_skeleton_set_flags (GDBusInterfaceSkeleton *interface_,
94 GDBusInterfaceSkeletonFlags flags);
95GLIB_AVAILABLE_IN_ALL
96GDBusInterfaceInfo *g_dbus_interface_skeleton_get_info (GDBusInterfaceSkeleton *interface_);
97GLIB_AVAILABLE_IN_ALL
98GDBusInterfaceVTable *g_dbus_interface_skeleton_get_vtable (GDBusInterfaceSkeleton *interface_);
99GLIB_AVAILABLE_IN_ALL
100GVariant *g_dbus_interface_skeleton_get_properties (GDBusInterfaceSkeleton *interface_);
101GLIB_AVAILABLE_IN_ALL
102void g_dbus_interface_skeleton_flush (GDBusInterfaceSkeleton *interface_);
103
104GLIB_AVAILABLE_IN_ALL
105gboolean g_dbus_interface_skeleton_export (GDBusInterfaceSkeleton *interface_,
106 GDBusConnection *connection,
107 const gchar *object_path,
108 GError **error);
109GLIB_AVAILABLE_IN_ALL
110void g_dbus_interface_skeleton_unexport (GDBusInterfaceSkeleton *interface_);
111GLIB_AVAILABLE_IN_ALL
112void g_dbus_interface_skeleton_unexport_from_connection (GDBusInterfaceSkeleton *interface_,
113 GDBusConnection *connection);
114
115GLIB_AVAILABLE_IN_ALL
116GDBusConnection *g_dbus_interface_skeleton_get_connection (GDBusInterfaceSkeleton *interface_);
117GLIB_AVAILABLE_IN_ALL
118GList *g_dbus_interface_skeleton_get_connections (GDBusInterfaceSkeleton *interface_);
119GLIB_AVAILABLE_IN_ALL
120gboolean g_dbus_interface_skeleton_has_connection (GDBusInterfaceSkeleton *interface_,
121 GDBusConnection *connection);
122GLIB_AVAILABLE_IN_ALL
123const gchar *g_dbus_interface_skeleton_get_object_path (GDBusInterfaceSkeleton *interface_);
124
125G_END_DECLS
126
127#endif /* __G_DBUS_INTERFACE_SKELETON_H */
128