Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 09:59:55

0001 /* GDBus - GLib D-Bus Library
0002  *
0003  * Copyright (C) 2008-2010 Red Hat, Inc.
0004  *
0005  * SPDX-License-Identifier: LGPL-2.1-or-later
0006  *
0007  * This library is free software; you can redistribute it and/or
0008  * modify it under the terms of the GNU Lesser General Public
0009  * License as published by the Free Software Foundation; either
0010  * version 2.1 of the License, or (at your option) any later version.
0011  *
0012  * This library is distributed in the hope that it will be useful,
0013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
0014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
0015  * Lesser General Public License for more details.
0016  *
0017  * You should have received a copy of the GNU Lesser General
0018  * Public License along with this library; if not, see <http://www.gnu.org/licenses/>.
0019  *
0020  * Author: David Zeuthen <davidz@redhat.com>
0021  */
0022 
0023 #ifndef __G_DBUS_OBJECT_MANAGER_H__
0024 #define __G_DBUS_OBJECT_MANAGER_H__
0025 
0026 #include <gio/giotypes.h>
0027 
0028 G_BEGIN_DECLS
0029 
0030 #define G_TYPE_DBUS_OBJECT_MANAGER         (g_dbus_object_manager_get_type())
0031 #define G_DBUS_OBJECT_MANAGER(o)           (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_DBUS_OBJECT_MANAGER, GDBusObjectManager))
0032 #define G_IS_DBUS_OBJECT_MANAGER(o)        (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_DBUS_OBJECT_MANAGER))
0033 #define G_DBUS_OBJECT_MANAGER_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE((o), G_TYPE_DBUS_OBJECT_MANAGER, GDBusObjectManagerIface))
0034 
0035 typedef struct _GDBusObjectManagerIface GDBusObjectManagerIface;
0036 
0037 /**
0038  * GDBusObjectManagerIface:
0039  * @parent_iface: The parent interface.
0040  * @get_object_path: Virtual function for g_dbus_object_manager_get_object_path().
0041  * @get_objects: Virtual function for g_dbus_object_manager_get_objects().
0042  * @get_object: Virtual function for g_dbus_object_manager_get_object().
0043  * @get_interface: Virtual function for g_dbus_object_manager_get_interface().
0044  * @object_added: Signal handler for the #GDBusObjectManager::object-added signal.
0045  * @object_removed: Signal handler for the #GDBusObjectManager::object-removed signal.
0046  * @interface_added: Signal handler for the #GDBusObjectManager::interface-added signal.
0047  * @interface_removed: Signal handler for the #GDBusObjectManager::interface-removed signal.
0048  *
0049  * Base type for D-Bus object managers.
0050  *
0051  * Since: 2.30
0052  */
0053 struct _GDBusObjectManagerIface
0054 {
0055   GTypeInterface parent_iface;
0056 
0057   /* Virtual Functions */
0058   const gchar     *(*get_object_path) (GDBusObjectManager    *manager);
0059   GList           *(*get_objects)     (GDBusObjectManager    *manager);
0060   GDBusObject     *(*get_object)      (GDBusObjectManager    *manager,
0061                                        const gchar           *object_path);
0062   GDBusInterface  *(*get_interface)   (GDBusObjectManager    *manager,
0063                                        const gchar           *object_path,
0064                                        const gchar           *interface_name);
0065 
0066   /* Signals */
0067   void    (*object_added)                 (GDBusObjectManager   *manager,
0068                                            GDBusObject          *object);
0069   void    (*object_removed)               (GDBusObjectManager   *manager,
0070                                            GDBusObject          *object);
0071 
0072   void    (*interface_added)              (GDBusObjectManager   *manager,
0073                                            GDBusObject          *object,
0074                                            GDBusInterface       *interface_);
0075   void    (*interface_removed)            (GDBusObjectManager   *manager,
0076                                            GDBusObject          *object,
0077                                            GDBusInterface       *interface_);
0078 };
0079 
0080 GIO_AVAILABLE_IN_ALL
0081 GType            g_dbus_object_manager_get_type        (void) G_GNUC_CONST;
0082 GIO_AVAILABLE_IN_ALL
0083 const gchar     *g_dbus_object_manager_get_object_path (GDBusObjectManager    *manager);
0084 GIO_AVAILABLE_IN_ALL
0085 GList           *g_dbus_object_manager_get_objects     (GDBusObjectManager    *manager);
0086 GIO_AVAILABLE_IN_ALL
0087 GDBusObject     *g_dbus_object_manager_get_object      (GDBusObjectManager    *manager,
0088                                                         const gchar           *object_path);
0089 GIO_AVAILABLE_IN_ALL
0090 GDBusInterface  *g_dbus_object_manager_get_interface   (GDBusObjectManager    *manager,
0091                                                         const gchar           *object_path,
0092                                                         const gchar           *interface_name);
0093 
0094 G_END_DECLS
0095 
0096 #endif /* __G_DBUS_OBJECT_MANAGER_H__ */